
ComfyUI 性能优化完整指南3 步调参显存不足与多卡部署都能搞定【免费下载链接】ComfyUIThe most powerful and modular diffusion model GUI, api and backend with a graph/nodes interface.项目地址: https://gitcode.com/GitHub_Trending/co/ComfyUIComfyUI 是目前最强的模块化扩散模型 GUI 和后端节点图界面拖拖拽拽就能搭出复杂工作流。但它跑得顺不顺很大程度上取决于你启动时那串参数。这篇文章带你把 ComfyUI 性能优化调到位显存档位怎么选、注意力与精度怎么配、多卡怎么分工照着敲命令就行。先把家底摸清楚调参之前先别急着敲命令行先回答三个问题显存多大、什么卡、几张卡。显存大小决定你能用哪个档位。N 卡跑一下nvidia-smi就能看到A 卡看 ROCm 输出或设备管理器。卡型号决定注意力和精度的可选项比如 Ada/Hopper 架构才吃得到 FlashAttention 和 fp8 的甜头。几张卡单卡走参数优化多卡可以走多实例分工。为什么这是前提ComfyUI 内置了动态显存机制会根据你机器的实际情况自动在几档 VRAM 状态之间切换——源码里这套状态定义在 comfy/model_management.py 的VRAMState枚举里。也就是说它自己会摸黑适应但你知道家底之后才能告诉它别猜了就这么干把自动判断的不确定性变成确定性配置。三步调优法2.1 显存档位怎么挑4-8G / 8-12G / 12G 三档参数先看 comfy/cli_args.py 里的实际选项显存档位是互斥组有--gpu-only、--highvram、--lowvram、--novram、--cpu没有--normal-vram——默认就是 normal 档显存够用时什么都不加即可。再配上--reserve-vram单位 GB给系统和浏览器留余量# 4-8GBRTX 3060/4060 python main.py --lowvram --reserve-vram 1 --fp16-unet# 8-12GBRTX 3080/4070Ti档位不写默认 normal python main.py --reserve-vram 2 --bf16-vae# 12GBRTX 4090 python main.py --highvram --fp8_e4m3fn-unet --fp16-unet记住两点--highvram是把模型留在显存不卸载换的是速度代价是占满显存--reserve-vram别只填给系统的量浏览器开着标签页也要算在内。2.2 注意力机制和精度怎么配N 卡 / A 卡分开说N 卡ComfyUI 提速主战场xformers 装上就会自动启用不用专门加参数想关掉用--disable-xformers。其他后端是互斥选项按需挑一个python main.py --use-flash-attentionFlashAttention 在 Ada 之后的架构上收益明显老卡如 RTX 20 系更稳的是--use-split-cross-attention。Sage 和 CK 注意力也列在同一互斥组里属于可选加速项质量敏感工作流先别碰。A 卡ROCm走 PyTorch 原生路径即可--use-pytorch-cross-attentionFlashAttention 在 ROCm 6.4 上也可以试--use-flash-attention。精度三件套--fp16-unet/--bf16-unet/--fp8_e4m3fn-unet管扩散模型--bf16-vae管解码器--fp8_e4m3fn-text-enc管文本编码器。N 卡主力组合python main.py --fp16-unet --bf16-vaefp16-vae 会黑图默认别用显存富裕再加--fp8_e4m3fn-text-enc省一大截。A 卡建议 unet 走 bf16数值更稳。2.3 多卡怎么分工多实例 简单分发ComfyUI 不做单进程内的自动多卡均衡思路很朴素一张卡一个实例端口错开# GPU 0 / GPU 1 各起一个实例 CUDA_VISIBLE_DEVICES0 python main.py --port 8188 --highvram CUDA_VISIBLE_DEVICES1 python main.py --port 8189 --highvram分发不用写长代码调用方随机挑端口打过去就行示意import random, requests url random.choice([http://localhost:8188/prompt, http://localhost:8189/prompt]) requests.post(url, jsonworkflow)分发的粒度自己定按工作流轮询最简单按任务类型分比如 8188 跑图、8189 跑视频更稳。官方 API 示例在 script_examples/ 目录里面有 basic 和 websocket 两版可以直接抄。一张表看懂常用参数参数干什么的什么时候用--lowvram/--highvram/--novram/--cpu互斥的显存档位默认 normal4-8G 用 lowvram12G 用 highvram都不够再降档--reserve-vram GB给系统/浏览器预留显存OOM 且显存接近打满时先加 1-2--fp16-unet/--bf16-unet/--fp8_e4m3fn-unet扩散模型精度N 卡默认 fp16A 卡偏 bf16--bf16-vae/--fp16-vaeVAE 解码精度bf16 稳妥fp16-vae 易黑图--fp8_e4m3fn-text-enc文本编码器存 fp8显存宽裕时省一大截--use-flash-attention/--use-sage-attention/--use-ck-attention互斥的注意力后端N 卡新架构优先 flash老卡用 split--disable-xformers关掉自动启用的 xformers与某些工作流出问题时回退排查--cache-none关节点结果缓存显存被缓存挤爆时--high-ram提高缓存上限内存大的机器微调提速--fast启用实验性优化fp16 累加、fp8 矩阵乘等求极限速度、能接受质量波动--port n/--listen多实例端口与远程访问ComfyUI 多卡部署必配调完怎么算有效验证方法挑三个就够看启动日志ComfyUI 启动时会打印检测到的 VRAM 档位和启用的特性。确认它停在你想的档位上比如 highvram 场景下看到模型驻留显存的提示而不是又回落到 normal。同图对比同一条工作流、同一个种子调参前后各跑一遍记录耗时日志里每个节点的执行时间都有。注意有效是快且出图一致不是单纯快。压一压再说话把分辨率拉到你日常上限跑一轮显存曲线平稳、不触发卸载抖动才算真稳。多实例场景对每个端口分别压一次确认负载真的分到了第二张卡。翻车了怎么办出图黑了一片或出现 NaN九成是精度问题--fp16-vae换回--bf16-vae还不行加--force-upcast-attention参数说明里明确写了它专治黑图。OOM但显存看着还有富余先查是不是被浏览器和其他程序占了——nvidia-smi看的是总占用不只是 ComfyUI。加--reserve-vram再考虑降一档--highvram下 OOM 就别硬扛把档降回来。调完反而变慢先怀疑缓存策略。--cache-none是省显存不是提速别搞反方向再检查是不是误开了--cpu或--deterministic后者会让 PyTorch 走慢速确定性算法。收尾没有一套参数对所有人最优只有对你这套硬件最优。现在就动手默认配置把工作流跑通然后一次只改一个参数、每改一次都按上面的方法验证出问题时立刻知道是哪次改动引起的。【免费下载链接】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),仅供参考