Memory Leak discovered with Load Checkpoint when model is too large for GPU

这个报错通常出现在模型文件大于显存容量、ComfyUI 将模型加载到内存映射(Mapped/Standby)缓存时,并在关闭应用后未主动释放,导致可用 RAM 持续被占满。优先排查系统 Windows 本身的内存管理状态,再考虑升级 ComfyUI 版本。

快速结论:这个报错通常出现在模型文件大于显存容量、ComfyUI 将模型加载到内存映射(Mapped/Standby)缓存时,并在关闭应用后未主动释放,导致可用 RAM 持续被占满。优先排查系统 Windows 本身的内存管理状态,再考虑升级 ComfyUI 版本。

适用环境:Windows 操作系统、ComfyUI 0.26.1(用户升级至 0.30.2 后问题依旧)、1x32GB DDR5 RAM、RTX 4070 Super 显卡、waillustriousSDXL_v170 模型。

最快修复方案:暂无确认的一步修复方案。该 Issue 最终结论是用户 Windows 系统安装已损坏,重装系统后问题解决。若你的系统正常,可优先尝试升级 ComfyUI 至最新版本,因为官方已将缓存分配模型改为硬分配(hard allocate)。

注意事项:Windows 系统会将文件保留在“映射 + 备用(Mapped + Standby)”状态,这属于系统层面的缓存策略,ComfyUI 无法通过 API 在多次调用间主动释放。RAMMap 中显示的“缓存”不完全是内存泄漏,很大程度是 Windows 文件映射缓存。

问题场景

用户在 ComfyUI 中加载一个无法完全放入显存的大模型(waillustriousSDXL_v170,VRAM 为 RTX 4070 Super 的 12GB),模型数据被装载到 RAM 缓存中。当应用关闭后,这部分缓存没有被自动清除。在多次启动/关闭 ComfyUI 后,可用 RAM 被全部占用,系统出现性能瓶颈,甚至出现视觉错误,只有重启电脑才能恢复。

报错原文

Memory Leak discovered with Load Checkpoint when model is too large for GPU

RAM should be naturally cleared when closing, and also assigned to the application properly.
All available RAM is taken by Cache.

原因分析

可能原因:当模型大于显存时,ComfyUI 将部分数据加载到系统 RAM 的文件映射区域。Windows 会将这些映射文件保留在“Mapped + Standby”状态,操作系统自行决定何时释放这些缓存压力。ComfyUI 0.23 至 0.29 版本刻意避免将映射提升到活动(active)集合,而是采用更直接的从文件加载策略,这导致文件停留在映射和备用状态,看起来像是“内存泄漏”。

此外,Issue 最终确认为用户 Windows 系统安装本身严重损坏,导致内存管理异常。重装系统后问题消失。

环境排查

  • 确认 ComfyUI 版本是否为最新(Issue 中测试过 0.26.1 和 0.30.2)。
  • 确认显卡型号及显存大小(用户为 RTX 4070 Super 12GB)。
  • 确认系统总内存及当前可用内存(用户为 1x32GB DDR5)。
  • 使用 RAMMap 检查内存分类中“Mapped + Standby”是否异常高。
  • 检查 Windows 系统文件完整性(用户最终发现系统安装严重损坏,重装后解决)。

解决步骤

  1. 首先将 ComfyUI 升级到最新版本。官方已从缓存搭车(ride cache)改为硬分配(hard allocate)内存模型,这可能减少文件映射缓存残留。可优先尝试此方案。
  2. 安装 ComfyUI-MemoryVisualizer 插件,观察 ComfyUI 实际的内存管理行为,确认是否是 ComfyUI 主动占用的内存。
  3. 打开 Windows 自带的内存诊断工具,或使用命令行 sfc /scannow 检查系统文件完整性。若发现系统本身异常,考虑修复或重装 Windows。
  4. 尝试重启电脑后,打开 RAMMap 观察“Mapped + Standby”状态是否在 ComfyUI 启动前就异常偏高;若是,则问题不在 ComfyUI。
  5. 若确认是 Windows 文件映射缓存占用,可等待操作系统自动释放,或使用 RAMMap 的“Empty Standby List”手动释放缓存,但这不是长期解决方案。

验证方法

重启电脑,记录 RAMMap 中的内存状态。启动 ComfyUI 加载大模型后关闭,再次查看“Mapped + Standby”和可用 RAM 的变化。如果可用 RAM 没有持续下降到影响系统性能的水平,或 RAMMap 中缓存能被 Windows 正常回收,则问题已解决。

参考来源

Comfy-Org/ComfyUI #15431

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 19751

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注