ComfyUI-Stacker:简化多步骤图像处理流程的堆栈工具

插件5个月前发布 小马良
216 0

在使用 ComfyUI 构建复杂图像生成流程时,常常会遇到模型频繁加载/卸载、参数传递困难等问题。为了解决这些问题,ComfyUI-Stacker 应运而生。

它提供了一套基于“堆栈(Stack)”机制的数据暂存功能,支持图像、字符串和整数类型的临时存储与调用,从而有效减少模型切换带来的性能损耗,提升流程执行效率。

功能概述

ComfyUI-Stacker 的核心功能围绕两个操作展开:

  • Push(推入):将数据保存至堆栈中
  • Pop(弹出):从堆栈中读取并移除数据

目前支持的数据类型包括:

  • 图像(保存为 PNG 格式)
  • 字符串(保存为文本文件)
  • 整数(保存为文本文件)

所有数据默认保存在 ComfyUI/Stack 文件夹下,每个数据项通过一个唯一的“Key”进行标识,相当于变量名。

使用场景示例

以下是一个典型应用场景:

  1. 使用 SDXL 模型配合 ControlNet 生成图像
  2. 将生成的图像推入堆栈(Key: "generated_image")
  3. 后续流程调用图像转视频模型时,从堆栈中弹出该图像

通过这种方式,可以避免图像在流程中多次加载/卸载,节省资源,提升流程稳定性。

工作原理说明

推入操作(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 数据
修复“无更改”提示仍需重新编译的问题提升节点编辑体验,避免不必要的节点重载
© 版权声明

相关文章

暂无评论

none
暂无评论...