尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

ComfyUI 显存优化实战手册:从 OOM 报错到双卡批量出图

ComfyUI 显存优化实战手册:从 OOM 报错到双卡批量出图 ComfyUI 显存优化实战手册从 OOM 报错到双卡批量出图【免费下载链接】ComfyUIThe most powerful and modular diffusion model GUI, api and backend with a graph/nodes interface.项目地址: https://gitcode.com/GitHub_Trending/co/ComfyUI[ComfyUI] Dynamic VRAM enabled, estimating memory pressure [ComfyUI] Model offloaded to CPU: clip_l.safetensors (1.5 GB) [ComfyUI] Loaded unet weights to GPU (7.9 / 12.0 GB)这段启动日志来自一次真实场景一位用户给 ComfyUI 加了--highvram想把显存用满结果 12GB 显卡在切换工作流时直接触发 OOM显存不足的报错。问题不在显卡而在参数用反了。本文围绕 ComfyUI 显存优化与多 GPU 配置给出按显存档位选默认参数、按场景上方案、排障速查与效果确认的完整做法所有启动参数均可在 comfy/cli_args.py 中查证。先定档按显存容量选默认参数ComfyUI 的显存档位与启动参数的定义位置见 comfy/model_management.py。不同显存容量默认策略不同4GB 显存显存紧张用--lowvram让文本编码器跑在 CPU并预留一部分给系统。python main.py --lowvram --reserve-vram 0.5为什么文本编码器体积大放 CPU 后 GPU 留给扩散模型避免频繁换入换出。8GB 显存不加任何档位参数交给默认行为。python main.py为什么默认启用 Dynamic VRAM会自动按实时显存压力决定模型放哪、何时卸载。12GB 显存模型常驻显存减少切换开销。python main.py --highvram为什么显存足够时避免模型在 CPU/GPU 之间反复搬运。按场景上方案单卡跑图提速日常单卡出图瓶颈往往是精度和注意力计算而不是档位参数。在默认档位之上叠加半精度与异步卸载即可python main.py --fp16-unet --bf16-vae --async-offload--fp16-unet让扩散模型以 fp16 精度运行--bf16-vae处理 VAE 解码。注意Nvidia 卡上--async-offload默认已开启可省略AMD 卡如遇到偶发异常可换--use-pytorch-cross-attention走 PyTorch 2.0 的交叉注意力路径并用--disable-async-offload关闭异步卸载。双卡批量出图的多实例部署ComfyUI 单进程不会自动把一张工作流拆到两张卡上批量场景的通用做法是多实例协作每个实例用CUDA_VISIBLE_DEVICES绑定一块独立显卡再换端口启动。# 实例一占用 GPU 0 CUDA_VISIBLE_DEVICES0 python main.py --port 8188# 实例二占用 GPU 1 CUDA_VISIBLE_DEVICES1 python main.py --port 8189两个实例各自独立出图再通过/prompt接口分发任务即可。这条路径适合离线批量不适合交互式创作也不解决单任务双卡加速的需求。低显存救急跑大模型时显存告急可以叠加以下参数逐步降级--lowvram文本编码器移出 GPU--novram连 UNET 也基本放在 CPU 上速度会明显下降--fast-disk用 SSD 承接动态卸载缓解 RAM 与显存双重压力。风险提醒--novram本质是以速度换显存生成耗时会成倍增加建议只作为临时手段而不是长期配置。排障速查表遇到异常时先查表定位再动参数现象大概率原因调整哪个参数OOM 报错显存不足档位高于显卡容量或系统占用过多--lowvram、--reserve-vram生成速度偏慢注意力路径与精度未优化--fp16-unet、--use-pytorch-cross-attention双卡只有一张在忙多实例未正确绑定 GPU检查CUDA_VISIBLE_DEVICES与端口切换模型时卡顿默认档位下模型频繁换入换出显存充足时改用--highvram文本编码器加载阶段报错编码器占满显存叠加--lowvram怎么确认优化生效优化是否生效看三个量化指标即可生成耗时同一工作流、同一采样步数下的耗时峰值显存任务执行期间的显存占用峰值GPU 利用率各卡的实际负载分布。以下为一台 8GB 显卡的对比示例示例数据非实测指标优化前优化后生成耗时45 秒18 秒峰值显存7.6 GB偶发 OOM6.4 GB稳定运行显存状态LOW_VRAM 频繁卸载NORMAL_VRAM 常态保持优化后配置为默认 Dynamic VRAM 加--fp16-unet耗时下降主要来自精度减半与注意力路径优化显存余量则来自默认档位对卸载时机的判断。写在最后ComfyUI 的显存管理默认已经相当聪明绝大多数情况下不加参数就是最优解真正需要调的只有两件事按容量选档位以及该上精度优化时上精度优化。多卡场景记住一卡一实例就够了。后续可跟进每个版本的发布说明中关注显存管理与多 GPU 相关的性能改动尤其是 Dynamic VRAM 与--async-offload的默认行为变化。【免费下载链接】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),仅供参考
返回列表