ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

新手如何优化ComfyUI性能:单卡到多卡的3套参数组合指南

新手如何优化ComfyUI性能:单卡到多卡的3套参数组合指南 新手如何优化ComfyUI性能单卡到多卡的3套参数组合指南【免费下载链接】ComfyUIThe most powerful and modular diffusion model GUI, api and backend with a graph/nodes interface.项目地址: https://gitcode.com/GitHub_Trending/co/ComfyUI出图慢得让人干等、OOM 弹窗反复打断工作流、手里两张卡却只有一张在干活——这是大多数人刚接触 ComfyUI 时最常见的三个糟心点。ComfyUI 是目前最主流的模块化扩散模型 GUI 与后端它的 ComfyUI性能优化其实并不需要改代码绝大多数问题靠选对启动参数就能解决。这篇文章按显卡档位 使用场景的思路把参数讲透。先给显卡对号入座你的显存属于哪一档调参之前先搞清楚一件事你的卡离够用还差多远。先看结论再选策略。显存档位典型硬件推荐思路4–8 GBRTX 3060、RTX 4060走低显存档位把精度降下来先保证能跑通8–12 GBRTX 3080、RTX 4070 Ti正常档位 混合精度在稳定和速度之间取平衡12 GB 以上RTX 4090高显存档位权重尽量留在 GPU 里追求速度原则很简单显存越小越要把模型搬来搬去省空间显存越大越要让模型常驻显存少折腾。第一组就能跑的参数按档位直接抄不想研究原理的话下面三行命令可以直接用。这是三档最稳的组合也是 comfy/cli_args.py 中对应开关的标准用法。# 4-8GB 显存RTX 3060 / 4060 python main.py --lowvram --reserve-vram 1 --fp16-unet # 8-12GB 显存RTX 3080 / 4070 Ti python main.py --normal-vram --reserve-vram 2 --bf16-vae # 12GB 以上显存RTX 4090 python main.py --highvram --fp16-unet --fp8_e4m3fn-text-enc几个参数的作用一句话说明--reserve-vram是给系统和浏览器留出的显存单位 GB不够就调大--fp16-unet让扩散模型用半精度跑显存直接省一半--bf16-vae让 VAE 用 bf16出图更稳--fp8_e4m3fn-text-enc把文本编码器压到 fp8大显存卡上属于白捡的速度。遇到 OOM 怎么办显存档位排查清单还是爆显存按下面顺序逐项排查一般前三步就能解决。降档位把--highvram换成--normal-vram再不行换成--lowvram。低档位会把用过的模型卸回内存代价是切换稍慢换来的是不容易崩。给系统留空间加上--reserve-vram 2之类的参数明确告诉 ComfyUI 有几 GB 不许碰。多开浏览器、挂着画图软件时尤其有用。把 VAE 挪走加--cpu-vae让解码图像这一步在 CPU 上做出图最后一刻最吃显存挪走它常常能救命。继续降精度--bf16-unet或--fp16-unet二选一文本编码器还能再压加--fp8_e4m3fn-text-enc。最后手段--novram档位适合显存紧张到 lowvram 都压不住的情况。调整完跑一张高分辨率图验证显存占用平稳、不再报错就说明档位选对了。速度还不够快时注意力机制 混合精度显存不紧张但速度上不去瓶颈通常在注意力计算和数值精度上。注意力机制怎么选先看芯片Nvidia 卡走 xformers 路线AMD 卡ROCm 6.4走 PyTorch FlashAttention 路线。# Nvidia 用户 python main.py --xformers --use-split-cross-attention # AMD 用户ROCm 6.4 python main.py --use-pytorch-cross-attention --use-flash-attention注意--use-split-cross-attention在启用 xformers 时会被忽略两者是配套关系。混合精度有两套现成组合直接挑一套用平衡组合--fp16-unet --bf16-vae。扩散模型跑 fp16 提速VAE 保持 bf16 避免出图异常多数卡上都稳。极限组合--fp16-unet --fp16-vae --fp8_e4m3fn-text-enc。三处全压速度和显存表现最好但个别老卡上 fp16 的 VAE 可能出现黑图遇到就退回平衡组合。手里有多张卡多实例 负载均衡ComfyUI 单个实例不会自动把一张工作流拆到多张卡上跑但多开实例就能把每张卡喂饱。思路很直白每张卡绑一个实例各占一个端口。# 绑定 GPU 0 CUDA_VISIBLE_DEVICES0 python main.py --port 8188 --highvram # 绑定 GPU 1 CUDA_VISIBLE_DEVICES1 python main.py --port 8189 --highvram之后任务分发交给一行代码随机挑一个实例提交即可import requests import random def distribute_workflow(workflow_data): base random.choice([http://localhost:8188, http://localhost:8189]) return requests.post(f{base}/prompt, jsonworkflow_data).json()想要更精细的调度比如按队列轮询、按负载选卡把random.choice换成自己的判断逻辑就行接口不变。收尾三句话验证效果一条建议长期优化优化完别拍脑袋用这三个动作确认用显存监控看占用曲线跑完整张图应当平稳不尖刺。拿一张高分辨率工作流实测能正常出图且不报 OOM。同时提交多个工作流观察两个实例是否交替出结果、互不卡死。最后一条持续调优的建议每隔一段时间回头看看自己的使用习惯——出图分辨率变大了、模型变多了就该重新评估一次 VRAM 档位和精度组合参数没有永久最优解只有当前最优解。完整的启动参数清单也可以随时在 comfy/ 目录下的源码里查到。【免费下载链接】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),仅供参考
返回列表