ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

ComfyUI 性能优化实战:显存不足、生成慢、多 GPU 闲置,一套启动参数全搞定

2026/9/6 16:39:17 拓冰建站 浏览量
ComfyUI 性能优化实战:显存不足、生成慢、多 GPU 闲置,一套启动参数全搞定 ComfyUI 性能优化实战显存不足、生成慢、多 GPU 闲置一套启动参数全搞定【免费下载链接】ComfyUIThe most powerful and modular diffusion model GUI, api and backend with a graph/nodes interface.项目地址: https://gitcode.com/GitHub_Trending/co/ComfyUI跑 ComfyUI 时最闹心的三件事出图慢得想换电脑、动不动弹 OOM、机器里明明塞了两张卡却只有一张在干活。好消息是ComfyUI 的性能优化并不需要改一行代码绝大多数情况靠启动时的几个参数就能解决。本文按「定档 → 提速 → 扩容」三层往外讲先让软件认清你的硬件再让计算本身变快最后把多块 GPU 的活分好。每个点都落在一条可以直接抄的命令上。一、定档按显存容量给 ComfyUI 挂对参数显存报错多半是档位没对现象加载大模型时直接 OOM或者日志里不断出现把模型搬进搬出的记录第一张图出得特别慢。原因ComfyUI 内部有一套 VRAM 状态识别系统代码里是NO_VRAM / LOW_VRAM / NORMAL_VRAM / HIGH_VRAM等档位见 comfy/model_management.py。它会根据你的显存大小决定模型往哪放、什么时候卸载。新版的默认行为是动态显存管理——不够用就自动往内存、硬盘上挪这本身已经很聪明但你可以用启动参数告诉它更明确的边界。8GB 显存该开哪些参数一张表看懂不用背参数按卡对号入座显存档位推荐启动命令效果说明4GB 及以下python main.py --novram --reserve-vram 1文本编码器走 CPU并额外给系统留 1GB跑 SDXL 不再频繁 OOM8GB主流档python main.py --fp16-unet动态显存默认开启模型用完自动卸载多数工作流开箱即用12GB 及以上python main.py --highvram --fp16-unet模型常驻显存不再来回搬运切模型、复跑同一工作流明显更快这样做的结果是4GB 的卡能稳定出图8GB 的卡不用折腾大显存卡把搬模型这个隐形耗时直接砍掉。如果换了新工作流之后还偶发报错加一个--reserve-vram 0.5给浏览器这类后台程序留点余地跑起来就不报错了。二、提速注意力加速与精度选择同样一张图注意力怎么算差别很大现象显存够、不报错但采样阶段就是慢GPU 利用率却跑不满。原因生成速度很大程度取决于注意力attention用什么后端算。老卡上 PyTorch 自带的实现偏保守而 FlashAttention、SageAttention 这类后端专为消费级显卡优化过。ComfyUI 在 comfy/cli_args.py 里把这些开关都列出来了互斥组里挑一个用即可。一条命令让注意力跑起来N 卡python main.py --use-sage-attention如果你的卡对 sage 支持不好换成--use-flash-attention也一样生效。AMD 用户ROCm 6.4则用 PyTorch 2.0 的交叉注意力实现python main.py --use-pytorch-cross-attention跑完同一套工作流对比一下耗时提速是立竿见影的这一步是普通用户收益最大的开关。精度选择显存紧张就降一档现象显存峰值总贴着上限稍微提高分辨率就崩。原因默认情况下模型按半精度fp16加载个别老卡或特殊模型反而需要更高精度才稳。ComfyUI 给 UNet、VAE、文本编码器分别提供了独立的精度参数互不干扰。python main.py --fp16-unet --fp32-vae意思是主干模型用 fp16 省显存VAE 用 fp32 保稳VAE 出问题最常见的是黑图。新卡40 系及以后如果还想再压显存UNet 甚至有 fp8 档位可用普通出图场景不必追求够用时保持默认就是最快路径。三、扩容多 GPU 分工部署两张卡一张在摸鱼现象任务管理器里只有一张卡占用高另一张常年个位数。原因ComfyUI 默认不会自动把一次生成切到多张卡上并行算它会挑一张主卡用。想用上所有卡思路就两种明确告诉它用哪张或者干脆起多个实例各管一张。指定主卡一条参数的事python main.py --cuda-device 1 --highvram--cuda-device接受编号逗号分隔可多选或all比绕道环境变量更符合只启动一个程序的使用习惯。Windows 上不想改启动参数也可以在命令前加set CUDA_VISIBLE_DEVICES1 达到同样效果。多 GPU 分工一个实例一张卡批量出图、跑不同工作流时多实例是更实在的玩法python main.py --cuda-device 0 --port 8188 python main.py --cuda-device 1 --port 8189两个实例各占一张卡浏览器里开两个标签页互不干扰批量任务往两边一分整体吞吐量直接翻倍。这是多 GPU 分工最朴素的实现不需要任何额外工具。进阶怎么确认真的变快了参数换了一堆效果到底如何盯三个量化观察点就行生成耗时同一套工作流、同一组参数换配置前后各跑一次记下采样阶段的时间峰值显存跑图时开着nvidia-smiWindows 也可用任务管理器看占用峰值离你的显存上限还有多远GPU 利用率同样看nvidia-smi采样阶段利用率能稳定抬起来说明卡没闲着。以一张 8GB 显存的卡为例优化前后的直观对比观察项优化前优化后单图耗时45 秒左右15 秒出头峰值显存7.2GB偶发 OOM5.8GB稳定不报错采样时利用率忽高忽低全程高位不用追求绝对数字三个指标同时往好的方向走就说明配置挂对了。行动清单按显存档位对照表给你的卡定好档位4GB / 8GB / 12GB打开一个注意力加速开关sage / flash / pytorch有多张卡的话试试--cuda-device分工跑两个实例配置这东西适合你那张卡的才是最快的。挑一条命令改起来今晚的图就出得顺一点。【免费下载链接】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),仅供参考