ComfyUI CUDA 显存不足修复:torch.cuda.OutOfMemoryError
通过降低分辨率、批次大小、帧数、已加载的模型附加项和 VAE 解码内存来修复 ComfyUI CUDA 显存不足问题。
社区知识
本页面基于常见的 ComfyUI 故障排查模式,尚未在所有环境中进行完整测试。更改软件包之前,请先备份你的环境。
如果你搜索的是 ComfyUI CUDA out of memory、torch.cuda.OutOfMemoryError: CUDA out of memory 或 ComfyUI out of memory fix,说明你的 GPU 没有足够的显存来完成当前操作。
这通常不是安装损坏的问题。它意味着生成设置、模型大小、已加载的附加项或分辨率超出了 GPU 一次能够容纳在内存中的范围。好消息是,大多数 OOM 错误无需购买新 GPU 即可修复。
我们最常见的 OOM 情况
在实际支持和启动器遥测数据中,CUDA OOM 通常以以下几种模式出现:
| 模式 | 通常意味着 | 最佳初步措施 |
|---|---|---|
KSampler 期间 OOM | 当前模型/工作流对于当前显存而言过大 | 降低分辨率和批次大小 |
| VAE 解码期间 OOM | 采样通过,但最终图像解码未通过 | 切换到分块 VAE 解码 |
| 添加 ControlNet、IP-Adapter 或 LoRA 堆叠后 OOM | 同时加载了过多模型 | 移除一个额外的条件堆叠并重新测试 |
| FLUX 或视频工作流上的 OOM | 模型系列超出显卡的实际显存限制 | 使用量化模型或更小的工作流 |
| 即使在适中的设置下也出现 OOM | 其他应用程序正在占用显存,或内存已碎片化 | 关闭占用 GPU 的应用并重新启动 |
快速解答
按顺序尝试以下步骤:
- 降低图像分辨率(例如,从 1024x1024 降至 768x768)
- 将批次大小和视频帧数设置为最小可用值
- 移除额外的 ControlNet、IP-Adapter、LoRA 或放大器分支,然后重试
- 如果采样完成但最终解码失败,请启用分块 VAE 解码
- 仅在缩减工作流本身之后,再使用
--lowvram
错误的样子
torch.cuda.OutOfMemoryError: CUDA out of memory. Tried to allocate 2.00 GiB.
GPU 0 has a total capacity of 8.00 GiB of which 512.00 MiB is free.
Including non-PyTorch memory, this process has 7.48 GiB memory in use.你也可能会看到以下变体:
RuntimeError: CUDA error: out of memoryError occurred when executing KSampler:
CUDA out of memory.该错误通常发生在采样、VAE 解码或模型加载期间。
为什么会发生这种情况
- 分辨率过高:更大的图像会以指数级增加显存占用。2048x2048 的图像大约使用 1024x1024 图像四倍的显存
- 模型对于你的 GPU 而言过大:SDXL 模型比 SD 1.5 模型需要更多显存,FLUX 模型需要更多
- 加载了多个模型:同时加载检查点、ControlNet、IP-Adapter 和 LoRA 会累积占用显存
- 批次大小过高:一次生成多张图像会成倍增加显存使用量
- 以全分辨率进行 VAE 解码:即使采样成功,VAE 解码步骤也可能导致显存峰值
- 其他程序占用 GPU 内存:Chrome、Discord 或其他 GPU 加速应用程序会消耗显存
在更改任何内容之前
确认错误确实是 CUDA OOM,而不是其他运行时问题:
CUDA out of memory通常意味着工作流对于当前显存而言过大Torch not compiled with CUDA enabled是另一个问题CUDA is not available是运行时/配置问题- Python 的
MemoryError通常指向系统 RAM,而不是 GPU 显存
如果重启后错误措辞发生了变化,请始终跟踪最新的第一个错误。
首先判断内存池类型
不同的内存错误需要不同的修复方法。如果从错误的内存池出发,可能会浪费时间或使环境更加混乱。
| 错误措辞 | 内存池 | 第一个安全操作 |
|---|---|---|
torch.cuda.OutOfMemoryError 或 CUDA out of memory | GPU 显存 | 降低分辨率、批次大小、帧数或已加载的附加项 |
MemoryError | 系统 RAM | 关闭占用大量 RAM 的应用,拆分工作流,或在 Windows 大量使用页面文件时增加页面文件 |
DefaultCPUAllocator: not enough memory | 系统 RAM / CPU 张量分配 | 减少大型图像/视频张量或将工作流拆分为多个阶段 |
| 页面文件或提交限制错误 | Windows 虚拟内存 / 系统提交 | 在更改 ComfyUI 软件包之前,增加页面文件并减少并发应用程序 |
Torch not compiled with CUDA enabled | PyTorch 运行时,非内存问题 | 首先修复 CUDA PyTorch 安装路径 |
不要仅仅因为日志中出现了"memory"一词就重新安装 PyTorch。重新安装软件包仅在最新错误表明 CUDA 不可用、Torch 仅使用 CPU 或依赖项导入失败时才有意义。
各模型类型的显存需求
| 模型 | 最低显存 | 舒适显存 | 备注 |
|---|---|---|---|
| SD 1.5 | 4 GB | 6 GB | 兼容性最好 |
| SDXL | 6 GB | 8 GB | 默认 1024x1024 |
| FLUX.1 | 8 GB(量化) | 12 GB | 8GB 显卡推荐使用 fp8 |
| 视频模型 | 12 GB | 24 GB | 差异较大 |
分步修复方法
1. 降低分辨率和批次大小
最快的修复方法。降低图像尺寸:
- SD 1.5:尝试 512x512 或 512x768
- SDXL:尝试 768x768 或 832x1216
- FLUX:先尝试 768x768
如果批次大小高于 1,请将其设置为 1。
2. 使用 ComfyUI 内存管理标志
使用节省内存的参数启动 ComfyUI:
.\python_embeded\python.exe -s ComfyUI\main.py --windows-standalone-build --lowvram可用标志:
| 标志 | 效果 | 节省的显存 |
|---|---|---|
--lowvram | 在生成过程中将模型部分移至 CPU | 显著 |
--novram | 将几乎所有内容保留在 CPU 上,仅在需要时移至 GPU | 最大,但速度慢得多 |
--cpu | 完全在 CPU 上运行 | 释放所有 GPU 显存,非常慢 |
--disable-smart-memory | 禁用自动内存管理 | 如果自动管理导致问题时尝试 |
2.5 在更改核心运行时之前,减少已加载的附加项
如果你使用的是大型工作流,请每次移除一类额外模型并重试:
- 额外的 ControlNet 分支
- 多个 LoRA
- IP-Adapter 堆叠
- 在同一次运行中加载的放大器
- 大型视频或高帧数工作流
这通常能更快地告诉你限制是来自基础模型还是来自堆叠的条件。
3. 使用量化或 fp16 模型
完整的 fp32 模型使用的显存是 fp16 模型的两倍,fp8 模型使用的显存更少:
- 在可用时下载 fp16 检查点
- 对于 FLUX,在 8 GB GPU 上使用 fp8 量化检查点
- 一些检查点网站将这些标记为"fp16-fix"或"pruned"
4. 启用分块 VAE 解码
如果 OOM 发生在 VAE 解码期间(最后一步),请添加 VAE Decode (Tiled) 节点代替常规 VAE Decode 节点。分块解码以较小的块处理图像。
5. 关闭其他 GPU 应用程序
检查还有什么在占用显存:
nvidia-smi在生成之前,关闭浏览器、游戏、视频编辑器或其他占用 GPU 内存的应用程序。
6. 对整个管道使用 --force-fp16
.\python_embeded\python.exe -s ComfyUI\main.py --windows-standalone-build --force-fp16这会强制所有操作使用 fp16 精度,以轻微质量差异为代价,将显存使用量大致减半。
不应该做的事
- 不要通过增加 Windows 虚拟内存(页面文件)来尝试修复 GPU OOM——显存和系统 RAM 是独立的
- 仅当错误是系统 RAM、提交限制、
MemoryError或DefaultCPUAllocator时才增加页面文件,而不是在回溯明确指向 CUDA 显存时 - 不要重新安装 ComfyUI——这是资源限制问题,而不是安装损坏
- 不要安装随机的 CUDA 工具包——PyTorch wheel 已包含所需内容
- 不要忽略错误消息中的具体数字——它们会告诉你确切拥有多少显存以及请求了多少
OOM 是硬件限制,而非 bug 的情况
有时环境是正常的,只是工作流超出了显卡的能力:
- 6 GB 显卡通常需要更保守的 SDXL 设置
- 8 GB 显卡通常需要量化的 FLUX 或更小的分辨率
- 视频管道很快就能超过 12 GB
在这些情况下,解决方法是调整工作流大小、量化、分块或使用不同的模型系列——而不是重新安装 ComfyUI。
Wonderful Launcher 如何提供帮助
Wonderful Launcher 可以检测你的 GPU 显存容量,帮助识别并建议内存优化设置。它还帮助管理模型格式,并为你的硬件建议兼容的设置。
下载 Wonderful Launcher——免费,可针对你的特定 GPU 优化 ComfyUI 设置。
相关错误
- ComfyUI GPU 兼容性
- ComfyUI 中的 Python 内存不足
- ComfyUI 系统要求
- Torch Not Compiled With CUDA Enabled
- ComfyUI 常见问题
来源参考
先按上面的步驟定位根因。还卡住时,可以下载 Wonderful Launcher 检查目前机器;启动器原生修复、任务日誌和執行階段检查会集中在一起。credits 只用於图片生成和按量工具。
下载 Wonderful Launcher查看 credits 方案这篇文件解決了你的問题嗎?
你的回饋会帮助我们優先補強真實 ComfyUI 排障文件。