Compare commits

...
Author SHA1 Message Date
Robert Wojciechowski 7cd014fc0e Update worker-setup-guides.md 2025-07-31 18:58:44 +10:00
Robert Wojciechowski 51e9a03dd5 Update README.md 2025-07-31 17:55:41 +10:00
Robert Wojciechowski 421ca2e023 Update worker-setup-guides.md 2025-07-31 17:52:45 +10:00
robertvoy ae3201accb Merge branch 'main' of https://github.com/robertvoy/ComfyUI-Distributed 2025-07-31 13:46:58 +10:00
Robert Wojciechowski ae1d1a7f89 Update pyproject.toml 2025-07-31 13:40:36 +10:00
robertvoy 407e68816d Add index preservation to fix distributed batch ordering 2025-07-31 13:37:59 +10:00
Robert Wojciechowski e4b0fe11fd Update pyproject.toml 2025-07-31 13:06:23 +10:00
Robert Wojciechowski 960c44b095 Update README.md 2025-07-31 12:39:15 +10:00
Robert Wojciechowski 35925c1e1b Update worker-setup-guides.md 2025-07-31 12:36:08 +10:00
Robert Wojciechowski feb56e234b Update worker-setup-guides.md 2025-07-31 12:30:50 +10:00
Robert Wojciechowski f5d7307aef Update README.md 2025-07-31 12:30:28 +10:00
Robert Wojciechowski 386f7ae2d4 Update worker-setup-guides.md 2025-07-31 12:27:15 +10:00
Robert Wojciechowski a161213a8f Update worker-setup-guides.md 2025-07-31 09:57:08 +10:00
Robert Wojciechowski a884527ad3 Update README.md 2025-07-31 09:56:22 +10:00
Robert Wojciechowski 53be3e0c18 Update README.md 2025-07-31 09:31:51 +10:00
Robert Wojciechowski 8f87d1ac29 Update README.md 2025-07-31 08:01:05 +10:00
robertvoy b54f2be19c Merge branch 'main' of https://github.com/robertvoy/ComfyUI-Distributed 2025-07-30 13:23:09 +10:00
robertvoy 1e9ba2383d increased worker timeout for static distribution 2025-07-30 13:23:00 +10:00
Robert Wojciechowski 33fbe4cb62 Update README.md 2025-07-30 12:58:57 +10:00
Robert Wojciechowski 5882a1064e Update worker-setup-guides.md 2025-07-30 11:31:06 +10:00
Robert Wojciechowski b646f0b41c Update worker-setup-guides.md 2025-07-30 10:38:32 +10:00
Robert Wojciechowski 3c988daad1 Update worker-setup-guides.md 2025-07-30 10:05:39 +10:00
Robert Wojciechowski 500a5b38b2 Update worker-setup-guides.md 2025-07-30 09:40:31 +10:00
Robert Wojciechowski a49c7a8ed5 Update worker-setup-guides.md 2025-07-30 07:30:25 +10:00
Robert Wojciechowski 8c41749ea6 Update worker-setup-guides.md 2025-07-30 07:29:02 +10:00
Robert Wojciechowski 394a2d8a9a Update worker-setup-guides.md 2025-07-29 16:48:58 +10:00
Robert Wojciechowski e13ea47a93 Update worker-setup-guides.md 2025-07-29 16:41:11 +10:00
Robert Wojciechowski 81e644e661 Update ui.js 2025-07-29 16:35:42 +10:00
Robert Wojciechowski b13c78ad71 Update README.md 2025-07-29 16:31:16 +10:00
Robert Wojciechowski 520393b150 Update worker-setup-guides.md 2025-07-29 16:20:17 +10:00
Robert Wojciechowski 8c029e5702 Update worker-setup-guides.md 2025-07-29 16:12:43 +10:00
Robert Wojciechowski 0391605c80 Update model-download-script.md 2025-07-29 16:09:33 +10:00
Robert Wojciechowski 784aa3a06b Update model-download-script.md 2025-07-29 16:05:35 +10:00
Robert Wojciechowski f589a723fe Update README.md 2025-07-29 15:59:30 +10:00
Robert Wojciechowski d247746e22 Update worker-setup-guides.md 2025-07-29 15:58:26 +10:00
Robert Wojciechowski 0fe8485c6c Update README.md 2025-07-29 15:28:06 +10:00
Robert Wojciechowski ccb00a7142 Update README.md 2025-07-29 14:01:52 +10:00
Robert Wojciechowski 0acf557ba5 Update model-download-script.md 2025-07-29 13:53:03 +10:00
Robert Wojciechowski 9926253c8b Update model-download-script.md 2025-07-29 13:52:12 +10:00
Robert Wojciechowski 285710bb28 Update README.md 2025-07-29 13:51:31 +10:00
Robert Wojciechowski a58ca1fc1d Update worker-setup-guides.md 2025-07-29 13:50:22 +10:00
Robert Wojciechowski f5a1e59d65 Update worker-setup-guides.md 2025-07-29 13:48:56 +10:00
Robert Wojciechowski ff02c88224 Update README.md 2025-07-29 13:45:49 +10:00
Robert Wojciechowski b7c7c033d5 Update pyproject.toml 2025-07-29 13:40:53 +10:00
Robert Wojciechowski f7efde4eb5 Update README.md 2025-07-29 13:40:18 +10:00
robertvoy f4f7e48d89 Merge branch 'feature/cloud-workers' 2025-07-29 13:37:53 +10:00
robertvoy 0a480c143a readme 2025-07-29 13:36:49 +10:00
Robert Wojciechowski fb46d32e39 Update README.md 2025-07-14 07:05:00 +10:00
Robert Wojciechowski acf166fe6c Update README.md 2025-07-11 09:54:12 +10:00
Robert Wojciechowski e5a2ab8fc5 Update pyproject.toml 2025-07-11 07:23:14 +10:00
7 changed files with 130 additions and 70 deletions
+27 -7
View File
@@ -1,5 +1,5 @@
<div align="center">
<img width="320" src="https://github.com/user-attachments/assets/537d38cc-2e34-4527-bca7-0d79f4120cce" />
<img width="320" src="https://github.com/user-attachments/assets/533bb98d-0c4a-499f-9bca-5c937e361087" />
<br><br>
<a href="https://www.youtube.com/watch?v=p6eE3IlAbOs"><img src="https://img.shields.io/badge/Video_Tutorial-grey?style=flat&logo=youtube&logoColor=white" alt="Video Tutorial"></a>
<a href="/docs/worker-setup-guides.md"><img src="https://img.shields.io/badge/Setup_Guides-grey?style=flat&logo=gitbook&logoColor=white" alt="Setup Guides"></a>
@@ -9,7 +9,7 @@
<br><br>
</div>
> **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.**
> **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 and cloud.**
![Clipboard Image (7)](https://github.com/user-attachments/assets/66aaadef-f195-48a1-a368-17dd0dae477d)
@@ -18,7 +18,7 @@
## Key Features
#### Parallel Workflow Processing
- Run workflows on multiple GPUs simultaneously with varied seeds
- Run your workflow on multiple GPUs simultaneously with varied seeds, collect results on the master
- Scale output with more workers
- Supports images and videos
@@ -34,11 +34,26 @@
---
## Worker Types
<img width="200" align="right" alt="ComfyUI_temp_khvcc_00034_@0 25x" src="https://github.com/user-attachments/assets/651e4912-7c23-4e32-bd88-250f5175e129" />
ComfyUI Distributed supports three types of workers:
- **Local Workers** - Additional GPUs on the same machine (auto-configured on first launch)
- **Remote Workers** - GPUs on other computers in your network
- **Cloud Workers** - GPUs hosted on a cloud service like Runpod, accessible via secure tunnels
> For detailed setup instructions, see the [setup guide](/docs/worker-setup-guides.md)
---
## Requirements
- ComfyUI
> Note: Desktop app not currently supported
- Multiple GPUs
- Multiple NVIDIA GPUs
> No additional GPUs? Use [Cloud Workers](https://github.com/robertvoy/ComfyUI-Distributed/blob/main/docs/worker-setup-guides.md#cloud-workers)
- That's it
---
@@ -50,9 +65,10 @@
git clone https://github.com/robertvoy/ComfyUI-Distributed.git
```
2. **Restart ComfyUI** - If you'll be using remote/cloud workers, add `--enable-cors-header` to your launch arguments on the master
2. **Restart ComfyUI**
- If you'll be using remote/cloud workers, add `--enable-cors-header` to your launch arguments on the master
3. Read the [setup guide](https://github.com/robertvoy/ComfyUI-Distributed/blob/feature/cloud-workers/docs/worker-setup-guides.md) for adding workers
3. Read the [setup guide](/docs/worker-setup-guides.md) for adding workers
---
@@ -88,7 +104,7 @@ Generate multiple videos in the time it takes to generate one. Each worker uses
8. Run the workflow!
### Distributed Upscaling
Accelerate the process by distributing tiles across multiple workers, with speed scaling as you add more GPUs.
Accelerate Ultimate SD Upscaler by distributing tiles across multiple workers, with speed scaling as you add more GPUs.
![Clipboard Image (3)](https://github.com/user-attachments/assets/ffb57a0d-7b75-4497-96d2-875d60865a1a)
@@ -98,6 +114,7 @@ Accelerate the process by distributing tiles across multiple workers, with speed
2. Upscale with ESRGAN or similar
3. Connect to **Ultimate SD Upscale Distributed**
4. Configure tile settings
> If your GPUs are similar, set `static_distribution` to true; otherwise, false
5. Enable workers for faster processing
---
@@ -143,4 +160,7 @@ This software is provided "as is" without any warranties, express or implied, in
---
## Support the Project
<img width="200" src="https://github.com/user-attachments/assets/84291921-c44e-4556-94f2-a3b16500f4f9" />
If my custom nodes have added value to your workflow, consider fueling future development with a coffee! Your support helps keep this project thriving. Buy me a coffee at: https://buymeacoffee.com/robertvoy
+15 -4
View File
@@ -1740,6 +1740,9 @@ async def job_complete_endpoint(request):
image_data_list.sort(key=lambda x: x[0])
tensors = [tensor for _, tensor in image_data_list]
# Keep the indices for later use
indices = [idx for idx, _ in image_data_list]
# Validate final order
if metadata:
debug_log(f"Reordered {len(tensors)} images based on metadata indices")
@@ -1768,10 +1771,11 @@ async def job_complete_endpoint(request):
debug_log(f"Current pending jobs: {list(prompt_server.distributed_pending_jobs.keys())}")
if multi_job_id in prompt_server.distributed_pending_jobs:
if batch_size > 0:
# Put batch as single item
# Put batch as single item with indices
await prompt_server.distributed_pending_jobs[multi_job_id].put({
'worker_id': worker_id,
'tensors': tensors,
'indices': indices,
'is_last': is_last
})
debug_log(f"Received batch result for job {multi_job_id} from worker {worker_id}, size={len(tensors)}")
@@ -1934,6 +1938,7 @@ class DistributedCollectorNode:
# Check if batch mode
tensors = result.get('tensors', [])
indices = result.get('indices', []) # Get the indices
if tensors:
# Batch mode
debug_log(f"Master - Got batch from worker {worker_id}, size={len(tensors)}, is_last={is_last}")
@@ -1941,9 +1946,15 @@ class DistributedCollectorNode:
if worker_id not in worker_images:
worker_images[worker_id] = {}
# Add all tensors with sequential indices
for idx, tensor in enumerate(tensors):
worker_images[worker_id][idx] = tensor
# Use actual indices if available, otherwise fall back to sequential
if indices:
for i, tensor in enumerate(tensors):
actual_idx = indices[i]
worker_images[worker_id][actual_idx] = tensor
else:
# Fallback for backward compatibility
for idx, tensor in enumerate(tensors):
worker_images[worker_id][idx] = tensor
collected_count += len(tensors)
+1 -1
View File
@@ -1076,7 +1076,7 @@ class UltimateSDUpscaleDistributed:
progress_interval = 5.0
last_heartbeat_check = time.time()
stall_count = 0
max_stall_count = 10 # Allow 10 iterations with no progress before returning
max_stall_count = 120 # Allow 120 iterations with no progress before returning
last_completed_count = 0
while True:
+15 -18
View File
@@ -1,15 +1,14 @@
## Automating ComfyUI Model Downloads
> This guide will walk you through creating a shell script to automatically download the necessary models for your ComfyUI workflow, leveraging an advanced Large Language Model (LLM).
This guide will walk you through creating a shell script to automatically download the necessary models for your ComfyUI workflow, leveraging an advanced Large Language Model (LLM).
1. In ComfyUI (on your local machine), export your workflow as an API workflow
2. Copy the below prompt and upload the API workflow to an LLM **that has access to the internet**
<details>
<summary><strong>📋 Click to expand the full prompt</strong></summary>
1. Launched the Pod with these Environment Variables:
- CIVITAI_API_TOKEN ([get your token here](https://civitai.com/user/account))
- HF_API_TOKEN ([get your token here](https://huggingface.co/settings/tokens))
2. In ComfyUI, export your workflow as an API workflow
3. Copy the below prompt and upload the API workflow to a LLM **that has access to the internet**
```
Create a sh script that will download the models from this workflow into the correct folders. For reference, these are the paths:
base_path: /workspace/ComfyUI
checkpoints: models/checkpoints/
clip: models/clip/
@@ -25,32 +24,30 @@ text_encoders: models/text_encoders/
unet: models/unet/
upscale_models: models/upscale_models/
vae: models/vae/
---
Important:
Make sure you find the correct URLs for the models online.
Use comfy cli to download the models: `comfy model download --url <URL> [--relative-path <PATH>] [--set-civitai-api-token <TOKEN>] [--set-hf-api-token <TOKEN>]`
Make sure you add `--set-civitai-api-token $CIVITAI_API_TOKEN` for CivitAI download and `--set-hf-api-token $HF_API_TOKEN` for Hugging Face downloads.
---
Example:
#!/bin/bash
# Download from CivitAI
comfy model download --url https://civitai.com/api/download/models/1759168 --relative-path /workspace/ComfyUI/models/checkpoints --set-civitai-api-token $CIVITAI_API_TOKEN
# Download model from Hugging Face
comfy model download --url https://huggingface.co/black-forest-labs/FLUX.1-dev/resolve/main/flux1-dev.safetensors --relative-path /workspace/ComfyUI/models/unet --set-hf-api-token $HF_API_TOKEN
# If a model in the workflow was in a subfolder
comfy model download --url https://civitai.com/api/download/models/1759168 --relative-path /workspace/ComfyUI/models/checkpoints/SDXL --set-civitai-api-token $CIVITAI_API_TOKEN
```
4. Review the LLMs output to make sure all download links are correct and save it as a .sh file, for example `download_models.sh`
5. Upload it onto your Runpod instance, into `/workspace`
</details>
3. Review the LLMs output to make sure all download links are correct and save it as a .sh file, for example `download_models.sh`
4. Launch the [ComfyUI Distributed Pod](https://console.runpod.io/deploy?template=m21ynvo8yo&ref=ak218p52) with these Environment Variables:
- `CIVITAI_API_TOKEN`: [get your token here](https://civitai.com/user/account)
- `HF_API_TOKEN`: [get your token here](https://huggingface.co/settings/tokens)
5. Upload the .sh file to your Runpod instance, into `/workspace`
6. Then run these commands:
- `chmod 755 /workspace/download_models.sh`
- `/workspace/download_models.sh`
7. Confirm each model name (sometimes you might need to rename them to match the name on your local machine)
+69 -37
View File
@@ -1,11 +1,11 @@
## ComfyUI Distributed Worker Setup Guide
ComfyUI-Distributed allows you to distribute your workflows across multiple GPUs, whether they're in the same machine, on your local network, or in the cloud.
## Worker Setup Guide
**Master**: The main ComfyUI instance that coordinates and distributes work. This is where you load workflows, manage the queue, and view results.
**Worker**: A ComfyUI instance that receives and processes tasks from the master. Workers handle just the GPU computation and send results back to the master. You can have multiple workers connected to a single master, each utilizing their own GPU.
<img width="600" src="https://github.com/user-attachments/assets/609c42aa-8a1c-4a3f-939e-f3552fa1d54f" />
### Types of Workers
- **Local workers**: Additional GPUs on the same machine as the master
@@ -13,8 +13,14 @@ ComfyUI-Distributed allows you to distribute your workflows across multiple GPUs
- **Cloud workers**: GPUs hosted on cloud services like Runpod
## Local workers
<img align="right" width="200" src="https://github.com/user-attachments/assets/651e4912-7c23-4e32-bd88-250f5175e129" />
> These are added automatically on first launch, but you can add them manually if you need to.
📺 [Watch Tutorial](https://youtu.be/p6eE3IlAbOs?si=K7Km0_flmPHwRQwz&t=43)
1. **Open** the Distributed GPU panel.
2. **Click** "Add Worker" in the UI.
3. **Configure** your local worker:
@@ -25,8 +31,14 @@ ComfyUI-Distributed allows you to distribute your workflows across multiple GPUs
4. **Save** and launch the local worker.
## Remote workers
<img align="right" width="200" src="https://github.com/user-attachments/assets/84291921-c44e-4556-94f2-a3b16500f4f9" />
> 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.
📺 [Watch Tutorial](https://youtu.be/p6eE3IlAbOs?si=Oxj3EzPyf4jKDvfG&t=140)
**On the Remote Worker Machine:**
1. **Launch** ComfyUI with the `--listen --enable-cors-header` arguments. ⚠️ **Required!**
- This ComfyUI instance will serve as a worker for your main master.
@@ -38,47 +50,66 @@ ComfyUI-Distributed allows you to distribute your workflows across multiple GPUs
3. **Open** the ComfyUI port (e.g., 8188) and any additional worker ports (e.g., 8189, 8190) in the firewall.
**On the Main Machine:**
1. **Open** the Distributed GPU panel (sidebar on the left).
2. **Click** "Add Worker."
3. **Choose** "Remote".
4. **Configure** your remote worker:
1. **Launch** ComfyUI with `--enable-cors-header` launch argument.
2. **Open** the Distributed GPU panel (sidebar on the left).
3. **Click** "Add Worker."
4. **Choose** "Remote".
5. **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 master/worker (e.g., 8188).
5. **Save** the remote worker configuration.
6. **Save** the remote worker configuration.
## Cloud workers
> ComfyUI instances running on a cloud service like [Runpod](https://get.runpod.io/0bw29uf3ug0p).
<img align="right" width="200" src="https://github.com/user-attachments/assets/a053f3ae-22f0-4e1c-8f2e-f26a1f660adf" />
> ComfyUI instances running on a cloud service like Runpod.
### Deploy Cloud Worker on Runpod
📺 [Watch Tutorial](https://www.youtube.com/watch?v=wxKKWMQhYTk)
**On Runpod:**
> If using your own template, make sure you launch ComfyUI with the `--enable-cors-header` argument and you `git clone ComfyUI-Distributed` into custom_nodes. ⚠️ **Required!**
1. Register a [Runpod](https://get.runpod.io/0bw29uf3ug0p) account.
2. On Runpod, go to Storage > New Network Volume and create a volume that will store the models you need. Start with 40 GB, you can always add more later.
3. Now go to Pods and find a suitable GPU for your workflows.
4. Choose the [ComfyUI Distributed Pod](https://console.runpod.io/deploy?template=m21ynvo8yo&ref=ak218p52) template and make sure your network drive is mounted.
> To use the ComfyUI Distributed Pod template, you will need to filter instances by CUDA 12.8.
6. Launch your pod.
7. Access your pod using JupyterLabs.
8. Download models into /workspaces/ComfyUI/models/ (these will remain on your network drive even after you terminate the pod).
> You can use [this guide](model-download-script.md) to make this process easy for you. It will generate a shell script that will automatically download the models you need for a given workflow.
8. If using your own template, make sure you launch ComfyUI with the `--enable-cors-header` argument and you git clone ComfyUI-Distributed into custom_nodes. ⚠️ **Required!**
9. Download any additional custom nodes using the ComfyUI Manager.
2. On Runpod, go to Storage > New Network Volume and create a volume that will store the models you need. Start with 40 GB, you can always add more later. Learn more [about Network Volumes](https://docs.runpod.io/pods/storage/create-network-volumes).
3. Use the [ComfyUI Distributed Pod](https://console.runpod.io/deploy?template=m21ynvo8yo&ref=ak218p52) template.
4. Make sure your Network Volume is mounted and choose a suitable GPU.
> ⚠️ To use the ComfyUI Distributed Pod template, you will need to filter instances by CUDA 12.8 (add filter in Additional Filters).
6. Press Edit Template to configure the pod's Environment Variables:
- CIVITAI_API_TOKEN: [get your token here](https://civitai.com/user/account)
- HF_API_TOKEN: [get your token here](https://huggingface.co/settings/tokens)
- SAGE_ATTENTION: optional optimisation (set to true/false)
5. Deploy your pod.
6. Connect to your pod using JupyterLabs. This gives us access to the pod's file system.
7. Download models into /workspaces/ComfyUI/models/ (these will remain on your network drive even after you terminate the pod). Example commands below:
```
# Download from CivitAI
comfy model download --url https://civitai.com/api/download/models/1759168 --relative-path /workspace/ComfyUI/models/checkpoints --set-civitai-api-token $CIVITAI_API_TOKEN
# Download model from Hugging Face
comfy model download --url https://huggingface.co/black-forest-labs/FLUX.1-dev/resolve/main/flux1-dev.safetensors --relative-path /workspace/ComfyUI/models/unet --set-hf-api-token $HF_API_TOKEN
```
> ℹ️ Use [this guide](model-download-script.md) to make this process easy. It will generate a shell script that automatically downloads the models for a given workflow.
9. Access ComfyUI through the Runpod URL.
10. Download any additional custom nodes you need using the ComfyUI Manager.
**On the Main Machine:**
1. Launch a Cloudflare tunnel
1. **Launch** a Cloudflare tunnel.
- Download from here: [https://github.com/cloudflare/cloudflared/releases](https://github.com/cloudflare/cloudflared/releases)
- Then run, for example: `cloudflared-windows-amd64.exe tunnel --url http://localhost:8188`
> Cloudflare tunnels create secure connections without exposing ports directly to the internet
2. Copy the Cloudflare address
3. **Open** the Distributed GPU panel (sidebar on the left).
4. **Edit** the Master's host address and replace it with the Cloudflare address.
- **Click** "Add Worker."
- **Choose** "Cloud".
- **Configure** your cloud worker:
- **Host**: The Runpod address
- **Port**: 443
- **Save** the remote worker configuration.
> ℹ️ Cloudflare tunnels create secure connections without exposing ports directly to the internet and are required for Cloud Workers.
2. **Copy** the Cloudflare address
3. **Launch** ComfyUI with `--enable-cors-header` launch argument.
4. **Open** the Distributed GPU panel (sidebar on the left).
5. **Edit** the Master's settings to change the host address to the Cloudflare address.
6. **Click** "Add Worker."
7. **Choose** "Cloud".
8. **Configure** your cloud worker:
- **Host**: The ComfyUI Runpod address. For example: `wcegfo9tbbml9l-8188.proxy.runpod.net`
- **Port**: 443
9. **Save** the remote worker configuration.
---
@@ -89,7 +120,7 @@ ComfyUI-Distributed allows you to distribute your workflows across multiple GPUs
- If your cloud platform doesn't provide a secure connection, use Cloudflare to create a tunnel for the worker. Each GPU needs their own tunnel for their respective port.
- For example: `./cloudflared tunnel --url http://localhost:8188`
1. **Launch** ComfyUI with the `--listen --enable-cors-header` arguments. ⚠️ **Required!**
2. **Add** workers in the UI panel if the remote machine has more than one GPU.
2. **Add** workers in the UI panel if the cloud machine has more than one GPU.
- Make sure that they also have `--listen` set in `Extra Args`.
- Then launch them.
@@ -98,11 +129,12 @@ ComfyUI-Distributed allows you to distribute your workflows across multiple GPUs
- Download from here: [https://github.com/cloudflare/cloudflared/releases](https://github.com/cloudflare/cloudflared/releases)
- Then run, for example: `cloudflared-windows-amd64.exe tunnel --url http://localhost:8188`
2. **Copy** the Cloudflare address
3. **Open** the Distributed GPU panel (sidebar on the left).
4. **Edit** the Master's host address and replace it with the Cloudflare address.
5. **Click** "Add Worker."
6. **Choose** "Cloud".
7. **Configure** your cloud worker:
3. **Launch** ComfyUI with `--enable-cors-header` launch argument.
4. **Open** the Distributed GPU panel (sidebar on the left).
5. **Edit** the Master's host address and replace it with the Cloudflare address.
6. **Click** "Add Worker."
7. **Choose** "Cloud".
8. **Configure** your cloud worker:
- **Host**: The remote worker's IP address/domain
- **Port**: 443
8. **Save** the remote worker configuration.
9. **Save** the remote worker configuration.
+1 -1
View File
@@ -1,7 +1,7 @@
[project]
name = "ComfyUI-Distributed"
description = "ComfyUI extension that enables multi-GPU processing locally and remotely "
version = "1.0.1"
version = "1.0.5"
license = {file = "LICENSE"}
dependencies = []
+2 -2
View File
@@ -697,7 +697,7 @@ export class DistributedUI {
// Create powered by Runpod text (initially hidden)
const runpodText = document.createElement("a");
runpodText.id = `runpod-text-${worker.id}`;
runpodText.href = "https://get.runpod.io/0bw29uf3ug0p";
runpodText.href = "https://github.com/robertvoy/ComfyUI-Distributed/blob/main/docs/worker-setup-guides.md#cloud-workers";
runpodText.target = "_blank";
runpodText.textContent = "Deploy Cloud Worker with Runpod";
runpodText.style.cssText = "font-size: 12px; color: #4a90e2; text-decoration: none; margin-top: 4px; display: none; cursor: pointer;";
@@ -1233,4 +1233,4 @@ export class DistributedUI {
return card;
}
}
}