什么是 List (列表)?

List(列表)是一种将多个数据作为“一个整体”来处理的机制。 相对于 Queue 是“将同一个 工作流 执行多次”,List 则是 在一次执行中,按顺序处理多个输入 的感觉。

  • Queue
    • 将同一个 工作流,从外部多次循环
  • List
    • 在内部按顺序处理多个输入

将其理解为“是多次按下 Run,还是按一次 Run 注入多个输入”的区别,会比较容易懂。


创建 List

Create List 节点

用于手动组装 List 的节点。 将任意类型(图像 / 文本 / 数值等)汇总成 1 个 List。

Create_List.json
  • 连接节点后插槽会增加,可以添加任意数量。

方便使用的自定义节点

仅使用 ComfyUI 的标准节点也可以创建 List,但能做的操作比较有限。使用以下自定义节点,可以从文件夹或字符串创建 List,也可以从 List 中取出指定元素。

Load Image List From Dir (Inspire) 节点

批量读取文件夹内的图像,创建 IMAGE 的 List。

Load_Image_List_From_Dir_(Inspire).json
  • directory: 输入要读取的文件夹路径
  • load_always:当文件夹内容发生变化时,是否每次重读
    • 如果在 disabled 状态下使用,ComfyUI 会认为“只要路径与上次相同,内容就是一样的”,即使文件夹内有变更(添加、删除图像等)也不会重读。
    • 如果想要替换图像并重新执行,请将 load_always 设置为 enabled

Split String

将 1 个长 STRING,按分隔符分割并转换为 List。

Split_String.json
  • delimiter:分隔符(因为 , 在提示词中经常使用,所以最好避免使用)
  • splitlines:按换行符分割
  • strip : 删除前后的空白

Select Nth Item (Any list) 节点

从 List 中取出指定位置的一个元素。

Select_Nth_Item_(Any_list).json
  • index:想要取出的位置(0, 1, 2…)

存在多个 List 时的举动

image2image_2list-3list.json

例如在 image2image 中考虑以下情况:

  • 图像 List:3 张
  • 提示词 List:2 个

这时,你可能会觉得“3 × 2 = 6 张”,但实际的动作是采取 “齐头并进” 的形式。

  • 第 1 张图像 × 第 1 个提示词
  • 第 2 张图像 × 第 2 个提示词
  • 第 3 张图像 × 第 2 个提示词(将被复用)

也就是说只会生成 3 张图像。