u5_FreeVRAM - ComfyUI 内存管理节点
这是一个面向 ComfyUI 的高级内存管理与 VRAM 优化自定义节点。 市面上的释放内存节点总是无法稳定工作,所以重新做了一个。
📋 目录
概览
u5_FreeVRAM 用于优化 ComfyUI 工作流中的内存管理,帮助你在有限 VRAM 下运行复杂流程。
简单来说,可以在流程任意位置释放或重新加载 VRAM。
主要场景
- 复杂工作流:在单个工作流中依次运行多种模型(例如 线稿 → 上色)
- 批处理:阻止长时间运行时的内存泄漏
- SaaS 环境:在共享 GPU 中清理缓存
功能
这个自定义节点提供两大功能模块。
1. FREE VRAM 节点
负责 VRAM 清理。
清理动作:
- 卸载模型:将已加载模型从内存中释放
- 清空 GPU 缓存:清理 CUDA 缓存以回收 VRAM
- 清空执行缓存:清空 ComfyUI 的执行缓存
- 垃圾回收:回收未使用的 Python 对象
智能执行:
- 阈值跳过:当空闲 VRAM 已达到阈值时跳过清理
- 异步等待:自动判断安全的释放时机
2. Sequential Loaders
以顺序方式加载模型,最小化 VRAM 占用。
通常模型加载节点没有输入,会在流程开始时并行执行。 这些顺序加载器可以插入到流程中间。
可用加载器:
- Sequential Checkpoint Loader:按顺序加载检查点文件
- Sequential LoRA Loader:按顺序加载 LoRA 文件
- Sequential CLIP Loader:按顺序加载 CLIP 模型(支持 safetensors 与全部 CLIP 类型)
- Sequential VAE Loader:按顺序加载 VAE 模型(支持 safetensors 与 TAESD) ※暂不支持 GGUF(试过了真的不行)
特点:
- 仅依赖 ComfyUI 自带功能(无额外依赖)
- 通过
trigger输入控制执行顺序
安装
-
将仓库 clone 到
custom_nodes目录中即可。 git clone "https://github.com/u5dev/comfyUI_u5_VramFREE.git" -
重启 ComfyUI。
基本用法
所有节点会出现在节点菜单的 u5 分类下。
FREE VRAM 节点
把节点插入到工作流的任意位置即可清理内存。
# 作为中继节点
[任意节点] → [FREE VRAM] → [下一个节点]
参数:
- Any(输入,选填):任意类型透传输入
- 未连接也能工作:可放在流程起点
- 连接时:将输入原样传给输出
- MinFreeVRAMGB(选填):当空闲 VRAM 高于该值时跳过(默认 0.0)
※VRAM 释放是异步的,数值仅供参考。
输出:
- Bypass(Relay):透传输入(无输入时返回
None)
Sequential Loaders
Sequential Loader 节点包含 trigger 输入,会等待上一个节点完成后再执行加载。
trigger 输入接收到的数据会原样传到 Bypass(Relay) 输出。
请参考下面的工作流示例进行连接。
最佳实践
1. SaaS 环境中的缓存清理
使用场景:共享 GPU 中确保上一位用户的缓存被清空
[Start Workflow]
↓
[FREE VRAM (MinFreeVRAMGB=0.0)] ← 强制清理
↓ trigger
[Sequential Checkpoint Loader] ← 清理后再加载
↓ (MODEL, CLIP, VAE)
[CLIP Text Encode (Prompt)]
↓ (CONDITIONING)
[KSampler]
↓ (LATENT)
[VAE Decode]
↓ (IMAGE)
[Save Image]
要点:
- 在流程开始后立即放置 FREE VRAM
- 将
MinFreeVRAMGB设为 0.0 强制清理 - 利用 Sequential Loader 保证执行顺序
2. 低 VRAM(≤8 GB)运行多模型
使用场景:两段式 SDXL image2image
第一段用较轻参数生成草图(img2img 预览)。
第二段先通过 FreeVRAM 释放内存,再按顺序加载 Checkpoint → LoRA → VAE 生成成品。
要点: 共用:正/负面提示词各自编码一次,供两个采样器复用。
第一段:输入图像 → 调整为 1024x1024 → VAE Encode → KSampler(草稿) ↓ 第二段:将 latent 作为 FreeVRAM 之后的 trigger 继续传递 ↓ Sequential Checkpoint Loader(成品模型) ↓ Sequential LoRA Loader(叠加多个 LoRA) ↓ KSampler(※通过 Bypass 将 latent 引入采样器) ↓ Sequential VAE Loader(成品 VAE) ↓ VAE Decode ↓ 保存图片
※第一段用于试种子,第二段依次加载 LoRA 与不同 VAE,并借助 Free VRAM 控制内存压力。
参数参考
FREE VRAM 节点
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| Any | ANY | ✗(选填) | None | 任意类型透传输入,未连接时也可运行 |
| MinFreeVRAMGB | FLOAT | ✗(选填) | 0.0 | 当空闲 VRAM 高于该阈值时跳过(单位:GB) |
输出:
- Bypass(Relay):原样返回输入(无输入时为
None)
Sequential Checkpoint Loader
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| ckpt_name | COMBO | - | 检查点文件名 |
| trigger | ANY | None | 控制执行顺序的可选触发输入 |
输出:
- MODEL, CLIP, VAE, Bypass(Relay)
Sequential CLIP Loader
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| clip_name | COMBO | - | CLIP 文件名(.safetensors) |
| type | COMBO | stable_diffusion | CLIP 类型(stable_diffusion、qwen_image 等) |
| trigger | ANY | None | 控制执行顺序的可选触发输入 |
输出:
- CLIP, Bypass(Relay)
支持的 CLIP 类型:
- stable_diffusion (SD 1.x/2.x)
- stable_cascade (Stable Cascade)
- sdxl (SDXL)
- sd3 (SD3)
- flux (Flux)
- qwen_image (Qwen2-VL)
- 等等
Sequential VAE Loader
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| vae_name | COMBO | - | VAE 文件名(.safetensors/.pt)或 TAESD 变体 |
| trigger | ANY | None | 控制执行顺序的可选触发输入 |
输出:
- VAE, Bypass(Relay)
支持的 VAE:
- 常规 safetensors VAE
- TAESD 变体:taesd、taesdxl、taesd3、taef1
Sequential LoRA Loader
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| model | MODEL | - | 输入 MODEL |
| clip | CLIP | - | 输入 CLIP |
| lora_name | COMBO | - | LoRA 文件名 |
| strength_model | FLOAT | 1.0 | 对模型的应用强度 |
| strength_clip | FLOAT | 1.0 | 对 CLIP 的应用强度 |
| trigger | ANY | None | 控制执行顺序的可选触发输入 |
输出:
- MODEL, CLIP, Bypass(Relay)
运行环境
必须
- ComfyUI:建议使用最新版
- Python:3.8 及以上
- PyTorch:ComfyUI 随附版本
- GPU:推荐使用支持 CUDA 的 GPU(CPU 模式亦可)
可选
- psutil 5.8.0+:提供更详细的系统内存信息
pip install psutil
推荐
- VRAM:至少能够在 ComfyUI 中运行一个 KSampler
- RAM:同上
- OS:任何可运行 ComfyUI 的操作系统
故障排查
无法释放内存
原因与对策:
-
MinFreeVRAMGB 设置过高
- 使用
nvidia-smi查看当前空闲 VRAM - 试着将
MinFreeVRAMGB=0.0强制清理
- 使用
-
其他进程占用 GPU
- 检查是否有其它 ComfyUI 实例
- 关闭浏览器硬件加速
- 结束占用 GPU 的程序
-
ComfyUI 执行缓存残留
- 在 ComfyUI Manager 中使用 "Free model and cache"
- 重启 ComfyUI
Sequential Loaders 无法运行
原因与对策:
-
忘记连接 trigger
- 确认所有 trigger 输入/输出均已连接
- 任意一个缺口都会破坏执行顺序
-
import 错误
- 查看控制台日志
- 重启 ComfyUI
- 重新安装自定义节点
-
找不到模型文件
- 确认模型文件已放在正确目录
重要日志信息(ComfyUI 控制台):
[FreeVRAM] Sequential Loaders loaded successfully- 加载成功VRAM FREE (u5): Cleared: Models, Cache, GC | Freed: X.XX GB- 清理成功
许可证
详见 LICENSE。
致谢
本项目使用了以下技术:
版本:1.0.0
最后更新:2025-09-30
作者:u5dev


