SuperAPI AI 工具集

comfy-subgraphs-app-mode

设计与创作

查看项目

更新于 10-29 23:58

技能介绍

本技能介绍 ComfyUI 前端中用于复用和简化工作流的三项功能,每项都有版本门槛:

  • Subgraphs(将一组节点打包为“超级节点”):1.24.3+
  • Subgraph Parameters Panel(“Edit Subgraph Widgets”):0.3.66+
  • Subgraph Blueprints(发布到节点库):1.27.7+
  • App Mode(内部也称“linear mode”):1.41.13+

如果发现某项功能缺失,可检查当前运行的前端版本: <venv>/bin/python -c "import comfyui_frontend_package as p; print(p.version)"

编辑器侧的底层机制(definitions.subgraphs[] 的 JSON 结构及其内部链接表)属于 comfy-workflow-json 技能的范围,该技能是以编程方式编辑子图的权威依据。本技能关注交互功能本身及其对复用的意义。

适用场景:判断应将工作流的某部分打包为子图、蓝图还是 App Mode 界面。若要以编程方式编辑子图的 JSON 结构,应改用 comfy-workflow-json。

子图基础:子图把选中节点打包为一个可折叠的“超级节点”,并暴露输入/输出槽位。创建方式是选中节点后点击选择工具箱中的子图图标,ComfyUI 会自动暴露相关输入输出。编辑时可双击子图内部空白处(不是控件上)或使用其编辑按钮;导航栏显示当前层级,按 Esc 或点击导航栏退出;右键槽位可重命名、删除或断开连接,标为 1 的槽位是添加新连接的备用位。参数面板(0.3.66+)允许选中子图后点击 Edit Subgraph Widgets,在不进入子图的情况下重排或隐藏其暴露的控件。子图可以嵌套子图,导航栏会跟踪深度。右键选择 Unpack subgraph(或使用工具箱按钮)可将其展平回普通节点。子图可像普通节点一样被绕过、着色和重命名。普通子图保存在单个工作流的 JSON(definitions.subgraphs[])中,复制粘贴到另一工作流时会携带其定义,这属于复制粘贴式复用,适合一次性迁移,但不构成库。

子图蓝图(可复用的“阶段库”):它解决“能否在多个工作流间复用同一阶段”的问题。蓝图把子图提升到节点库,使其能像内置节点一样被拖拽或搜索进任意工作流。发布时选中子图,点击选择工具箱中的书本(发布)图标,或使用选择工具箱菜单中的 Add Subgraph to Library,在对话框中命名(默认使用子图名称),随后它会出现在节点库中,可搜索、可拖拽。复用时将蓝图拖入或搜索进任意工作流,可添加任意多个实例。管理时可在节点库的专用按钮(面板中标注为“Comfy Blueprints”的区域)中编辑或删除蓝图。

关键限制:实例是隔离的快照,而不是实时引用。每个放置的实例都是可自由编辑的独立副本,编辑其中一个不会影响其他实例;更关键的是,编辑主蓝图不会传播到已放入工作流的实例。文档明确指出尚不支持“实例链接、同步编辑”。实际影响是:应把蓝图当作图章或调色板条目,而不是带有实时实例的符号,含义是“插入此阶段的一份新副本”,而非“在所有地方引用同一个规范阶段”。版本管理需要手动进行:改进某个阶段后需重新发布(用新名称或覆盖,前端在覆盖时会警告),现有工作流会保留旧的嵌入副本,直到删除实例并放入新版本,不存在“更新所有实例”的做法。适合做成蓝图的是稳定、很少变动的阶段(如标准采样器环节、扩散核心、参考潜空间块、标准放大并保存的收尾),易变的实验性阶段不适合,否则需要频繁重新盖印。

蓝图的磁盘位置:发布经由 userdata API(POST /userdata/<file>/publish),因此蓝图存储在服务端(自托管安装在 user/default/ 下),对该安装的所有浏览器和工作流共享,而不是困在某个浏览器的本地存储中。它们能在服务重启后存活,也不存在于任何单个工作流的 JSON 中。

App Mode(工作流转为简单应用界面):App Mode(前端内部名称为 linear mode)用专门构建的输入/输出面板隐藏节点图:你选择哪些节点输入成为用户控件、哪些输出被显示,最终用户只需填写表单并点击 Run。自托管和 Comfy Cloud 安装均可用。进入方式为点击左上角图标进入 Enter app mode,或使用画布顶部的面包屑下拉菜单。App Builder 首次会自动打开,共 4 步:Select Inputs(点击节点以暴露为控件,如提示词、滑块、图像上传、模型选择器,并在右侧面板预览)、Select Outputs(选择最终界面中显示哪些 Preview/Save 节点)、Preview(确认组装后的布局)、Set Default View(选择工作流默认以 App 还是 Node Graph 模式打开,然后应用)。运行界面包含右侧输入面板、Run 按钮、左侧边栏(重建、资产、工作流面板)、执行期间的 Cancel-this-run 按钮,以及队列/结果切换;在窄屏或移动端会收起为标签视图。保存用 Ctrl/Cmd + S。分享通过左侧边栏 Share → Create a link 生成编码了工作流、布局和节点绑定的 URL,但分享链接仅限 Comfy Cloud;自托管安装可以构建和运行应用,但 Create a link 不会生成可公开访问的 URL。

App 配置存储在 extra.linearMode 和 extra.linearData 中(与 extra.ds、extra.frontendVersion 等并列)。这对编程式编辑很重要:任何往返处理工作流的转换脚本都必须保留 extra 块,否则会静默剥离应用配置;若用构建脚本从头重建工作流,应用配置会丢失,必须在界面中重新配置(参见 comfy-workflow-json)。

选择建议:要在多个工作流间复用同一阶段(采样器环节、编辑核心),用 Subgraph Blueprint(重新盖印,手动升版本);要把一个大型工作流整理为可读的超级节点,用 Subgraph(不发布);要把完成的工作流以填表式界面交给非图形用户,用 App Mode;要把该应用界面作为公开 URL 分享,需在 Comfy Cloud 上使用 App Mode(自托管无法生成分享链接)。