ComfyUI Extension
ComfyUI Force Cleanup
Schedule native ComfyUI model and execution-cache cleanup after a prompt.
3289004205/ComfyUI-Force-Cleanup
Nodes—
On cloudLocal install
Stars1
Updated20 days ago
Readme
ComfyUI Force Cleanup
一个无第三方依赖的 ComfyUI 内存清理节点。它不会在工作流尚未结束时贸然清理,而是通知 ComfyUI 在当前 prompt 完成后调用其原生清理流程。
安装
- 解压后得到
ComfyUI-Force-Cleanup文件夹。 - 把整个文件夹放到:
- Windows 便携版:
ComfyUI_windows_portable\ComfyUI\custom_nodes\ - 手动安装版:
ComfyUI\custom_nodes\
- Windows 便携版:
- 完全重启 ComfyUI。
- 在节点菜单中搜索
Force Cleanup After Prompt,分类为utils/memory。
无需运行 pip install。
使用
把节点放进工作流即可,不需要连线。它是 Output Node,因此每次排队都会执行;清理动作会等整条工作流结束后再发生。
full: models + execution cache + allocator- 卸载 ComfyUI 已加载模型。
- 清空当前执行器的工作流/节点输出缓存。
- 运行 Python 垃圾回收。
- 清理 CUDA、XPU、MPS 等设备的 PyTorch allocator 缓存。
- 释放最彻底;下一次运行需要重新加载模型和重新计算。
models: unload models + allocator- 卸载模型并清 allocator。
- 保留可复用的执行缓存,速度较好,但主内存下降可能不如完整模式明显。
推荐先使用 full。
为什么普通 empty_cache() 经常没效果
torch.cuda.empty_cache() 只能把 PyTorch allocator 中“已经没有对象引用”的保留块交还给驱动。只要 ComfyUI 的模型列表、节点输出缓存或第三方节点仍持有 Tensor/模型,显存就不会真正释放。本插件的完整模式还会让 ComfyUI 重置 executor cache,因此比单独调用 empty_cache() 更完整。
Windows 任务管理器显示的 GPU 数字可能包含驱动上下文、共享 GPU 内存和不可回收的 CUDA context;进程存活时一般不会归零。判断是否清理成功,应比较清理前后稳定值,而不是要求显示为 0。
仍然过高时
- 更新 ComfyUI 和所有自定义节点。
- 暂时禁用其他
custom_nodes,逐个恢复,以定位持有全局模型/Tensor 引用的扩展。 - 启动参数尝试
--lowvram;显存特别小时尝试--novram,代价是速度下降。 - 如果主要涨的是系统 RAM,检查超大图片/视频节点、预览帧、批量大小以及第三方节点自己的缓存目录或内存缓存。
- 只有关闭 ComfyUI 进程才能释放 CUDA context 及进程仍持有的全部内存;插件无法安全地让一个仍运行的 Python 进程“绝对归零”。
兼容性
节点使用 ComfyUI 的公开运行时队列行为,不直接操作内部缓存容器。已按 2026-07-29 的 ComfyUI master 接口检查。