多显卡机器上 ComfyUI 用错了卡:需要指定 CUDA_VISIBLE_DEVICES 或 --cuda-device / 全站资源搜索
搜索 更新 2026-10-02
报错 094 硬件、驱动、操作系统与非 N 卡环境 有来源可查

多显卡机器上 ComfyUI 用错了卡:需要指定 CUDA_VISIBLE_DEVICES 或 --cuda-device

报错原文(原样)
Total VRAM 24564 MB, total RAM 32698 MB
pytorch version: 2.x.x
Set vram state to: NORMAL_VRAM
Device: cuda:0 NVIDIA GeForce RTX 3060 : cudaMallocAsync
(注:以上为转述文本,非逐字原文。)
检索关键词 CUDA_VISIBLE_DEVICES、--cuda-device、--default-device、nvidia-smi -L、Device: cuda:0、多显卡
先看这一句 机器上插了两块及以上显卡(例如 3090 + 5060 Ti,或独显 + 集显),ComfyUI 启动日志里的 Device 永远是 cuda:0,生成时跑在性能弱的那块卡上,或者显存明明够却报 OOM。
适用版本 全版本通用。官方启动参数 --cuda-device / --default-device 长期存在;Docker 场景下更常用 CUDA_VISIBLE_DEVICES 或 --gpus '"device=1"'。 · 核实日期 2026-09-26 · 状态 已核实
适用环境:Windows 便携版、秋叶/绘世整合包、ComfyUI Desktop、Linux + 云 GPU、Docker/服务器、全部主流环境

现象与触发场景

常见触发场景:

  • 机器里有多块 NVIDIA 卡,想让 ComfyUI 用第二块
  • 笔记本双显卡(Intel/AMD 集显 + NVIDIA 独显),ComfyUI 枚举到的 0 号设备不是独显
  • 同一台机器上同时跑着别的推理服务占用了 0 号卡

根因

  • CUDA 默认按枚举顺序把 0 号设备当作默认设备,ComfyUI 未指定时就用 cuda:0。
  • Windows 的图形首选项(每个应用的“高性能/省电”设置)会影响默认 GPU 的选择,笔记本混合输出下应用可能被分给集显。
  • 环境变量 CUDA_VISIBLE_DEVICES 只是重排/隐藏设备视图,不会改变物理卡的编号;用 --cuda-device 时填的是该视图下的序号,两者混用容易搞错。

解决步骤

已按「最可能有效」排序。请从上往下做,每做完一步用「验证」确认,不要一次改五处。

  1. 先列出所有显卡,确认编号与型号的对应关系
    用 nvidia-smi -L 列出设备(会带 UUID 和序号),再对照 nvidia-smi 的表格看哪块是你要用的卡。ComfyUI 启动时日志里的 Device: 行会写明它最终选了哪块。
    nvidia-smi -L
    nvidia-smi
  2. 用启动参数或环境变量把 ComfyUI 指到目标卡
    官方文档给三种方式:(a) 启动参数 --cuda-device N 直接指定;(b) 环境变量 CUDA_VISIBLE_DEVICES=1 把 1 号卡暴露成唯一的 0 号卡;(c) --default-device N 调整设备优先级(不改编号,只改“默认优先用哪块”)。Windows 便携版可以编辑 run_nvidia_gpu.bat 在里面加参数或 set 环境变量。
    python main.py --cuda-device 1
    python main.py --default-device 1
    set CUDA_VISIBLE_DEVICES=1 && python main.py
    CUDA_VISIBLE_DEVICES=1 python main.py
  3. 笔记本混合显卡场景额外设置 Windows 图形首选项
    在“设置 → 系统 → 显示 → 图形”里把 ComfyUI 用的 python.exe(或便携版的 run_nvidia_gpu.bat)设为“高性能”,强制走独显;NVIDIA 控制面板里也可为对应程序指定“高性能 NVIDIA 处理器”。这一步解决的是“枚举到的 0 号是集显”的情况。

验证是否修好

ComfyUI 启动日志的 Device: 行显示的卡就是你指定的那块;生成时 nvidia-smi 里对应卡的显存占用上升。

补充说明

官方 GPU Troubleshooting 文档明确给出 --cuda-device 0 / CUDA_VISIBLE_DEVICES=1 / --default-device 1 三种写法以及 nvidia-smi -L 检查命令。ComfyUI 启动时会打印 Device: cuda:N ... 行(如“Device: cuda:0 NVIDIA GeForce RTX 3060 : cudaMallocAsync”),但该行内容随版本变化,故 error_text_verbatim=false,仅作为判断依据。

来源

按可信度排列:官方 issue / 官方文档 > 节点仓库 issue > 社区帖 > 中文社区文章。 链接以纯文本给出(本站不做站外跳转),需要核对时请自行复制到浏览器打开。
  1. [215] (官方文档) GPU Troubleshooting - ComfyUI(Multiple NVIDIA GPUs - selecting specifi https://mintlify.wiki/Comfy-Org/ComfyUI/guides/gpu-troubleshooting
  2. [217] (官方文档) Command Line Arguments - ComfyUI https://mintlify.wiki/Comfy-Org/ComfyUI/configuration/command-line-args
  3. [218] (官方 issue) Integrated GPU vs Discrete GPU · Issue #8848 · Comfy-Org/ComfyUI https://github.com/Comfy-Org/ComfyUI/issues/8848

这条报错要用到的东西

按本条报错所属的类别(硬件、驱动、操作系统与非 N 卡环境)列出站内相关的下载包与板块入口。 它们不是「必须下载才能修好」,而是这一类问题里最常要动到的东西;具体怎么做,以上面的解决步骤为准。

环境与依赖配置包依赖版本组合清单 / 环境自检脚本说明 待挂载

同一类别的其他条目

这个解法对你有效吗 记录只存在你自己的浏览器里,不需要注册账号。

返回报错库