反复出图后内存/显存不释放,越跑越慢最后崩溃,只能重启 / 全站资源搜索
搜索 更新 2026-10-02
报错 021 显存与内存不足(OOM) 有来源可查

反复出图后内存/显存不释放,越跑越慢最后崩溃,只能重启

报错原文(原样)
The process is killed.
(issue reporter: 'The memory doesn't get dispose.'; another user: 'It's happening to me when I'm not even loading models - this happens on a basic load image -> resize -> save image workflow. Memory gets allocated, then only partially released, then it fills the whole 128GB to full and starts swapping, then eventually crashing. Only a restart fixes it.')
(注:以上为转述文本,非逐字原文。)
检索关键词 Memory is not release after each generation、The process is killed、memory leak、越跑越慢、只能重启、cache-none
先看这一句 单张出图正常,连续出图 10 张以后越来越慢,系统内存/显存被吃满、开始使用交换文件,最终 ComfyUI 进程被系统杀掉。重启 ComfyUI 后恢复。
适用版本 全版本通用;issue #10475 仍为 open,维护者 rattus128 请用户提供可复现工作流,说明截至该 issue 时尚未完全定位。 · 核实日期 2026-09-26 · 状态 已核实
适用环境:Windows 便携版、秋叶/绘世整合包、ComfyUI Desktop、Linux + 云 GPU、Docker/服务器

现象与触发场景

常见触发场景:

  • 长时间批量出图(尤其是视频与放大工作流)
  • 反复加载/卸载多个不同模型
  • Wan2.2 GGUF(Q4/Q8)等量化视频模型多次运行

根因

  • ComfyUI 的节点结果缓存会保留中间张量,长队列下累积占用内存/显存。
  • issue #10475 中用户实测确认:RSS 增长而 current_loaded_models 为 0、CPU 张量仅约 59MB、GPU 约 3MB,说明占用来自 glibc 堆/匿名页的分配器保留(内存映射中 [anon] 约 18.8GB、[heap] 约 5.8GB),而非活跃张量;手动 malloc_trim(0) 后 RSS 立刻从约 25GB 降到约 3.6GB。
  • comfy 的 soft_empty_cache 只调用设备侧 empty_cache 系列,不裁剪 CPU 侧分配,所以这种“泄漏”不会自动回收。

解决步骤

已按「最可能有效」排序。请从上往下做,每做完一步用「验证」确认,不要一次改五处。

  1. 关闭/限制缓存,减少中间结果驻留
    --cache-none 每次运行都重新执行所有节点,官方 help 说明为“Reduced RAM/VRAM usage at the expense of executing every node for each run.”;--cache-lru N 改为限制只缓存 N 个节点结果,是折中方案。issue #10475 的提问者也尝试过 --cache-none。
    python main.py --cache-none
    python main.py --cache-lru 10
    python main.py --cache-classic
  2. 用自动清理节点或插件在每个 prompt 结束后卸载模型并清缓存
    社区插件 ComfyUI-Force-Cleanup 的定位就是“Force ComfyUI to unload models and clear execution/device caches after each prompt”,适合长队列批量出图;PipelineBarrier 类插件则在流水线阶段之间强制冲刷 GPU 缓存以避免 OOM。
    # 安装 ComfyUI-Force-Cleanup 后,在队列末尾启用其 Force Cleanup 节点
    git clone https://github.com/3289004205/ComfyUI-Force-Cleanup custom_nodes/ComfyUI-Force-Cleanup
  3. 把长任务拆批,每批之间重启进程(最可靠的兜底)
    如果目标是几百张图或几十段视频,按每 20-50 个任务重启一次 ComfyUI 进程,比等待内存回收更可靠。可写批处理脚本循环启动 main.py 并跑队列 API。
    # Windows 示例:任务结束后重启
    taskkill /F /IM python.exe
    python main.py --cache-none --disable-smart-memory

验证是否修好

连续跑 20 次以上,任务管理器/htop 中 ComfyUI 进程内存不再单调上升,单次耗时保持稳定;不再出现进程被系统杀掉。

补充说明

malloc_trim 属于 Linux/glibc 环境下的诊断手段,Windows 不适用;issue #11775 另报告了 RTX 5070 + Wan2.2 GGUF 多次运行后需要整机重启的系统内存泄漏,与本条现象同类但根因未定论。

来源

按可信度排列:官方 issue / 官方文档 > 节点仓库 issue > 社区帖 > 中文社区文章。 链接以纯文本给出(本站不做站外跳转),需要核对时请自行复制到浏览器打开。
  1. [60] (官方 issue) Memory is not release after each generation · Issue #10475 https://github.com/Comfy-Org/ComfyUI/issues/10475
  2. [61] (官方 issue) Cumulative system RAM leak requiring full PC restart with Wan2.2 GGUF  https://github.com/Comfy-Org/ComfyUI/issues/11775
  3. [62] (节点仓库 issue) ComfyUI-Force-Cleanup: Force ComfyUI to unload models and clear execut https://github.com/3289004205/ComfyUI-Force-Cleanup
  4. [63] (节点仓库 issue) ComfyUI-PipelineBarrier: Force-flush GPU caches between ComfyUI pipeli https://github.com/brosequist/ComfyUI-PipelineBarrier

这条报错要用到的东西

按本条报错所属的类别(显存与内存不足(OOM))列出站内相关的下载包与板块入口。 它们不是「必须下载才能修好」,而是这一类问题里最常要动到的东西;具体怎么做,以上面的解决步骤为准。

ComfyUI 权重库(167 个文件 / 约 1187 GB)按 ComfyUI 的 models 目录分好类的 167 个权重文件 / 每个文件一份说明(放哪、被哪些工作流引用) 待挂载
权重库同一个模型常有更小的量化版本,换一个能省一大截显存 板块 工作流换一条依赖更轻的工作流 板块

同一类别的其他条目

这个解法对你有效吗 记录只存在你自己的浏览器里,不需要注册账号。

返回报错库