ComfyUI 显存溢出(CUDA out of memory)是很常见的问题,本质原因通常是显存被占满且无法及时释放。下面从原因到解决思路系统说明。
一、常见根本原因
1. 模型本身太大
- 大模型(如 SDXL、Flux、SD3、视频模型)本身就需要很多显存
- 同时加载多个模型(checkpoint + LoRA + VAE + ControlNet)会叠加占用
2. 分辨率 / 批大小过高
- 高分辨率出图(如 1024×1024 以上)
batch_size 或 batch_count 设置太大- 视频 / 动画类任务尤其容易爆
3. 节点使用不当(ComfyUI 特有)
- 同时连接多个 KSampler / 采样器
- 中间图像未及时释放(预览节点太多)
- 使用了高显存占用的节点(如某些高清放大、面部修复)
4. 显存未释放
- 切换模型但旧模型没卸载
- ComfyUI 有时不会主动清理 CUDA 缓存
- 后台仍有其他程序占用 GPU(如浏览器、游戏、训练任务)
5. 硬件 / 驱动问题
- 显存本身较小(如 6G / 8G)
- 驱动异常或 CUDA 版本不匹配
- 共享显存(核显 + 独显)配置错误
二、快速自查方法
看显存占用
nvidia-smi
- 如果空闲时也占很高 → 有残留进程
- 如果出图瞬间爆 → 分辨率或模型问题
ComfyUI 日志
常见提示:
CUDA out of memory. Tried to allocate ...
后面通常会显示已用 / 总显存
三、实用解决方案(按效果排序)
✅ 1. 降低显存占用(最有效)
- 降低出图分辨率
- 减小
batch_size - 使用
--lowvram 或 --medvram 启动参数
python main.py --lowvram
✅ 2. 模型优化
- 使用 FP16 / BF16 模型
- 避免同时加载多个大模型
- 用
Unet Loader 替代完整 checkpoint(如支持)
✅ 3. ComfyUI 设置
- 开启:
Enable VRAM managementDiscard rendering previews- 减少预览节点
- 出图后手动点
Free VRAM
✅ 4. 清理环境
- 关闭其他占 GPU 的程序
- 重启 ComfyUI
- 更新显卡驱动
✅ 5. 硬件层面
- 8G 以下显存:尽量只用 SD1.5
- 12G+:可跑 SDXL
- 24G+:较适合 Flux / 视频模型
四、典型场景对照
| 场景 | 原因 | 解决 |
|---|
| 一打开就爆 | 模型太大 | 用 lowvram |
| 出图到一半爆 | 分辨率高 | 降低尺寸 |
| 换模型后爆 | 旧模型没释放 | Free VRAM |
| 视频任务爆 | 帧数多 | 减少帧 / 降分辨率 |
如果你愿意,可以告诉我:
- 显卡型号 + 显存
- 用的什么模型(SD1.5 / SDXL / Flux)
- 报错完整日志
我可以直接帮你给出最适合你机器的 ComfyUI 启动参数和节点配置。