ComfyUI 报 CUDA out of memory 时,优先通过启动参数开启低显存模式或降低生成分辨率,适用场景为显存低于 8GB 或工作流节点过多的情况,风险边界是生成速度会显著降低且部分高精度模型可能兼容性不佳。
先说结论:显存不足主要通过减少单次计算量和优化显存调度来解决,无法物理增加显存容量。
- 先定位:确认显存占用峰值是模型加载阶段还是生成采样阶段。
- 先做:添加`--lowvram` 启动参数或启用 Tiled VAE 节点。
- 再验证:观察生成过程是否中断及显存监控曲线是否平稳。
命令速用版
在 ComfyUI 启动脚本或快捷方式目标末尾添加以下参数,根据显存大小选择其一:
python main.py `--lowvram`(显存小于 6GB 推荐)
python main.py `--highvram`(显存大于 12GB 推荐)
python main.py `--force-fp16`(强制半精度计算,节省显存)
为什么会这样
CUDA out of memory 本质是显存需求量超过了显卡物理上限。ComfyUI 运行时需要同时存放模型权重、VAE 解码缓存、中间激活值和输出图像,当工作流节点过多或分辨率过高时,中间张量累积会瞬间撑爆显存。
分步处理
第一步:检查当前显存占用。打开任务管理器性能面板或使用命令nvidia-smi,记录 ComfyUI 进程崩溃前的显存使用量。
第二步:修改启动参数。找到启动 ComfyUI 的.bat 文件或命令行,在python main.py后加入`--lowvram`,保存后重启服务。
第三步:优化工作流节点。在 VAE Decode 节点前插入 Tiled VAE 节点,将 tile_size 设置为 512 或更低,避免一次性解码整张大图。
第四步:关闭占用显存的其他程序。确保浏览器硬件加速、其他 AI 工具或游戏已完全退出,释放被抢占的显存资源。
怎么验证是否生效
生成一张相同参数的测试图,观察控制台日志是否不再出现 CUDA error: out of memory 报错。同时监控显存占用,若峰值明显低于物理显存上限且生成完成,即表示优化生效。
常见坑
开启`--lowvram`后生成速度会大幅下降,这是正常现象,因为系统需要频繁在内存和显存间交换数据。部分老旧模型在`--force-fp16`模式下可能出现黑色伪影,若遇到画质异常需改回默认精度。
常见问题
开启低显存模式会影响图片质量吗
通常不会影响最终像素结果,但可能因精度计算差异导致极细微的噪声分布不同。
为什么加了参数还是爆显存
可能是分辨率设置过高或同时加载了多个大模型,建议降低生成分辨率至 512x512 测试。
系统内存不足会报 CUDA 错误吗
不会,系统内存不足通常导致程序直接崩溃或卡死,CUDA 错误专指显卡显存不足。
参考来源
ComfyUI Official GitHub Repository, README.md, Command line arguments section.