diff --git a/README.md b/README.md index adb7d15..f1df4a7 100644 --- a/README.md +++ b/README.md @@ -1,38 +1,45 @@ -# ComfyUI-Distributed +
+ +> **A powerful extension for ComfyUI that enables distributed and parallel processing across multiple GPUs and machines. Generate more images and videos and accelerate your upscaling workflows by leveraging all available GPU resources in your network.**  -> **Supercharge your ComfyUI workflows with multi-GPU processing** - -A powerful extension for ComfyUI that enables parallel and distributed processing across multiple GPUs and machines. Speed up your image generation and upscaling workflows by leveraging all available GPU resources in your network. - -📺 [Watch the Tutorial](https://www.youtube.com/watch?v=p6eE3IlAbOs) - --- ## Key Features #### Parallel Workflow Processing -- **Parallel Generation** - Run the same workflow on multiple GPUs simultaneously with different seeds -- **Automatic Load Balancing** - Distribute workflow execution across available workers -- **Batch Acceleration** - Generate multiple variations faster by using all your GPUs +- Run workflows on multiple GPUs simultaneously with varied seeds +- Generate multiple outputs in the time of one +- Scale output with more workers +- Supports images and videos #### Distributed Upscaling -- **True Distributed Processing** - Split large upscaling tasks into tiles processed across multiple GPUs -- **Tile-based Upscaling** - Intelligent work distribution for Ultimate SD Upscale +- Accelerate Ultimate SD Upscale by distributing tiles across GPUs +- Intelligent distribution for asymmetric setups +- Static distribution for similar GPUs +- Handles single images and batches -#### Management & Monitoring -- **Automatic Worker Management** - Launch and monitor workers from the UI -- **Network Support** - Use GPUs across different machines on your network -- **Real-time Monitoring** - Track worker status and performance from the UI -- **Easy Configuration** - JSON-based configuration with UI controls -- **Memory Management** - Built-in VRAM clearing +#### Convenience +- Auto-setup local workers; easily add remote/cloud ones +- Manage workers via UI panel +- Convert any workflow to distributed with 2 nodes +- JSON configuration with UI controls --- ## Requirements -- ComfyUI installation +- ComfyUI +> Note: Desktop app not supported currently - Multiple GPUs - That's it @@ -45,106 +52,13 @@ A powerful extension for ComfyUI that enables parallel and distributed processin git clone https://github.com/robertvoy/ComfyUI-Distributed.git ``` -2. **Restart ComfyUI** - If you'll be using remote workers, add `--enable-cors-header` to your launch arguments - ---- - -## Quick Start - -### Adding Local Workers - -> Local Workers: Additional ComfyUI instances running on the same computer (with multi-GPUs) as your main ComfyUI installation. - -1. **Open** the Distributed GPU panel. -2. **Click** "Add Worker" in the UI. -3. **Configure** your local worker: - - **Name**: A descriptive name for the worker (e.g., "My Gaming PC GPU 0") - - **Port**: A unique port number for this worker (e.g., 8189, 8190...). - - **CUDA Device**: The GPU index from `nvidia-smi` (e.g., 0, 1). - - **Extra Args**: Optional ComfyUI arguments for this specific worker. -4. **Save** and optionally launch the local worker. - -### Adding Remote Workers -📺 [Watch the Tutorial](https://www.youtube.com/watch?v=p6eE3IlAbOs) - -> Remote Workers: ComfyUI instances running on completely different computers on your network. These allow you to harness GPU power from other machines. Remote workers must be manually started on their respective computers and are connected via IP address. - -1. **On the Remote Worker Machine:** - - **Launch** ComfyUI with the `--listen --enable-cors-header` arguments. ⚠️ **Required!** - - **Add** workers in the UI panel if the remote machine has more than one GPU. - - Make sure that they also have `--listen` set in `Extra Args`. - - Then launch them. - - **Open** the configured worker port(s) (e.g., 8189, 8190) in the remote worker's firewall. - -2. **On the Main Machine:** - - **Open** the Distributed GPU panel (sidebar on the left). - - **Click** "Add Worker." - - **Enable** "Remote Worker" checkbox. - - **Configure** your remote worker: - - **Name**: A descriptive name for the worker (e.g., "Server Rack GPU 0") - - **Host**: The remote worker's IP address. - - **Port**: The port number used when launching ComfyUI on the remote worker (e.g., 8189). - - **Save** the remote worker configuration. - -### Configuration Tips - -| Setting | Description | Example | -|---------|-------------|---------| -| **CUDA Devices** | Use `nvidia-smi` to see GPU indices | 0, 1, 2... | -| **Ports** | Each worker needs a unique port | 8189, 8190... | -| **Extra Args** | Additional ComfyUI arguments | See below | - -**Common Extra Args:** -- `--listen` - **Required** for remote workers -- `--enable-cors-header` - **Required** if using remoter workers -- `--lowvram` - For GPUs with less memory -- `--highvram` - For high-end GPUs -- `--reserve-vram 2` - Reserves 2GB of VRAM. Recommended for your primary/display GPU - ---- - -## Nodes - -### Distributed Collector -> Collects and combines results from distributed processing - -**Usage**: Place after any image generation node to enable distributed processing. Works automatically when workers are enabled. - -### Distributed Seed -> Ensures unique seeds across distributed workers for varied generations - -**Usage**: Connect to any seed input. Each worker automatically receives an offset seed to ensure randomisation. Alternatively, you can connect a seed node directly to this node's seed input, which will automatically handle seed offsetting across all workers. - -### Ultimate SD Upscale Distributed -> Distributed version of Ultimate SD Upscale that processes tiles across multiple GPUs, making upscaling much faster - -**Usage**: -1. Upscale your image with a regular upscale model (ESRGAN, etc.) -2. Feed the upscaled image into this node -3. Configure tile settings -4. Enable workers for fast processing - ---- - -## UI Features - -### Distributed GPU Panel - -The control centre for your distributed setup: - -| Feature | Description | -|---------|-------------| -| **Worker Status** | Real-time status indicators | -| **Launch/Stop** | Control individual local workers | -| **Clear Memory** | Free VRAM on all workers | -| **Interrupt** | Stop current processing | -| **Worker Logs** | View real-time logs | +2. **Restart ComfyUI** - If you'll be using remote/cloud workers, add `--enable-cors-header` to your launch arguments on the master --- ## Workflow Examples -### Basic Distributed Generation +### Basic Parallel Generation  @@ -154,6 +68,8 @@ The control centre for your distributed setup: 4. Enable workers in the UI 5. Run the workflow! +### Parallel WAN Generation + ### Distributed Upscaling  @@ -166,76 +82,49 @@ The control centre for your distributed setup: --- -## Troubleshooting - -### Common Issues +## FAQ