LogoWonderful Launcher
  • 首页
  • 定价
  • 文档
  • 下载
多 GPU价格与积分说明
参考

ComfyUI 多 GPU:怎样安全使用多张显卡

Partially verifiedLow riskTested on Windows 10, Windows 11 | portable | Python 3.11+ | CUDA 12.x | Torch 2.x | ComfyUI 多 GPU 启动参数和多实例端口模式Last verified 2026-06-04Estimated time 5-15 分钟

解释 ComfyUI 在多 GPU 场景下能做什么、不能做什么,说明 --cuda-device 的用法,以及怎样把两个实例跑在不同端口上。

ComfyUI 可以指定使用某一张 GPU,也可以在不同 GPU 上各跑一个独立实例。

如果你搜的是 comfyui multi gpu,先记住三个结论:

  • 大多数普通工作流默认还是只会跑在一张已选中的 GPU 上
  • 更实用的多卡方案通常是 两个 ComfyUI 实例 + 两个端口 + 两张 GPU
  • 想让 ComfyUI 从 GPU 0 换到 GPU 1,最常用的参数是 --cuda-device

很多人希望一个 KSampler 自动把同一个工作流拆到两张卡上,但这通常不是标准 ComfyUI 工作流默认会做的事。

快速答案

目标推荐做法例子
用 GPU 1 代替 GPU 0用 --cuda-device 1 启动python main.py --cuda-device 1
同时跑两个队列两个 ComfyUI 实例,分别绑定不同端口--cuda-device 0 --port 8188 和 --cuda-device 1 --port 8189
保留所有 GPU 可见,但优先一张卡只在明确需要时用 --default-devicepython main.py --default-device 1
想让一个工作流自动跨两张卡默认通常不支持需要明确支持分布式或多卡的模型 / 节点
显存不够想靠第二张卡兜底通常不现实先缩分辨率、缩 batch、用低显存模式

多 GPU 在 ComfyUI 里通常分三种情况

  1. 选一张 GPU 来跑:例如固定跑在 GPU 1。
  2. 跑多个实例:一个实例用 GPU 0,另一个实例用 GPU 1。
  3. 把同一个工作流拆到多张 GPU:单个模型或单个工作流真正跨卡并行。

前两种是常见、可操作的。第三种不是多数标准工作流的默认行为。

第 1 步:先确认你的显卡编号

在 Windows 或 Linux 上先运行:

nvidia-smi

通常第一张卡是 0,第二张卡是 1。

再确认 PyTorch 看得到 CUDA:

python -c "import torch; print(torch.cuda.device_count()); print(torch.cuda.get_device_name(0))"

如果 torch.cuda.device_count() 返回 0,那你现在还不是多 GPU 问题,而是 Torch 或 CUDA 根本没装好。先去看 GPU Compatibility。

第 2 步:用 --cuda-device 选定一张 GPU

手动安装版:

python main.py --cuda-device 1

Windows 便携包可以在启动命令后面加:

.\python_embeded\python.exe -s ComfyUI\main.py --windows-standalone-build --cuda-device 1

--cuda-device 的核心作用是:当前这个 ComfyUI 进程只看见并使用你指定的那张卡。

所以即使日志里仍打印 cuda:0,也不一定是错的。因为对这个进程来说,选中的那张卡可能已经变成了“唯一可见卡”。

第 3 步:两张卡最稳的做法是跑两个实例

实例 A:

python main.py --cuda-device 0 --port 8188

实例 B:

python main.py --cuda-device 1 --port 8189

然后分别打开:

http://127.0.0.1:8188
http://127.0.0.1:8189

这才是多数生产场景下最稳的多卡模式:一张卡一个队列。

如果你长期这样用,建议顺手把用户目录也分开:

python main.py --cuda-device 0 --port 8188 --user-directory user-gpu0
python main.py --cuda-device 1 --port 8189 --user-directory user-gpu1

这样浏览器状态、工作流标签和用户设置不容易互相打架。

第 4 步:理解 --default-device

ComfyUI 还有一个 --default-device。它和 --cuda-device 不一样:

  • --cuda-device 更像“只给这个进程一张卡”
  • --default-device 更像“默认优先这张卡,但别的卡仍然可见”

大多数用户只需要 --cuda-device。只有在你明确知道某些节点或高级工作流需要保留其他设备可见时,再考虑 --default-device。

第 5 步:不要把多 GPU 当成显存补丁

如果根因是某个工作流单卡显存不够,第二张卡通常不会自动让同一个模型“拼卡成功”。

优先做这些:

  • 降低分辨率
  • 降低 batch size
  • 关闭其他占显存程序
  • 需要时加 --lowvram
  • 用量化模型或更小模型

如果你真正的问题是显存压力,先看 Python Out of Memory in ComfyUI。

常见误区

误区为什么不对更好的做法
只开两个浏览器标签页两个标签页还是同一个 ComfyUI 进程真正再起一个新进程
把 --cuda-device 1 放错位置参数没有传给 main.py确保参数跟在 main.py 后面
期待一个工作流自动分到两张卡标准节点通常不会默认跨卡用两个实例,或者用明确支持多卡的方案
两个实例都占用 8188同一个端口只能被一个进程绑定用 8188 和 8189
装成 CPU-only TorchComfyUI 根本用不到 NVIDIA GPU重装正确 CUDA wheel

怎么验证配置生效

启动后先看 ComfyUI 日志里的设备信息,例如:

Device: cuda:0 NVIDIA GeForce ...

再在生成时观察 nvidia-smi。如果你跑了两个实例,就分别在两个端口各排一个小任务,确认两张 GPU 都有活动。

如果只有一张卡有负载,回头检查:

  • 你打开的是不是正确端口
  • 两个进程是不是都还活着
  • 两个命令是不是确实用了不同的 --cuda-device
  • 第二个实例是不是因为端口冲突没启动成功

相关页面

  • GPU Compatibility
  • Python Out of Memory in ComfyUI
  • ComfyUI Reconnecting Error
  • ComfyUI Dependency Conflicts

如果这个问题已经碰到你真实在用的 ComfyUI 环境,先用 Wonderful Launcher 接管和检查当前机器,再配合文档决定怎么修。

下载 Wonderful Launcher

Did this fix your issue?

Your answer helps prioritize verified ComfyUI repairs.

工作流缺少节点

Fix ComfyUI workflows that fail to load because of missing custom nodes, with steps to identify, install, and recover missing node types.

价格与积分说明

了解 Wonderful Launcher 的积分如何工作、不同功能消耗多少积分,以及该怎么选套餐。

目录

快速答案
多 GPU 在 ComfyUI 里通常分三种情况
第 1 步:先确认你的显卡编号
第 2 步:用 --cuda-device 选定一张 GPU
第 3 步:两张卡最稳的做法是跑两个实例
第 4 步:理解 --default-device
第 5 步:不要把多 GPU 当成显存补丁
常见误区
怎么验证配置生效
相关页面