ComfyUI-Interactive 插件 - 让你的工作流程变得互动起来!
1. 插件简介
原始地址: https://github.com/lquesada/ComfyUI-Interactive
这个插件简直就是ComfyUI的"遥控器"!想象一下,你原本的工作流程就像一条直线的传送带,所有图片都必须按照固定路线走。但有了这个插件,你就可以在传送带上设置"红绿灯"和"岔路口",让你能够随时暂停、选择、切换不同的处理路径。
能给你带来什么神奇效果?
- 🎮 像玩游戏一样控制图片处理过程
- 🛤️ 在多个效果之间自由选择,就像选择不同的滤镜
- ⏸️ 随时暂停工作流程,预览效果再决定是否继续
- 💾 只有满意的图片才保存,不满意的直接跳过
- 🎲 一键生成新的随机种子,快速尝试不同效果
2. 如何安装
方法一:使用ComfyUI管理器(推荐)
- 打开ComfyUI管理器
- 搜索"ComfyUI-Interactive"
- 点击安装
- 重启ComfyUI
方法二:手动安装
- 打开ComfyUI的
custom_nodes/文件夹 - 在这里打开命令行工具
- 输入:
git clone https://github.com/lquesada/ComfyUI-Interactive.git - 重启ComfyUI
3. 节点逐一解析
3.1 Interactive Selector(互动选择器)- 你的"选择按钮"
这个节点就像一个"选择按钮",当工作流程运行到这里时会暂停,显示当前的图片,然后等你按下按钮来决定是否继续这条路径。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 传播取消选择 | propagate_deselect | True/False | True | 就像多米诺骨牌,当你不选择这个按钮时,后面相关的按钮也会自动不选择 | 控制取消选择状态是否向下游节点传播 | 当你有多个选择器串联时,选择True可以避免后面的选择器还在等待状态 |
| 选择状态 | selected | True/False | False | 这个按钮现在是被选中的状态吗?就像开关灯的状态 | 节点当前的选择状态 | 一般保持False,让用户通过界面按钮来控制 |
| 图片输入 | image | 图片数据 | - | 要显示和传递的图片,就像你要处理的照片 | 输入的图像张量数据 | 连接前面节点输出的图片 |
3.2 Interactive Selector (with parameters)(带参数的互动选择器)- 升级版选择按钮
这个节点是上面那个的升级版,不仅能显示和传递图片,还能同时传递其他"配料"(像是处理参数、文字描述等)。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 传播取消选择 | propagate_deselect | True/False | True | 就像多米诺骨牌,当你不选择这个按钮时,后面相关的按钮也会自动不选择 | 控制取消选择状态是否向下游节点传播 | 当你有多个选择器串联时,选择True可以避免后面的选择器还在等待状态 |
| 选择状态 | selected | True/False | False | 这个按钮现在是被选中的状态吗?就像开关灯的状态 | 节点当前的选择状态 | 一般保持False,让用户通过界面按钮来控制 |
| 图片输入 | image | 图片数据 | - | 要显示和传递的图片,就像你要处理的照片 | 输入的图像张量数据 | 连接前面节点输出的图片 |
| 潜在空间 | latent | 潜在空间数据 | - | 图片的"半成品"状态,就像还没显影的胶卷 | 图像的潜在空间表示 | 连接KSampler等节点的潜在空间输出 |
| 蒙版 | mask | 蒙版数据 | - | 告诉系统哪些区域要处理,就像贴纸的形状 | 图像处理的遮罩区域 | 连接生成蒙版的节点 |
| 字符串 | string | 文本内容 | - | 文字描述,比如提示词 | 文本字符串参数 | 连接提示词或其他文本节点 |
| 整数 | int | 整数值 | - | 整数参数,比如步数、宽度等 | 整数类型参数 | 连接需要传递整数的节点 |
| 浮点数 | float | 小数值 | - | 带小数的数值,比如强度、比例等 | 浮点数类型参数 | 连接需要传递小数的节点 |
3.3 Interactive Switch(互动开关)- 你的"分流器"
这个节点就像一个"分流器"或"岔路口",它会接收多个选择器的信号,然后只让被选中的那条路径通过。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 选择器输入 | selector_inputs | 选择器数据 | - | 接收多个选择器的信号,就像接收多个遥控器的信号 | 来自Interactive Selector节点的选择状态 | 连接一个或多个Interactive Selector节点 |
3.4 Interactive Switch (with parameters)(带参数的互动开关)- 升级版分流器
这个节点是上面那个的升级版,不仅能分流图片,还能分流各种"配料"参数。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 选择器输入 | selector_inputs | 选择器数据 | - | 接收多个选择器的信号,就像接收多个遥控器的信号 | 来自Interactive Selector节点的选择状态和参数 | 连接一个或多个Interactive Selector (with parameters)节点 |
3.5 Interactive Save(互动保存)- 你的"保存按钮"
这个节点就像一个"保存按钮",它会显示图片预览,只有当你点击保存按钮时,图片才会真正保存到电脑里。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 保存状态 | save_triggered | True/False | False | 是否触发保存,就像按下保存按钮 | 控制是否执行保存操作 | 一般保持False,通过界面按钮来触发 |
| 图片输入 | image | 图片数据 | - | 要预览和保存的图片 | 输入的图像数据 | 连接要保存的图片节点 |
| 文件名前缀 | filename_prefix | 文本 | "ComfyUI" | 保存文件的名字前缀,就像给文件起个名字 | 保存文件的命名前缀 | 比如设置为"我的作品",保存的文件就会是"我的作品_001.png" |
3.6 Interactive Seed(互动种子)- 你的"随机数生成器"
这个节点就像一个"随机数生成器",它提供种子数值,还有一个按钮让你快速生成新的随机种子。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 种子值 | seed | 整数 | -1 | 控制随机性的数字,就像骰子的点数 | 随机数生成器的种子值 | -1表示随机,固定数字会产生相同结果 |
| 生成新种子 | generate_new | True/False | False | 是否生成新的随机种子,就像重新摇骰子 | 控制是否生成新的种子值 | 通过界面按钮来触发生成新种子 |
3.7 Interactive Reset(互动重置)- 你的"重置按钮"
这个节点就像一个"重置按钮",它会把所有选择器都重置到未选择状态,就像清空所有选择重新开始。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 重置触发 | reset_triggered | True/False | False | 是否触发重置所有选择器,就像按下重置按钮 | 控制是否执行重置操作 | 通过界面按钮来触发重置所有选择器状态 |
3.8 String (for Interactive)(互动字符串)- 你的"文字盒子"
这个节点就像一个"文字盒子",专门用来在互动工作流程中传递文字内容。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 文本内容 | text | 文本字符串 | "" | 要传递的文字内容,比如提示词 | 字符串字面值 | 输入你想传递的文字,比如"美丽的风景" |
3.9 Integer (for Interactive)(互动整数)- 你的"数字盒子"
这个节点就像一个"数字盒子",专门用来在互动工作流程中传递整数。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 数值 | value | 整数 | 0 | 要传递的整数值,比如步数、宽度等 | 整数字面值 | 输入你想传递的整数,比如20(表示20步) |
3.10 Float (for Interactive)(互动浮点数)- 你的"小数盒子"
这个节点就像一个"小数盒子",专门用来在互动工作流程中传递带小数的数值。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 数值 | value | 浮点数 | 0.0 | 要传递的小数值,比如强度、比例等 | 浮点数字面值 | 输入你想传递的小数,比如0.8(表示80%的强度) |
3.11 String Append (for Interactive)(互动字符串拼接)- 你的"文字胶水"
这个节点就像"文字胶水",把两段文字粘在一起,专门为互动工作流程优化。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 第一段文字 | text1 | 文本字符串 | "" | 第一段要拼接的文字 | 第一个输入字符串 | 比如"美丽的" |
| 第二段文字 | text2 | 文本字符串 | "" | 第二段要拼接的文字 | 第二个输入字符串 | 比如"风景",拼接后就是"美丽的风景" |
4. 使用技巧和建议
🎯 最佳实践
-
保持队列为空:使用这些互动节点时,确保ComfyUI的队列是空的,并且关闭自动排队功能。这样界面才会响应你的按钮操作。
-
合理使用传播取消选择:当你有多个选择器串联时,建议开启
propagate_deselect功能,这样就不会有"僵尸"选择器一直在等待状态。 -
预览再决定:充分利用预览功能,看到效果满意了再点击继续或保存,这样可以避免浪费时间处理不满意的图片。
-
文字拼接优化:使用插件自带的"String Append"节点而不是其他插件的字符串功能,这样可以避免性能问题。
🔧 工作流程设计思路
- 分支选择流程:用多个选择器连接到一个开关,实现"多选一"的效果
- 暂停预览流程:在生成图片后插入选择器,实现"预览-决定是否继续"的效果
- 批量筛选流程:生成多张图片后,用多个选择器让你挑选最满意的保存
5. 常见问题解答
❓ 为什么按钮点击后没有反应?
答案:检查以下几点:
- 确保ComfyUI队列为空
- 关闭自动排队功能
- 确认所有互动节点都有正确的连接路径
❓ 选择器显示不出图片怎么办?
答案:检查图片输入是否正确连接,确保上游节点已经生成了图片数据。
❓ 多个选择器同时被选中了怎么办?
答案:使用"Interactive Reset"节点清空所有选择,或者手动点击选择器取消选择。
❓ 为什么有些节点运行很慢?
答案:避免使用其他插件的字符串处理节点,改用本插件的"String Append"节点。
❓ 可以嵌套使用吗?
答案:可以,但要注意连接路径必须是直接或间接连接的,不能完全依赖"Anything Everywhere"类型的节点。
6. 进阶应用场景
🎨 创意工作流程
- 风格选择器:生成多种风格的图片,让你选择最喜欢的继续加工
- 质量控制:每个处理步骤后都插入选择器,确保每一步都满意
- 批量处理:处理多张图片时,只保存你觉得满意的那些
🔄 实验性工作流程
- 参数测试:快速测试不同参数组合的效果
- 模型对比:同时使用多个模型,对比选择最佳结果
- 种子探索:快速生成和测试不同随机种子的效果
💡 提示
记住,这个插件的核心理念就是让你在图片生成过程中拥有更多控制权,就像从"看电影"变成了"玩游戏"。你不再是被动等待结果,而是可以主动参与到每个关键决策点中。好好利用这个插件,你的创作效率会大大提升!