ComfyUI-Sub-Nodes 插件完全教程 - 让你的工作流变成积木块!
1. 插件简介
插件原地址: https://github.com/vivax3794/ComfyUI-Sub-Nodes
这个插件就像是给 ComfyUI 装了一个"积木盒子"!你知道小时候玩积木吗?把小积木组合成大积木,然后用大积木再搭建更复杂的东西。这个插件就是让你把复杂的工作流"打包"成一个小盒子,然后在其他地方直接调用这个小盒子,就像用一个超级积木块一样简单!
能给我们带来什么效果:
- 🎯 复用神器:做过一次的复杂流程,以后一键调用,不用重复搭建
- 🧩 积木化:把大工作流拆分成小模块,像搭积木一样组合
- 🚀 效率提升:复杂的处理步骤变成一个节点,界面更清爽
- 🔄 嵌套使用:积木里面还能放积木,无限套娃!
⚠️ 重要提醒: 这个插件的作者已经不再维护了,但功能依然可用。如果遇到问题,需要自己解决或寻求社区帮助。
2. 如何安装
方法一:手动下载安装
- 打开你的 ComfyUI 安装目录
- 进入
custom_nodes文件夹 - 下载插件:
git clone https://github.com/vivax3794/ComfyUI-Sub-Nodes.git - 重启 ComfyUI
方法二:ComfyUI Manager 安装
- 在 ComfyUI 界面点击 "Manager" 按钮
- 搜索 "Sub-Nodes" 或 "vivax"
- 点击安装并重启
安装后需要做的事:
在你的 ComfyUI 根目录(和 custom_nodes、models 同级)创建一个叫 subnodes 的文件夹,这就是你存放"积木盒子"的地方!
3. 节点详细解析
3.1 VIV_Subgraph 节点 - 积木调用器
这个节点就像一个"万能遥控器",可以调用你之前做好的任何积木盒子(子工作流)。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| workflow | workflow | 下拉选择框 | 选择你要用的积木盒子 | 就像选择要播放的电影一样,选择你要调用的子工作流 | 指定要执行的子图工作流文件名 | 选择 "人像美化.json" 就会调用人像美化的整套流程 |
| 动态输入参数 | **kwargs | 根据子工作流而定 | 按子工作流需求填写 | 这些是积木盒子需要的"原料",比如要处理的图片、文字等 | 子图的输入参数,会根据选择的工作流动态生成 | 如果子工作流需要图片,这里就会出现图片输入接口 |
特殊功能:
- open 按钮:点击后会在新标签页打开这个积木盒子,让你可以查看或修改里面的内容
- 自动刷新:当你修改了积木盒子的内容,这个节点会自动检测到变化
- 进度显示:运行时会在节点上方显示当前正在执行的步骤
3.2 VIV_Subgraph_Inputs 节点 - 积木盒子的进料口
这个节点就像积木盒子的"进料口",定义这个积木盒子需要什么"原料"才能工作。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 动态输出接口 | 无固定参数 | 自动生成 | 根据连接自动调整 | 就像工厂的传送带入口,连接什么类型的东西,就变成什么类型的接口 | 根据连接的节点自动推断输入类型和生成对应的输出接口 | 连接图片节点后,会自动生成图片类型的输出 |
| 动态控件 | properties | 各种类型 | 根据连接节点决定 | 当连接的节点有调节旋钮时,这里也会出现相同的旋钮 | 为连接的节点输入生成对应的控件界面 | 连接文本输入后,会出现文本输入框 |
重要特性:
- 唯一性:一个积木盒子只能有一个进料口,如果放第二个会被自动删除
- 智能识别:会自动识别连接的是什么类型的数据,并调整接口类型
- 控件同步:如果连接的节点有设置选项,这里也会出现相同的设置选项
3.3 VIV_Subgraph_Outputs 节点 - 积木盒子的出货口
这个节点就像积木盒子的"出货口",定义这个积木盒子完成工作后会输出什么"产品"。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 动态输入接口 | 无固定参数 | 自动生成 | 根据连接自动调整 | 就像工厂的成品出口,连接什么就收集什么类型的成品 | 根据连接的节点输出自动生成对应的输入接口 | 连接图片生成节点后,会自动创建图片类型的输入接口 |
重要特性:
- 唯一性:一个积木盒子只能有一个出货口,如果放第二个会被自动删除
- 自动扩展:每次连接新的输出,都会自动增加一个新的接口
- 类型记录:会记住每个接口对应的数据类型,确保外部调用时类型匹配
3.4 VIV_Default 节点 - 默认值守护神(已废弃)
这个节点就像一个"保险丝",当某个数据没有提供时,它会提供一个默认的备用数据。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| default | default | 任意类型 | 设置合理的默认值 | 就像备用轮胎,当主要的数据没有时,就用这个备用的 | 当可选输入为空时使用的默认值 | 设置默认图片,当没有输入图片时就用这张 |
| inp | inp | 任意类型(可选) | 可以不连接 | 主要的数据输入,就像主轮胎,优先使用这个 | 可选的主输入,如果提供则优先使用 | 连接用户上传的图片,如果用户没上传就用默认的 |
工作逻辑:
- 如果
inp有数据 → 输出inp的数据 - 如果
inp没有数据 → 输出default的数据
⚠️ 注意: 这个节点已经被标记为废弃(DEPRECATED),建议不要在新项目中使用。
4. 使用技巧和建议
4.1 创建积木盒子的最佳实践
- 命名规范:给你的积木盒子起个好懂的名字,比如 "人像美化.json"、"风景增强.json"
- 输入输出清晰:确保进料口和出货口的连接清晰,避免混乱
- 测试充分:在保存为积木盒子之前,先在主工作流中测试确保功能正常
- 文档记录:复杂的积木盒子最好写个说明文档,记录输入输出的含义
4.2 调用积木盒子的技巧
- 刷新列表:如果新建的积木盒子没有出现在下拉列表中,点击刷新按钮
- 参数调试:使用 "open" 按钮打开积木盒子进行调试和修改
- 嵌套使用:积木盒子里面可以调用其他积木盒子,实现复杂的嵌套结构
- 性能考虑:避免过深的嵌套,可能会影响执行效率
4.3 文件管理建议
- 分类存放:在
subnodes文件夹中创建子文件夹分类存放不同类型的积木盒子 - 版本管理:重要的积木盒子可以保存多个版本,如 "人像美化_v1.json"、"人像美化_v2.json"
- 备份重要:定期备份
subnodes文件夹,避免丢失重要的积木盒子
5. 常见问题解答
Q1: 为什么我的积木盒子在下拉列表中看不到?
A:
- 检查文件是否保存在正确的
subnodes文件夹中 - 确保文件名以
.json结尾 - 点击 VIV_Subgraph 节点上的刷新按钮
- 重启 ComfyUI
Q2: 积木盒子运行时报错怎么办?
A:
- 检查积木盒子内部是否有 VIV_Subgraph_Inputs 和 VIV_Subgraph_Outputs 节点
- 确保所有必需的输入都已连接
- 使用 "open" 按钮打开积木盒子检查内部连接是否正确
- 查看 ComfyUI 控制台的详细错误信息
Q3: 可以在积木盒子里面再调用其他积木盒子吗?
A: 可以!这就是嵌套功能,但要注意:
- 避免循环调用(A调用B,B又调用A)
- 嵌套层数不要太深,影响性能
- 确保每个层级的输入输出都正确连接
Q4: 积木盒子的输入输出接口为什么会自动变化?
A: 这是智能识别功能:
- 连接不同类型的节点,接口会自动适配类型
- 这样确保数据传递的正确性
- 如果类型不匹配,ComfyUI 会提示错误
Q5: VIV_Default 节点什么时候用?
A: 虽然已废弃,但理解其用途:
- 为可选参数提供默认值
- 在积木盒子中处理可能为空的输入
- 现在建议使用其他方式实现默认值功能
6. 实际应用场景举例
场景1:人像处理积木盒子
创建一个包含人脸检测、美颜、背景虚化的完整流程,保存为 "人像处理.json",以后只需要输入原图就能一键美化。
场景2:风格转换积木盒子
把 ControlNet + LoRA + 特定提示词的组合保存为积木盒子,以后只需要输入图片和风格名称就能快速转换。
场景3:批量处理积木盒子
创建包含多种尺寸输出、不同格式保存的批量处理流程,一次输入多次输出。
7. 总结
ComfyUI-Sub-Nodes 插件虽然已经停止维护,但它的"积木化"思想非常先进。通过将复杂的工作流封装成可重用的模块,大大提高了工作效率和流程的可维护性。
核心价值:
- 🔄 复用性:一次创建,多次使用
- 🧩 模块化:复杂流程拆分为简单模块
- 🚀 效率化:减少重复工作,提高生产力
- 🔧 可维护性:修改积木盒子,所有调用处自动更新
虽然插件不再更新,但对于理解 ComfyUI 的高级用法和工作流设计思想,这个插件仍然具有很高的学习价值。如果你是 ComfyUI 的重度用户,强烈建议尝试使用这个插件来优化你的工作流程!