工作流一复杂,连线一多,最让人头疼的往往不是单个节点,而是那些每次都要重新连接的固定组合。ComfyUI的Subgraph功能正是为了解决这个痛点,它可以将一组节点打包成一个可编辑的子图节点。如果进一步发布为Subgraph Blueprint,那就更彻底了——直接从节点库拖出来,就能在其他工作流中即插即用。
在动手之前,先确认一下版本要求。创建和编辑子图,需要ComfyUI前端至少1.24.3版本;如果想把子图发布到节点库,前端版本必须达到1.27.7或更高。官方文档的截图来自nightly前端,按钮位置可能随版本有小调整。如果你在画布上选中节点后看不到子图图标,建议先升级ComfyUI,然后刷新前端、重新打开工作流再试。
先挑出适合封装的节点
从哪里开始?就在你想要整理的工作流画布上。使用框选或按住组合选择键,将需要封装的节点全部选中。关键点在于:只选择真正属于同一个功能的部分,例如模型加载、提示词编码和采样流程这一套。像Save Image这类你想保留在外的节点,不要选进范围。如果所有目标节点都处于选中状态,画布上方会弹出浮动工具栏,这就表示成功了。如果工具栏没有出现,先点击画布空白处取消选择,再重新框选一次。如果不小心误选了节点,先取消该节点的选中状态再创建子图,避免把外部输入或最终输出的节点也一起封装进去,那样会很麻烦。

看到那个黄色箭头所指的、四向收拢样式的按钮了吗?那就是子图按钮。这个按钮只有在选中节点时才会生效。所以,先确认好选择范围再点击,可以省去不少创建之后拆了重接的麻烦。
创建子图并检查外部接口
把选中节点折叠成一个子图
选好节点后,点击一下子图图标即可。ComfyUI会根据你选中的节点与外部节点之间的现有连线,自动生成子图的输入和输出端口。原来的那组节点会变成一个带有子图标识的新节点,外部的连线仍然正确连接在对应的输入或输出端口上,这就是成功的标志。如果创建后发现端口太多,那多半是因为你选的节点跨越了多个功能。建议先撤销,缩小节点范围后再重新创建。如果外部连线丢失或类型不匹配,也需要回到原来的节点组,检查连接方向和数据类型是否正确。

截图中的Text to Image已经变成了一个子图节点,常用的参数保留在节点表面,IMAGE输出也仍然连接着外部的Save Image。看到这种“内部收拢、外部连线保留”的状态,才算创建完成。
进入内部编辑模式
双击子图内部的空白区域,即可进入内部编辑模式。注意,不要双击到控件。也可以点击子图的编辑按钮。进入后检查左侧的输入槽、右侧的输出槽以及内部节点的连线是否正确。默认标记为“1”的槽位可以用于添加新的对外连接;已有的槽位,右键可以重命名、删除或断开连接。成功进入的标志是:顶部会出现当前子图的导航路径,画布上同时显示内部节点和左右两侧的对外槽位。如果双击后仍然停留在父工作流,很可能是你点到了文本框或其他控件,换一个节点内部的空白处点击即可。如果连接被拒绝,不要强行连接,先核对两端的数据类型,子图的槽位也需要遵守普通节点的类型校验规则。

图中编号1是返回父级的导航区域,编号2和3分别标出了外部输入与输出槽。调整完内部结构后,点击顶部的导航路径或按Esc返回父工作流,再确认一下子图表面的参数和端口是否符合预期。
把子图发布成可复用蓝图
打开发布入口
在父工作流中选中子图节点后,点击浮动工具栏上的书本形状发布图标。也可以打开更多菜单,选择Add Subgraph to Library。如果成功,屏幕中央会弹出Save Subgraph to Library对话框。如果工具栏中没有书本图标、菜单里也找不到发布选项,请先确认前端版本至少为1.27.7,再确认当前选中的是子图节点,而不是普通节点。

浮动工具栏上的书本图标,与更多菜单中的Add Subgraph to Library,是同一个发布动作。普通的复制或Duplicate只会复制当前节点,不会将其添加到可搜索的蓝图库中。
命名并确认保存
在Save Subgraph to Library对话框中,将默认名称改为能清晰描述输入、处理内容和输出的名字,然后点击Confirm。例如,与其叫“子图1”,不如叫“文本转图像基础链”或“放大后锐化”,这样更一目了然。对话框关闭后,Nodes面板的Subgraph Blueprints区域会出现对应的条目,这就是成功的标志。如果确认后找不到条目,先打开Nodes面板展开My Blueprints查看;如果还是没有,检查是否只修改了当前节点名称,而没有执行发布动作。

对话框默认会沿用当前子图节点的名称。这个名字将是后续搜索和识别蓝图的依据,所以在确认之前把临时名字改清楚,等到后面工作流多了,查找起来也会更方便。
从节点库再次使用子图
在左侧Nodes面板的Subgraph Blueprints,通常位于My Blueprints下面。展开分类,找到你刚保存的蓝图,然后像拖拽普通节点一样把它拖到当前画布上,再连接好输入输出即可。画布上会出现新的子图节点,端口和公开参数都与你保存时一致,并且可以独立进入编辑模式。如果找到节点但连不上,请核对蓝图暴露的端口类型是否正确;如果参数或端口不合适,可以进入这个新实例内部进行调整。从蓝图添加到工作流的子图都是互相隔离的,修改其中一个实例不会自动影响其他实例。

截图左侧已经展开了My Blueprints,发布后的子图和普通节点一样,都可以直接找到并拖入使用。蓝图适合存储那些已经稳定、反复使用的节点组合。如果还处于频繁改线的实验流程,先保留为当前工作流中的普通子图会更省事。
完成检查清单
- 确保ComfyUI前端至少为1.24.3;如需发布蓝图则至少为1.27.7。
- 创建前只选中了属于同一功能的节点,避免将外部输入和最终输出节点误收进去。
- 创建后外部连线保持完整,子图表面的输入、参数和输出与任务边界一致。
- 内部编辑模式可正常打开,顶部导航、输入槽和输出槽都能正确识别。
- 发布对话框中的名称具体易搜索,Nodes面板的My Blueprints中能找到对应条目。
- 从蓝图库拖入的新实例可独立编辑,并能按原端口类型接回工作流。
