92 lines
2.4 KiB
Markdown
92 lines
2.4 KiB
Markdown
# ComfyUI Roop Custom Nodes
|
|
|
|
Custom nodes for ComfyUI to enable face swapping using the Roop library.
|
|
|
|
Features
|
|
|
|
- Face swap between two images
|
|
- Optional face enhancement
|
|
- Batch image folder processing
|
|
- Face swap for videos
|
|
- Webhook sender for images (tensor) or file paths
|
|
- Auto-increment filenames to prevent overwriting
|
|
|
|
## Node Descriptions
|
|
|
|
RoopFaceSwap
|
|
- Basic face swap using source and target image tensors
|
|
- Returns a single swapped image tensor
|
|
|
|
RoopFaceSwapWithEnhancer
|
|
- Like RoopFaceSwap but also runs a face enhancer after swapping
|
|
- Useful for improving visual quality
|
|
|
|
RoopBatchFaceSwap
|
|
- Takes a source image and a folder of input images
|
|
- Applies face swap to each and saves results to an output folder
|
|
- Supports enhancement and multi-face mode
|
|
|
|
RoopFaceSwapVideo
|
|
- Swaps a face from an image into a video file
|
|
- Keeps original FPS and frames
|
|
- Saves a new video file
|
|
|
|
RoopSendWebhookImage
|
|
- Sends an image tensor to a webhook URL
|
|
- Accepts optional secret for HMAC verification
|
|
- Ideal for live image results
|
|
|
|
RoopSendWebhookFile
|
|
- Sends a file path (e.g. video or saved image) to a webhook
|
|
- Supports HMAC-secured sending
|
|
- Useful for post-processing delivery
|
|
|
|
## Requirements
|
|
|
|
- Python 3.8+
|
|
- torch
|
|
- torchvision
|
|
- Pillow (PIL)
|
|
- requests
|
|
- roop (clone from GitHub)
|
|
|
|
## Installation
|
|
|
|
1. Clone this repo into your ComfyUI custom nodes folder:
|
|
|
|
git clone https://github.com/glitchinthemetrix16/ComfyUI-Roop
|
|
|
|
2. Install required Python packages:
|
|
|
|
pip install torch torchvision pillow requests
|
|
|
|
3. Clone the roop repo for Google Colab Environment:
|
|
|
|
git clone https://github.com/FurkanGozukara/roop /content/roop
|
|
|
|
4. Ensure that run.py exists in /content/roop
|
|
|
|
## Installation For Google Colab With T4 GPU (Tested and working)
|
|
|
|
```
|
|
%cd /content/
|
|
|
|
!git clone https://github.com/FurkanGozukara/roop
|
|
%cd roop
|
|
|
|
#Tested and updated 23 August 2023 commit
|
|
#!git checkout da1ef285f1d43bd0cc8b9cdb9a0f80f7ae793a97
|
|
!pip install onnxruntime-gpu && pip install -r requirements.txt
|
|
!pip install onnxruntime-gpu --upgrade
|
|
!apt-get update --yes
|
|
!apt install nvidia-cuda-toolkit --yes
|
|
!pip install opennsfw2 keras --upgrade
|
|
!pip install numpy==1.26.4
|
|
```
|
|
|
|
Usage Notes
|
|
|
|
- All temporary files are saved inside roop_dir/temp_io
|
|
- File overwrites are avoided via auto-renaming
|
|
- Video swapping works best with shorter clips due to performance
|
|
- Webhook nodes allow sending output to remote servers or APIs |