报错
017
显存与内存不足(OOM)
含未核实说明
显存明明还有空余却报 OOM:分配器碎片化与 soft_empty_cache 未回收
报错原文(原样)
torch.cuda.OutOfMemoryError: Allocation on device 0 would exceed allowed memory. (out of memory) Currently allocated : 18.38 GiB Requested : 6.09 GiB Device limit : 16.00 GiB Free (according to CUDA): 0 bytes PyTorch limit (set by user-supplied memory fraction) : 17179869184.00 GiB
检索关键词
Free (according to CUDA): 0 bytes、Currently allocated、Device limit、out of memory error but I still have free memory、fragmentation、empty_cache
先看这一句
nvidia-smi 或任务管理器看着还有 1-2GB 空闲显存,ComfyUI 却报 OOM;或者只用简单工作流、什么都没改,某次更新后突然开始 OOM。
适用版本 与版本强相关:issue #1918 为历史回归(维护者称已修);issue #14789 报告 0.27 相对 0.22 出现新 OOM。升级/降级前后行为可能完全不同。
·
核实日期 2026-09-26
·
状态 可能已过期,正在复核
适用环境:Windows 便携版、秋叶/绘世整合包、ComfyUI Desktop、Linux + 云 GPU、Docker/服务器
现象与触发场景
常见触发场景:
- 同一个工作流在版本升级(如升到 0.27)后开始 OOM,回滚到旧版就正常
- 反复加载/卸载不同模型后出现 OOM
- 显存被切成大量小块,请求一个较大的连续块时找不到位置
根因
- PyTorch 的 CUDA 缓存分配器按块管理显存,长时间混合加载不同尺寸的模型后会产生碎片,虽然总空闲量够,但没有足够大的连续块满足本次请求。
- ComfyUI 的 soft_empty_cache 只做设备侧 empty_cache 与 ipc_collect,并不整理 CPU 侧分配;issue #10475 中维护者与用户确认过一部分“内存不释放”其实是分配器/堆的保留而非活跃张量。
- 某些版本存在显存回归:issue #1918 中用户回滚到旧 commit 后显存占用恢复正常,comfyanonymous 回复 “That error is fixed now”,说明这是版本级回归而非用户配置问题。
解决步骤
已按「最可能有效」排序。请从上往下做,每做完一步用「验证」确认,不要一次改五处。
- 先判断是不是版本回归:回滚到上一个能用的版本验证如果 OOM 是“某次更新后才出现”且工作流没改过,优先怀疑版本回归而不是硬件。用 git 切到旧 commit 或装回旧版便携包跑同一工作流;能跑通即确认为回归,可在 issue 中贴出两版对照,并暂时停留在能用的版本。cd ComfyUIgit log --oneline -20git checkout <上一个能用的 commit>
- 启用 CUDA 分配器的可扩展段以缓解碎片PyTorch 分配器源码/PyTorch 论坛给出的提示原文为使用 PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True 来避免碎片化导致的 OOM。该环境变量需要在启动 ComfyUI 之前设置,且必须是进程级环境变量。(该提示原文片段来自搜索结果显示的 PyTorch 分配器报错文案,本次未取回页面全文,[未核实] 未逐版本核对原文措辞。)# Windows CMD / bat:set PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True# PowerShell:$env:PYTORCH_CUDA_ALLOC_CONF="expandable_segments:True"# Linux:export PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True
- 让 ComfyUI 更积极地清缓存并释放模型--disable-smart-memory 强制把模型卸载回普通内存而不是留在显存;--cache-none 每次运行都重新执行节点而不缓存结果,显著降低 RAM/VRAM 占用(代价是变慢)。两者组合是社区对付碎片化 OOM 的常用组合。python main.py --disable-smart-memory --cache-nonepython main.py --disable-smart-memory --cache-lru 10
验证是否修好
同一工作流连续跑 5-10 次不再随机 OOM;nvidia-smi 显示 reserved 与 allocated 的差值不再持续增大。
补充说明
issue #1918 的“回滚到 4acfc11a802fad4e90103f9fd3cf73cb0c9b5ae1 后 VRAM 正常”为历史案例,该 commit 号来自用户评论原文,仅作为排查思路参考。expandable_segments 与部分后端(如 cudaMallocAsync)存在交互限制。[未核实] 具体在哪些 torch/后端组合下 expandable_segments 不生效,未逐一验证。
来源
按可信度排列:官方 issue / 官方文档 > 节点仓库 issue > 社区帖 > 中文社区文章。
链接以纯文本给出(本站不做站外跳转),需要核对时请自行复制到浏览器打开。
- [51] (官方 issue) torch.cuda.OutOfMemoryError: Allocation on device 0 would exceed allow https://github.com/Comfy-Org/ComfyUI/issues/1918
- [52] (官方 issue) out of memory error but I still have free memory · Issue #9121 https://github.com/Comfy-Org/ComfyUI/issues/9121
- [53] (官方 issue) Experiencing VRAM OOM with the same workflow after upgrading to ComfyU https://github.com/Comfy-Org/ComfyUI/issues/14789
- [6] (官方文档) How to Troubleshoot and Solve ComfyUI Issues - ComfyUI Documentation https://docs.comfy.org/troubleshooting/overview
本条的可靠性边界
下面这些位置带
[未核实] 标记,是采集时没找到一手来源的部分,请自行验证:
- 第 2 步说明 1
- 补充说明
这条报错要用到的东西
按本条报错所属的类别(显存与内存不足(OOM))列出站内相关的下载包与板块入口。 它们不是「必须下载才能修好」,而是这一类问题里最常要动到的东西;具体怎么做,以上面的解决步骤为准。
ComfyUI 权重库(167 个文件 / 约 1187 GB)按 ComfyUI 的 models 目录分好类的 167 个权重文件 / 每个文件一份说明(放哪、被哪些工作流引用)
待挂载
权重库同一个模型常有更小的量化版本,换一个能省一大截显存
板块
工作流换一条依赖更轻的工作流
板块
同一类别的其他条目
【012】最典型的爆显存:KSampler 阶段 torch.cuda.OutOfMemoryError: CUDA out of memory. Tried to allocate ...
有来源
【013】新版报错:torch.OutOfMemoryError: Allocation on device 0 would exceed allowed memory.(附带 batch_size TIPS)
有来源
【014】VAE 解码阶段爆显存:Ran out of memory when regular VAE decoding, retrying with tiled VAE decoding
有来源
【015】系统内存/页面文件不足:OSError: The paging file is too small for this operation to complete. (os error 1455)
含未核实
【016】Windows 共享显存(Shared GPU memory)被吃满,任务管理器显示显存未释放、必须重启
含未核实
这个解法对你有效吗
记录只存在你自己的浏览器里,不需要注册账号。
知仓学习社