ComfyUI显存如何设置

AI技术
小华
2026-07-27

ComfyUI 的显存设置主要通过命令行参数内部设置来进行优化。由于 ComfyUI 是基于节点且非常高效的,通常不需要像 A1111 那样复杂的显存配置,但如果你遇到显存不足(OOM)或想提升速度,可以参考以下设置方案。
以下是针对不同显存大小(尤其是 NVIDIA 显卡)的设置指南:

1. 启动参数设置(最有效的方法)

这是控制 ComfyUI 显存行为最核心的地方。你需要修改启动 ComfyUI 的脚本(通常是 run_nvidia_gpu.bat 或你在命令行中输入的命令)。
打开你的启动脚本(如 run_nvidia_gpu.bat),在 python main.py 后面添加以下参数:

常用参数组合

参数适用场景说明
--lowvram显存 < 6GB (如 3060 12G 以下)强制使用低显存模式,牺牲一点速度换取不报错。
--medvram显存 6GB - 8GB中等显存模式,比 lowvram 快,比默认模式省显存。
--highvram显存 > 16GB (如 4090, 3090)强制将所有模型加载到显存中,速度最快,不推荐小显存使用。
--normalvram显存 8GB - 12GB默认模式,通常不需要手动指定。
--no-half老显卡 (如 GTX 10系列)禁用半精度(FP16),如果老显卡报错(NaN)就加上这个。
--precision full老显卡使用全精度,配合 --no-half 使用,防止黑图或报错。

示例配置

  • 如果你有 8GB 显存 (如 RTX 3070/4060 Ti):
python main.py --medvram
  • 如果你有 6GB 显存 (如 RTX 3060 6G/2060):
python main.py --lowvram
  • 如果你有 24GB 显存 (如 RTX 4090):
python main.py --highvram

2. 显存优化技巧(节点设置)

即使设置了启动参数,在工作流中仍需注意以下几点来节省显存:

A. 模型加载 (Load Checkpoint)

  • 避免使用过大的模型: SDXL 模型通常比 SD1.5 大,占用显存更多。
  • VAE 加载: 尽量使用 taesd 模型(Tiny Autoencoder)进行预览,或者确保 VAE 没有重复加载。

B. 图像分辨率

  • 限制初始分辨率: 显存占用与像素数量成正比。
  • 8GB 显存建议初始分辨率不超过 768x768 (SD1.5) 或 1024x1024 (SDXL)。
  • 6GB 显存建议初始分辨率不超过 512x512 (SD1.5) 或 768x768 (SDXL)。
  • 使用分块处理 (Tiled VAE/Diffusion):
  • Tiled VAE:VAE Decode 节点中,如果不想降低分辨率,可以寻找支持分块解码的节点,或者安装 ComfyUI_TiledDiffusion 插件。这能让你用低显存生成高分辨率图。

C. 控制网 (ControlNet)

  • ControlNet 非常吃显存。如果显存不够,尝试:
  • 降低 ControlNet 的强度。
  • 使用 ControlNetApplyAdvanced 控制应用范围。
  • 使用低显存版本的 ControlNet 模型(如 control_v11p_sd15... 而非 control_v11f1p_sd15...)。

D. 清理显存

  • FreeU 节点: 有些节点(如 FreeU)会增加显存占用,如果报错请尝试关闭。
  • 卸载模型: 如果你在切换模型时卡顿,可以在工作流中添加一个 UnetLoader 或手动重启 ComfyUI(ComfyUI 重启很快,这是它的优势)。

3. 系统环境变量 (针对 Windows)

如果你使用的是 Windows 且显存非常紧张(例如 4GB 显存),可以尝试设置系统环境变量,强制 PyTorch 使用更激进的显存分配策略。

  1. 打开“系统属性” -> “高级” -> “环境变量”。
  2. 新建一个系统变量
  • 变量名: PYTORCH_CUDA_ALLOC_CONF
  • 变量值: max_split_size_mb:128
  • 注:这个值可以根据情况调整,目的是减少显存碎片。

4. 常见问题排查

  • 报错 CUDA out of memory (OOM):
  • 首先添加 --lowvram 参数。
  • 降低生成图片的分辨率。
  • 检查是否加载了多个 Checkpoint 或 CLIP 模型未释放。
  • 生成速度很慢:
  • 如果你显存很大(>12GB),却用了 --lowvram,请去掉该参数。
  • 检查是否开启了 xformers(ComfyUI 默认自带优化,通常不需要额外设置)。
  • 黑图/噪点图:
  • 尝试添加启动参数 --no-half--precision full

总结建议

  1. 12GB 及以上 (如 RTX 3060 12G, 3080, 4070 Ti): 直接启动,无需特殊参数,或者加 --medvram 以防万一。
  2. 8GB (如 RTX 3070, 4060): 使用 --medvram
  3. 6GB (如 RTX 3060 6G): 使用 --lowvram,并控制分辨率。
  4. 4GB 及以下: 使用 --lowvram,且只能跑 SD1.5 模型,分辨率限制在 512 左右。

修改 run_nvidia_gpu.bat 示例:

@echo off
.\python_embeded\python.exe -s ComfyUI\main.py --medvram
pause
亿速云提供售前/售后服务

售前业务咨询

售后技术保障

400-100-2938

7*24小时售后电话

官方微信小程序