32GPU Video Upscale (up to 32 cards)
Upscale video & images across up to 32 GPUs in ComfyUI. Split frames, pin each branch with GPU Init → Start (gpu_id 0–31), run Upscale-with-Model in parallel on CUDA or ROCm, then merge. Built for multi-card rigs — 2, 8, 16, or 32 GPUs. ESRGAN / UltraSharp / RealESRGAN.
Nodes (5)
The node that decides which card does the work
Stock Upscale Image, pinned to one GPU
Put the frames back together, in order
One node, every card working at once
Cut your video into GPU-sized chunks
ComfyUI 32GPU Video Upscale
Video & image upscale across up to 32 GPUs for ComfyUI.
Search keywords: 32 gpu, 32gpu, multigpu, multi-gpu, video upscale, ESRGAN, UltraSharp, parallel upscale, ROCm, CUDA.
Works on NVIDIA CUDA and AMD ROCm whenever PyTorch sees more than one device.
Features
| Node | What it does |
|------|----------------|
| GPU Init | Pick gpu_id 0…31 (up to 32 GPUs), initialise the card, output Start |
| Upscale Image (Model + Start) | Same as stock Upscale Image (using Model), pinned to that GPU; async so branches overlap |
| Split Image Batch | Split video frames into 1–8 parts for parallel branches |
| Merge Image Batch | Concatenate upscaled parts back in order |
| Parallel Upscale (Multi-GPU) | One-node batch fan-out via gpu_ids="0,1,2,3" |
Install
ComfyUI Manager (recommended)
- Open Manager → Install Custom Nodes
- Search:
32GPU Video Upscaleormultigpu upscale - Install → Restart ComfyUI
Manual
cd ComfyUI/custom_nodes
git clone https://github.com/ВАШ_ЛОГИН/ComfyUI-32GPU-Video-Upscale.git
Restart ComfyUI. Nodes appear under category distributed.
No extra pip packages — uses ComfyUI’s torch / spandrel stack.
Quick start (video)
Example workflow: example_workflows/32gpu_video_upscale.json
Load Video → Get Video Components → Split Image Batch (num_parts=4)
├─ DistUpscale gpu_id=0 ─┐
├─ DistUpscale gpu_id=1 ─┤
├─ DistUpscale gpu_id=2 ─┤
└─ DistUpscale gpu_id=3 ─┴→ Batch Images
→ Create Video → Save Video
- Put an upscale model in
models/upscale_models/(ESRGAN / UltraSharp / …). - Set each branch to a different
gpu_id. - Load your video → Queue.
Scale to 16 / 32 GPUs
Split Image Batch exposes up to 8 outputs. Cascade splits:
- 8 GPUs →
num_parts=8 - 16 GPUs → split into 2, then each half into 8
- 32 GPUs → split into 4, then each quarter into 8
Image-only (2 GPUs)
See example_workflows/two_gpu_image_upscale.json.
GPU Init (0) ─Start─► Upscale (Model + Start) ─► Save
GPU Init (1) ─Start─► Upscale (Model + Start) ─► Save
Requirements
- Recent ComfyUI with async node support (so Start→Upscale branches overlap)
torch.cuda.device_count() >= 2for a real speedup- Do not change
CUDA_VISIBLE_DEVICES/HIP_VISIBLE_DEVICESafter ComfyUI starts
License
MIT — see LICENSE.