在使用 ComfyUI 构建复杂图像生成流程时,常常会遇到模型频繁加载/卸载、参数传递困难等问题。为了解决这些问题,ComfyUI-Stacker 应运而生。
它提供了一套基于“堆栈(Stack)”机制的数据暂存功能,支持图像、字符串和整数类型的临时存储与调用,从而有效减少模型切换带来的性能损耗,提升流程执行效率。

功能概述
ComfyUI-Stacker 的核心功能围绕两个操作展开:
- Push(推入):将数据保存至堆栈中
- Pop(弹出):从堆栈中读取并移除数据
目前支持的数据类型包括:
- 图像(保存为 PNG 格式)
- 字符串(保存为文本文件)
- 整数(保存为文本文件)
所有数据默认保存在 ComfyUI/Stack 文件夹下,每个数据项通过一个唯一的“Key”进行标识,相当于变量名。
使用场景示例
以下是一个典型应用场景:
- 使用 SDXL 模型配合 ControlNet 生成图像
- 将生成的图像推入堆栈(Key: "generated_image")
- 后续流程调用图像转视频模型时,从堆栈中弹出该图像
通过这种方式,可以避免图像在流程中多次加载/卸载,节省资源,提升流程稳定性。
工作原理说明
推入操作(Push)
- 图像:保存为 PNG 文件
- 字符串/整数:保存为
.txt文本文件 - 存储路径:默认为
ComfyUI/Stack文件夹 - 每个数据项由一个“Key”标识,用于后续检索
弹出操作(Pop)
- 读取堆栈中最近一次保存的对应 Key 数据
- 读取完成后自动删除该数据文件
- 如果堆栈中没有对应 Key 数据,默认行为将返回空值(未来将支持默认值设定)
Key 的作用
“Key”是堆栈操作中的关键标识符,类似于变量名。例如:
- StackPushInt 节点 A:Key 为 "width"
- StackPushInt 节点 B:Key 为 "height"
后续流程可通过 Pop 节点分别获取这两个值,用于图像处理、模型配置等用途。
未来改进计划(待办事项)
以下是 ComfyUI-Stacker 的后续优化方向:
| 功能点 | 描述 |
|---|---|
| 清理 Key 输入框 | 提升 UI 可用性,避免输入错误 |
| 堆栈为空时返回默认值 | 提高流程鲁棒性,避免因缺失数据导致中断 |
| 添加“覆盖写入”选项 | 允许用户决定是否覆盖已存在的 Key 数据 |
| 修复“无更改”提示仍需重新编译的问题 | 提升节点编辑体验,避免不必要的节点重载 |
© 版权声明
文章版权归作者所有,未经允许请勿转载。
相关文章
暂无评论...









