ComfyUI 的显存优化核心在于调整启动参数、精简工作流以及合理设置模型加载选项。对于大多数用户,最有效的方案是在启动命令中添加 --lowvram 参数,并启用模型卸载功能。
以下是具体的优化方案:
通过修改 run_nvidia_gpu.bat 或启动脚本,添加以下参数来限制显存使用:
| 参数 | 适用场景 | 说明 |
|---|---|---|
--lowvram | 显存 < 8GB | 首选方案。强制模型在生成过程中频繁在 RAM 和 VRAM 之间交换数据,虽然速度稍慢,但能大幅降低峰值显存占用。 |
--medvram | 显存 8GB - 12GB | 折中方案。比 --lowvram 交换频率低,速度更快,但显存占用稍高。 |
--highvram | 显存 > 24GB | 强制将整个模型加载到显存中,速度最快,不需要此参数则无需添加。 |
--disable-smart-memory | 显存较小 | 禁用智能显存管理,强制在每次采样后释放显存(可能会稍微变慢)。 |
--preview-method auto | 通用 | 使用自动预览方式,减少预览图对显存的占用。 |
操作示例:
右键编辑你的启动脚本(如 run_nvidia_gpu.bat),在 python 命令后添加参数:
python main.py --lowvram --preview-method auto在 ComfyUI 界面内,通过优化节点连接来节省显存:
FreeU 或手动添加 VAEDecode 后接一个空节点,或者使用 Model Unload 节点来强制释放。sdxl_base_fp8.safetensors)。相比 fp16,显存占用几乎减半,画质损失极小。Load Checkpoint 或 Load LoRA 节点中,确保没有重复加载模型。如果使用了多个 LoRA,注意叠加过多 LoRA 会显著增加显存压力。CUDA out of memory,尝试在 Python 代码中(或重启时)确保 torch.cuda.empty_cache() 被执行,ComfyUI 通常自带此功能,但重启是最彻底的清理方式。总结建议:
如果你使用的是 6GB 或 8GB 显卡(如 RTX 3060 8G),请务必使用 --lowvram 参数,并将图片分辨率控制在 512x768 左右。如果是 12GB 显卡(如 RTX 3060 12G),通常默认设置即可流畅运行 SDXL。