ComfyUI 多平台部署:快速搞定 NVIDIA、AMD 与国产加速卡的硬件兼容性
【免费下载链接】ComfyUIThe most powerful and modular diffusion model GUI, api and backend with a graph/nodes interface.项目地址: https://gitcode.com/GitHub_Trending/co/ComfyUI
ComfyUI 的节点图跑在什么硬件上,取决于两件事:装对对应后端的 PyTorch,以及启动时选对显存与精度参数。下面按"先认硬件、再调参数、后查故障"的顺序,覆盖你从 clone 仓库到解决 OOM 的完整路径。
🔀 按硬件类型走安装分支:NVIDIA、AMD、Intel 与国产卡
本节解决"我的卡该装哪个 PyTorch、跑哪条启动命令"。先按硬件对号入座,再看对应分支。
NVIDIA:装 CUDA 版 wheel 再装项目依赖
现象:启动时报Torch not compiled with CUDA enabled。原因:默认装到的是 CPU 版 PyTorch,或 torch 与驱动 CUDA 版本不匹配。做法如下:
git clone https://gitcode.com/GitHub_Trending/co/ComfyUI cd ComfyUI pip install -r requirements.txtpip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu130如果之前装错,先执行pip uninstall torch再按上面的命令重装。NVIDIA 20 系及以上显卡建议使用 cu130 及以上版本的 PyTorch,torch 最低支持到 2.7。
AMD(Linux):ROCm 稳定版与架构覆盖变量
现象:ROCm 报不支持当前架构,或启动时找不到设备。原因:官方 wheel 未覆盖你的显卡。做法分两步:
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/rocm7.2如果你的卡不在官方支持列表里,用架构覆盖变量启动:6700/6600 等 RDNA2 及更早显卡用HSA_OVERRIDE_GFX_VERSION=10.3.0 python main.py;7600 等 RDNA3 显卡用HSA_OVERRIDE_GFX_VERSION=11.0.0 python main.py。想再挤一点性能,可设置PYTORCH_TUNABLEOP_ENABLED=1开启 TunableOp,代价是首次运行明显变慢。
Intel Arc:用 torch.xpu 而非 CUDA wheel
现象:装了 CUDA 版 PyTorch 后 Arc 显卡完全没参与计算。原因:Intel 显卡需要 oneAPI/XPU 后端。做法:
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/xpu启动时可用--oneapi-device-selector指定具体设备。
昇腾 NPU、寒武纪 MLU 与 Apple Silicon
现象:装完 PyTorch 后设备仍识别为 CPU。原因:国产卡和 Mac 都依赖厂商的 PyTorch 扩展,官方安装步骤在厂商文档里,不能只装一个包了事。做法:昇腾按 torch_npu 官方文档依次装好 CANN/驱动后再跑python main.py;寒武纪先装 CNToolkit 与 torch_mlu 再启动;Apple Silicon 按 Apple 官方的 Metal 加速 PyTorch 指南装好最新版,再走与 Linux 相同的手动安装流程。
🎛️ 显存、精度与注意力参数怎么配:按显存大小对号入座
本节解决"参数太多不知道选哪个"。所有硬件相关开关都定义在 comfy/cli_args.py 中,设备探测与显存分配逻辑在 comfy/model_management.py。下图展示了模型在节点图中的流向:Checkpoint 到 KSampler 这段是显存压力最大的部分,也是下面参数主要作用的对象。
显存档位:先确认你的卡属于哪一档
NVIDIA 上 Dynamic VRAM 默认开启,模型会按压力自动在显存与内存间搬移,以下档位更多是兜底与显式控制:
| 参数 | 行为 | 适用情况 |
|---|---|---|
--gpu-only | 所有模块常驻显存 | 显存足够、追求最少搬运 |
--highvram | 用过的模型不卸载 | 16GB+ 显存 |
| 不加分档参数 | 动态显存,按需加载卸载 | 8-16GB,默认推荐 |
--lowvram | 文本编码器走 CPU | 4-8GB |
--novram | 低显存仍不够时 | 4GB 及以下 |
--cpu | 全部走 CPU | 最后手段,很慢 |
精度:FP16 是多数卡的默认答案
| 参数 | 说明 |
|---|---|
--force-fp32 | 兼容性兜底,最慢 |
--fp16-unet | 多数 NVIDIA/AMD 卡推荐 |
--bf16-unet | AMD 等 bf16 表现好的硬件可选 |
--fp8_e4m3fn-unet | 配合--supports-fp8-compute,Ada/Lovelace 及更新架构 |
出图整体偏黑或 VAE 解码异常时,用--fp32-vae或--cpu-vae单独把 VAE 拉回高精度。
注意力后端:互斥组,一次只能开一个
--use-pytorch-cross-attention(PyTorch 2.0 SDPA)、--use-flash-attention、--use-sage-attention、--use-ck-attention属于同一互斥组,同时传多个会冲突。--fast会开启若干未充分测试的优化(fp16 累加、FP8 矩阵乘等),可能影响出图质量,稳定环境慎用。
🩹 显存不足与启动报错如何排查:现象、原因、做法
本节把部署后最常撞上的四类问题按排查顺序列出。
现象:Torch not compiled with CUDA enabled。原因:装的是 CPU 版 torch。做法:pip uninstall torch后安装对应 CUDA 或 ROCm 的 wheel(见上节)。
现象:日志显示使用 CPU,或指定设备不可见。原因:驱动过旧,或多卡机器默认选了 0 号卡。做法:多卡时用--cuda-device 1指定第二张卡(支持0,1这样的逗号列表),用--default-device设默认设备。
现象:生成中途out of memory崩溃。原因:显存峰值被批大小、分辨率或驻留策略顶满。做法,按顺序尝试:
--reserve-vram 2:给系统和浏览器预留 2GB;- 切到
--lowvram或--novram档位; - 仍然崩溃再加
--cpu兜底。
现象:能跑通但速度明显慢于预期。原因:动态显存模式下权重在 CPU 与 GPU 之间反复搬运。做法:显存够就加--gpu-only或--highvram让模型常驻,再叠加--fp16-unet与--use-pytorch-cross-attention:
python main.py --fp16-unet --use-pytorch-cross-attention🧩 节点输入参数如何影响硬件负载
本节解决"为什么同样的工作流,我的卡会 OOM 而别人的不会"。KSampler 的步数、宽高的分辨率、批大小这些输入直接决定显存峰值与采样耗时。自定义节点在INPUT_TYPES中声明min/max/default(参数键的定义方式见 comfy/comfy_types/examples/),前端就会据此做约束和提示。
给节点定参数范围时,把它当成硬件预算来设:为 8GB 显存的卡把默认分辨率压在安全线内、给大尺寸选项加提示或拆成可选分支,比让用户撞一次 OOM 再回退要省事。仓库blueprints/目录里的模板工作流(如 "Text to Image (Flux.1 Dev).json")可直接参考各模型的推荐参数组合。
先按你的卡型走完第一个 H2 的安装分支,再用--reserve-vram、--fp16-unet微调启动参数;遇到报错直接对照第三个 H2 的现象列表处理。
【免费下载链接】ComfyUIThe most powerful and modular diffusion model GUI, api and backend with a graph/nodes interface.项目地址: https://gitcode.com/GitHub_Trending/co/ComfyUI
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考