ComfyUI 的显存设置主要通过命令行参数和内部设置来进行优化。由于 ComfyUI 是基于节点且非常高效的,通常不需要像 A1111 那样复杂的显存配置,但如果你遇到显存不足(OOM)或想提升速度,可以参考以下设置方案。
以下是针对不同显存大小(尤其是 NVIDIA 显卡)的设置指南:
这是控制 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 使用,防止黑图或报错。 |
python main.py --medvrampython main.py --lowvrampython main.py --highvram即使设置了启动参数,在工作流中仍需注意以下几点来节省显存:
taesd 模型(Tiny Autoencoder)进行预览,或者确保 VAE 没有重复加载。VAE Decode 节点中,如果不想降低分辨率,可以寻找支持分块解码的节点,或者安装 ComfyUI_TiledDiffusion 插件。这能让你用低显存生成高分辨率图。ControlNetApplyAdvanced 控制应用范围。control_v11p_sd15... 而非 control_v11f1p_sd15...)。UnetLoader 或手动重启 ComfyUI(ComfyUI 重启很快,这是它的优势)。如果你使用的是 Windows 且显存非常紧张(例如 4GB 显存),可以尝试设置系统环境变量,强制 PyTorch 使用更激进的显存分配策略。
PYTORCH_CUDA_ALLOC_CONFmax_split_size_mb:128CUDA out of memory (OOM):--lowvram 参数。--lowvram,请去掉该参数。xformers(ComfyUI 默认自带优化,通常不需要额外设置)。--no-half 和 --precision full。--medvram 以防万一。--medvram。--lowvram,并控制分辨率。--lowvram,且只能跑 SD1.5 模型,分辨率限制在 512 左右。修改 run_nvidia_gpu.bat 示例:
@echo off
.\python_embeded\python.exe -s ComfyUI\main.py --medvram
pause