在 ComfyUI 里做多卡(多 GPU)环境适配,核心目标是:
让不同模型 / 不同节点 / 不同请求跑在指定 GPU 上,避免显存冲突,提高吞吐。
✅ ComfyUI 支持多 GPU
❌ 不支持自动负载均衡(不会像训练框架那样自动分配)
ComfyUI 的 GPU 选择权在:
思路:
一个 ComfyUI 进程绑定一张卡,多个进程组成多卡集群。
# GPU 0
CUDA_VISIBLE_DEVICES=0 python main.py --port 8188
# GPU 1
CUDA_VISIBLE_DEVICES=1 python main.py --port 8189✅ 优点
❌ 缺点
ComfyUI 节点支持 device 参数(部分模型节点)
model = model.to("cuda:1")或通过自定义节点:
comfy.model_management.load_models_gpu(
[model],
force_patch_weights=False,
device="cuda:1"
)✅ 适合:
❌ 不适合:
典型搭配:
在 workflow 中:
⚠️ 注意:
适合:
方式:
PromptExecutortorch.nn.DataParallel(不推荐)torch.multiprocessingComfyUI 有内置显存控制:
--lowvram
--medvram
--disable-smart-memory多卡建议:
Nginx
├── ComfyUI:8188 (GPU0)
├── ComfyUI:8189 (GPU1)
└── ComfyUI:8190 (GPU2)❌ 多卡共用一个 ComfyUI 实例
→ 显存爆炸、死锁
❌ 乱用 cuda()
→ 张量不在同一设备
❌ 忽视 VAE / ControlNet 设备
你可以告诉我:
我可以直接给你:
你现在是个人玩还是做服务?