ComfyUI 魔法书 Logo
🏠 首页
👥 加群
😎 大帅比
❤️‍🔥 Monster 社区
登录 →
ComfyUI 魔法书 Logo
🏠 首页 👥 加群 😎 大帅比 ❤️‍🔥 Monster 社区
登录
  1. 首页
  2. 🧩 插件工坊 (Plugin Workshop)
  3. ComfyUI必备插件ControlFlowUtils详细使用教程

ComfyUI必备插件ControlFlowUtils详细使用教程

0
  • 🧩 插件工坊 (Plugin Workshop)
  • 发布于 2025-07-01
  • 15 次阅读
编程界的小学生
编程界的小学生

ControlFlowUtils 插件保姆级教程

1. 插件简介

插件原地址: https://github.com/VykosX/ControlFlowUtils

ControlFlowUtils 是一个超级强大的 ComfyUI 插件,就像给你的工作流程加了一个"智能大脑"!它能让你的工作流程变得更聪明,可以自动循环、自动判断、自动选择,完全不需要你手动操作。

这个插件能给我们带来什么效果?

  • 让工作流程自动重复执行(就像设置闹钟一样)
  • 根据条件自动选择不同的路径(就像导航软件选路线)
  • 在不同的执行之间保存和传递数据(就像记事本记住信息)
  • 自动管理内存和模型(就像手机自动清理垃圾)
  • 处理文件和文本操作(就像文件管理器)

简单来说,这就是一个让 ComfyUI 变得"智能化"和"自动化"的超级工具包!

2. 如何安装

方法一:通过 ComfyUI Manager 安装(推荐)

  1. 打开 ComfyUI Manager
  2. 搜索 "ControlFlowUtils"
  3. 点击安装
  4. 重启 ComfyUI

方法二:手动安装

  1. 打开你的 ComfyUI 文件夹
  2. 进入 custom_nodes 文件夹
  3. 下载插件:git clone https://github.com/VykosX/ControlFlowUtils.git
  4. 重启 ComfyUI

3. 节点详解

3.1 Cycle 节点 - 循环计数器

这个节点就像一个"计数器",可以记住当前是第几次执行,让你的工作流程能够在多次运行之间传递信息。

3.1.1 必填参数详解

参数名 (UI显示)参数名 (代码里)参数值建议值通俗解释 (能干嘛的)专业解释怎么用/举个例子
startstart整数0计数器的起始数字,就像从几开始数数循环计数器的初始值设置为0表示从第0次开始,设置为1表示从第1次开始
stepstep整数1每次增加多少,就像每次数数加几每次迭代时计数器的增量设置为1表示每次加1,设置为2表示每次加2
endend整数10数到多少就停止,就像数到10就不数了循环结束的目标值设置为10表示数到10就停止循环

3.1.2 可选参数详解

参数名 (UI显示)参数名 (代码里)参数值建议值通俗解释 (能干嘛的)专业解释怎么用/举个例子
manual_resetmanual_resettrue/falsefalse手动重新开始计数,就像重置秒表手动触发循环重置设置为true可以强制重新开始循环
auto_resetauto_resettrue/falsetrue数完了自动重新开始,就像循环播放音乐到达结束值后是否自动重置true表示循环结束后自动重新开始

3.2 CycleContinue 节点 - 循环数据传递器

这个节点就像一个"传话筒",把上一次的结果传给下一次使用。

3.2.1 必填参数详解

参数名 (UI显示)参数名 (代码里)参数值建议值通俗解释 (能干嘛的)专业解释怎么用/举个例子
CYCLECYCLECYCLE类型来自Cycle节点连接循环计数器,就像插电源线循环状态对象必须连接到Cycle节点的输出
datadata任意类型你的数据要在循环中传递的主要数据循环中传递的主数据可以是图片、文本或任何数据

3.2.2 可选参数详解

参数名 (UI显示)参数名 (代码里)参数值建议值通俗解释 (能干嘛的)专业解释怎么用/举个例子
index_overrideindex_override整数无强制跳到指定的循环次数手动覆盖当前循环索引设置为5可以直接跳到第5次循环
auxaux任意类型无额外的辅助数据,就像备用口袋辅助数据传递可以传递额外的信息或参数

3.3 CycleEnd 节点 - 循环结束器

这个节点就像一个"终点站",告诉系统这一轮循环结束了。

3.3.1 必填参数详解

参数名 (UI显示)参数名 (代码里)参数值建议值通俗解释 (能干嘛的)专业解释怎么用/举个例子
CYCLECYCLECYCLE类型来自Cycle节点连接循环计数器,确认循环状态循环状态对象必须连接到Cycle节点的输出
datadata任意类型处理后的数据这一轮循环处理完的数据当前循环迭代的结果数据把处理好的图片或数据传进来

3.4 LoopOpen 节点 - 循环开始器

这个节点就像一个"自动重复机",可以让一段工作流程自动重复执行很多次。

3.4.1 必填参数详解

参数名 (UI显示)参数名 (代码里)参数值建议值通俗解释 (能干嘛的)专业解释怎么用/举个例子
startstart整数1从第几次开始重复循环起始值设置为1表示从第1次开始
stepstep整数1每次增加多少循环步长设置为1表示每次加1,设置为2表示隔一个执行
endend整数10重复到第几次停止循环结束值设置为10表示重复10次就停止
conditioncondition文本True什么条件下才重复,就像设置闹钟条件循环执行条件写"True"表示一直重复,可以写复杂条件

3.5 LoopClose 节点 - 循环结束器

这个节点就像循环的"出口",决定是继续循环还是结束。

3.5.1 必填参数详解

参数名 (UI显示)参数名 (代码里)参数值建议值通俗解释 (能干嘛的)专业解释怎么用/举个例子
LOOPLOOP任意类型来自LoopOpen连接循环开始器循环状态对象必须连接到LoopOpen节点
conditioncondition文本True继续循环的条件循环继续条件写"True"表示按计划循环,可以写提前结束条件

3.6 UniversalSwitch 节点 - 万能开关

这个节点就像一个"智能分配器",可以根据你的设置把不同的输入分配到不同的输出。

3.6.1 必填参数详解

参数名 (UI显示)参数名 (代码里)参数值建议值通俗解释 (能干嘛的)专业解释怎么用/举个例子
input1input1任意类型你的数据第一个输入口,就像插座的第一个孔第一个输入数据可以连接任何类型的数据
modemode下拉选择SWITCH选择分配模式,就像选择播放模式开关工作模式SWITCH是单选,CYCLE是循环分配
selection_inselection_in整数1选择第几个输入,就像选择第几个频道输入选择索引1表示选择第1个输入,2表示选择第2个输入
selection_outselection_out整数1输出到第几个口,就像选择第几个扬声器输出选择索引1表示输出到第1个口,2表示输出到第2个口
validate_typingvalidate_typingtrue/falsefalse是否检查数据类型匹配类型验证开关暂未实现,保持false即可

3.7 IfConditionSelector 节点 - 条件判断器

这个节点就像一个"智能选择器",可以根据条件自动选择不同的路径。

3.7.1 必填参数详解

参数名 (UI显示)参数名 (代码里)参数值建议值通俗解释 (能干嘛的)专业解释怎么用/举个例子
conditioncondition下拉选择A == B选择比较方式,就像选择比较规则条件比较类型A == B表示相等,A > B表示大于
require_inputsrequire_inputstrue/falsetrue是否需要输入数据,还是只返回对错是否返回输入数据true返回数据,false只返回true/false
NOTNOTtrue/falsefalse是否反转结果,就像取反条件结果反转true会把对的变成错的,错的变成对的
custom_expressioncustom_expression文本2a == 5b+2自定义比较公式自定义条件表达式可以写复杂的数学或逻辑表达式

3.7.2 可选参数详解

参数名 (UI显示)参数名 (代码里)参数值建议值通俗解释 (能干嘛的)专业解释怎么用/举个例子
AA任意类型无第一个比较对象条件比较的第一个值可以是数字、文本或其他数据
BB任意类型无第二个比较对象条件比较的第二个值可以是数字、文本或其他数据
TRUE_INTRUE_IN任意类型无条件为真时返回的数据条件成立时的输出条件满足时会输出这个数据
FALSE_INFALSE_IN任意类型无条件为假时返回的数据条件不成立时的输出条件不满足时会输出这个数据

3.8 HaltExecution 节点 - 执行停止器

这个节点就像一个"紧急刹车",可以在需要的时候停止整个工作流程。

3.8.1 必填参数详解

参数名 (UI显示)参数名 (代码里)参数值建议值通俗解释 (能干嘛的)专业解释怎么用/举个例子
disabledisabletrue/falsefalse是否禁用停止功能,就像安全锁是否禁用停止执行false表示可以停止,true表示不会停止
methodmethodtrue/falsefalse停止方式选择停止执行的方法false是取消整个任务,true是阻止后续执行
clear_queueclear_queuetrue/falsefalse是否清空任务队列是否清除执行队列true会清空所有等待的任务
alert_on_triggeralert_on_triggertrue/falsefalse停止时是否弹出警告是否显示停止警告true会在停止时显示提醒信息
inputinput任意类型你的数据要传递的数据透传的数据数据会原样传递到输出

3.9 MemoryStorage 节点 - 记忆存储器

这个节点就像一个"记事本",可以记住数据并在不同的地方使用。

3.9.1 必填参数详解

参数名 (UI显示)参数名 (代码里)参数值建议值通俗解释 (能干嘛的)专业解释怎么用/举个例子
NameName文本变量名给这个记忆起个名字,就像文件名内存存储的唯一标识符比如"我的图片"、"计数器"等

3.9.2 可选参数详解

参数名 (UI显示)参数名 (代码里)参数值建议值通俗解释 (能干嘛的)专业解释怎么用/举个例子
InputInput任意类型无要存储的数据要保存到内存的数据可以是图片、数字、文本等任何数据
ResetResettrue/falsefalse是否清空这个记忆是否重置存储内容true会删除存储的数据
AcceptNullsAcceptNullstrue/falsefalse是否接受空值是否允许存储空值true允许存储空数据,false会忽略空数据

3.10 DataMonitor 节点 - 数据监视器

这个节点就像一个"万能显示器",可以显示、转换和处理各种数据。

3.10.1 必填参数详解

参数名 (UI显示)参数名 (代码里)参数值建议值通俗解释 (能干嘛的)专业解释怎么用/举个例子
texttext文本空要处理的文本内容文本输入框可以写文字、公式或代码
output_typeoutput_type下拉选择ANY输出数据的类型输出数据类型转换ANY保持原样,STRING转为文字,INT转为整数

3.10.2 可选参数详解

参数名 (UI显示)参数名 (代码里)参数值建议值通俗解释 (能干嘛的)专业解释怎么用/举个例子
passthroughpassthrough任意类型无要显示和传递的数据透传数据输入连接任何数据都会显示出来
auxaux任意类型无辅助数据1第一个辅助数据输入可以用于公式计算或显示
aux2-aux5aux2-aux5任意类型无辅助数据2-5额外的辅助数据输入提供更多数据用于处理

3.11 StringOperation 节点 - 文字处理器

这个节点就像一个"文字工具箱",可以对文字进行各种操作。

3.11.1 必填参数详解

参数名 (UI显示)参数名 (代码里)参数值建议值通俗解释 (能干嘛的)专业解释怎么用/举个例子
inputinput任意类型你的文字要处理的文字或列表输入的字符串或列表数据可以是"Hello World"或["a","b","c"]
operationoperation下拉选择UPPERCASE选择要做的操作字符串操作类型UPPERCASE变大写,LOWERCASE变小写
start_from_endstart_from_endtrue/falsefalse是否从末尾开始处理是否从字符串末尾开始操作true从后往前处理,false从前往后处理
case_insensitivecase_insensitivetrue/falsefalse是否忽略大小写是否忽略大小写差异true不区分大小写,false区分大小写

3.12 其他实用节点

3.12.1 FallbackImagePreviewer 节点 - 容错图片预览器

这个节点就像一个"智能相框",即使没有图片也不会出错。

参数名 (UI显示)参数名 (代码里)参数值建议值通俗解释 (能干嘛的)专业解释怎么用/举个例子
imagesimages图片你的图片要预览的图片输入图像数据连接任何图片都可以预览
fallback_widthfallback_width整数512没有图片时生成的宽度占位图像宽度没图片时会生成这个宽度的黑色图片
fallback_heightfallback_height整数512没有图片时生成的高度占位图像高度没图片时会生成这个高度的黑色图片

3.12.2 UnloadModels 节点 - 模型卸载器

这个节点就像"内存清理器",可以释放显存空间。

参数名 (UI显示)参数名 (代码里)参数值建议值通俗解释 (能干嘛的)专业解释怎么用/举个例子
PassthroughPassthrough任意类型你的数据要传递的数据透传数据数据会原样传递,同时清理显存
ForceUnloadForceUnloadtrue/falsefalse是否强制立即卸载强制卸载模式true立即卸载,false请求卸载

3.12.3 GarbageCollector 节点 - 垃圾回收器

这个节点就像"系统清理工具",可以释放内存空间。

参数名 (UI显示)参数名 (代码里)参数值建议值通俗解释 (能干嘛的)专业解释怎么用/举个例子
InputInput任意类型你的数据要传递的数据透传数据数据会原样传递,同时清理内存
RAMRAMtrue/falsetrue是否清理系统内存是否执行RAM清理true会尝试清理系统内存(仅Windows)
ModeModetrue/falsefalse清理模式选择清理执行模式false等待完成,true异步执行

3.12.4 Wait 节点 - 等待器

这个节点就像"定时器",可以让工作流程暂停一段时间。

参数名 (UI显示)参数名 (代码里)参数值建议值通俗解释 (能干嘛的)专业解释怎么用/举个例子
DelayDelay小数5.0等待多少秒延迟时间(秒)5.0表示等待5秒,0.5表示等待半秒
InputInput任意类型无要传递的数据透传数据等待结束后会传递这个数据

3.12.5 其他辅助节点

NullInput 节点 - 空输入器:提供空值输入
NullOutput 节点 - 空输出器:输出空值
SimpleToggle 节点 - 简单开关:输出true或false
InvertCondition 节点 - 条件反转器:把true变false,false变true

文件操作节点:

  • ReadTextFile 节点 - 文本文件读取器:读取文本文件内容
  • SaveTextFile 节点 - 文本文件保存器:保存文本到文件
  • FolderSearch 节点 - 文件夹搜索器:搜索文件夹中的文件

选择器节点:

  • ModelSelector 节点 - 模型选择器:选择可用的模型
  • LoraSelector 节点 - LoRA选择器:选择可用的LoRA
  • VAESelector 节点 - VAE选择器:选择可用的VAE

4. 使用技巧和建议

4.1 新手推荐组合

  • 简单循环: Cycle → CycleContinue → CycleEnd
  • 条件判断: IfConditionSelector + UniversalSwitch
  • 数据存储: MemoryStorage + DataMonitor
  • 内存管理: UnloadModels + GarbageCollector

4.2 高级应用场景

  1. 批量处理图片: 使用循环节点处理多张图片
  2. 条件生成: 根据不同条件生成不同风格的图片
  3. 数据累积: 在多次执行间累积和处理数据
  4. 自动化工作流: 创建完全自动化的复杂流程

5. 常见问题解答

Q1: 循环节点不工作怎么办?

A: 检查以下几点:

  • Cycle、CycleContinue、CycleEnd三个节点必须正确连接
  • 确保start、step、end参数设置合理
  • 检查是否有manual_reset被意外开启

Q2: 条件判断总是不准确?

A: 可能的原因:

  • 检查A和B输入是否正确连接
  • 确认condition选择的比较方式是否正确
  • 如果使用CUSTOM模式,检查custom_expression语法

Q3: 内存不足怎么办?

A: 尝试以下解决方案:

  • 使用UnloadModels节点及时卸载模型
  • 使用GarbageCollector节点清理内存
  • 在循环中定期清理,避免内存累积

Q4: 数据在循环中丢失?

A: 确保:

  • 使用MemoryStorage节点保存重要数据
  • 在CycleContinue和CycleEnd之间正确传递数据
  • 检查AcceptNulls设置是否合适

6. 高级功能说明

6.1 自定义表达式

在DataMonitor和IfConditionSelector中可以使用复杂的Python表达式:

  • 支持数学运算:2 * a + 3 * b
  • 支持逻辑判断:a > 5 and b < 10
  • 支持列表操作:[x for x in range(10) if x % 2 == 0]

6.2 内存存储变量

可以在表达式中使用内存存储的变量:

  • 使用%变量名%格式引用存储的数据
  • 支持复杂数据类型的存储和引用

6.3 循环嵌套

可以创建复杂的嵌套循环结构,实现更复杂的自动化流程。

7. 总结

ControlFlowUtils是一个功能极其强大的插件,它为ComfyUI带来了真正的编程能力。通过合理使用这些节点,你可以创建出非常智能和自动化的工作流程,大大提高工作效率。

记住这几个要点:

  1. 循环节点需要正确的三件套连接
  2. 条件判断要仔细设置比较条件
  3. 及时清理内存避免资源不足
  4. 善用内存存储在不同执行间传递数据

希望这个教程能帮助你更好地使用这个强大的插件!

标签: #插件 2338
相关文章

ComfyUI错误修复插件详解:轻松解决常见问题 2025-07-10 18:25

ComfyUI-CustomMenu插件使用教程:高效自定义工作流指南 2025-07-10 17:50

ComfyUI图像合并插件comfyui-merge使用教程 2025-07-03 22:44

ComfyUI 图像合并插件教程 (comfyui-merge) 1. 插件简介 这是一个专门用来合并图片的 ComfyUI 插件,就像用 PS 把多张图片叠在一起那样。它的特别之处在于你精确控制每张图片的混合方式。 GitHub 地址:https://github.com/LingSss9/com

ComfyUI WAN 2.2视频插件教程:万相AI提示词全攻略 2025-07-31 11:47

ComfyUI WAN 2.2视频插件教程:万相AI提示词实战指南 2025-07-29 20:10

ComfyUI HeyGem数字人插件教程:零基础快速精通指南 2025-07-22 14:10

目录

从节点基础到高阶工作流,我们为你绘制最清晰的 ComfyUI 学习路径。告别困惑,让每一次连接都充满创造的魔力,轻松驾驭 AI 艺术的无限可能。

  • 微信
  • B站
  • GitHub
Copyright © 2025 AIX All Rights Reserved. Powered by AIX.
隐私政策
津ICP备2024019312号