传统方法(如 ComfyAgent)将工作流构建视为 扁平化的 token 解码任务,导致生成的节点图容易出现 结构错误(如节点遗漏、连接错误),且难以适应不同任务的需求。
ComfyMind 引入 语义工作流接口(SWI),将底层节点图抽象为 模块化的功能单元,并用自然语言描述其输入、输出和功能,使 LLM 能在 语义层面组合工作流,减少低级语法错误。
现有系统(如 ComfyAgent)生成工作流后直接执行,无法在运行时检测错误或调整流程,导致失败后必须完全重新生成,效率低下。
ComfyMind 采用 搜索树规划 + 局部反馈执行,将任务分解为子任务(树状结构),并在执行时 动态监测各模块的输出。如果某一步失败,系统仅 调整当前子任务的模块,而非重做整个流程,显著提升鲁棒性。
传统工作流系统依赖手动编码节点图,新增模型或任务时需重新设计整个流程,扩展性差。
ComfyMind 的 SWI 模块化设计 允许用户通过自然语言描述新增功能,系统能自动整合新模块到现有工作流中,使社区贡献的模型(如新的 ControlNet、LoRA 等)能快速适配。
ComfyMind 通过 语义级规划 + 执行反馈,在多个基准测试(如 ReasonEdit)上达到 接近 GPT-Image-1 的水平,同时保持 开源可扩展性。(高层语义规划+多智能体协作+局部替换)
ComfyAgent 精心构建大规模节点文档数据集、设计复杂协作AI系统、采用伪代码替代 JSON 增强工作空间表示,并运用 RAG 技术,但仍面临工作流语法错误和关键节点缺失等问题,导致其在 ComfyBench 上的通过率仅为56%。这一低通过率的根本原因在于:底层表示对LLM的脆弱性,以及将工作流构建概念化为基于 token 的平面解码任务,难以有效建模模块化与层次结构。
语义工作流接口(SWI):
- 自然语言函数:用自然语言描述的功能接口替代底层JSON规范作为中间表示
- 元数据标注:每个原子工作流封装为功能单元,标注其用途、必需参数和使用方法
- 智能调度:规划智能体根据元数据选择最佳功能单元,传递必要参数(如提示词、参考图)和高级约束条件
- 动态适配:执行智能体将选定功能映射为对应JSON表示并注入参数,LLM对JSON进行自适应参数级调优以满足附加约束
该抽象设计使LLM完全在语义层面操作,规避了底层语法复杂性和模块化建模难题,显著提升执行鲁棒性。SWI还大幅降低对细粒度节点文档的依赖。
规划树结构:
- 节点:代表负责特定子任务的局部规划智能体;
- 边:表示执行智能体对 SWI 函数的调用及结果传递;
- 完整路径:从根节点到叶节点的路径生成最终视觉输出。
动态执行流程:
- 规划阶段:每个规划节点基于当前工作区状态(文本/图像/上下文/可用工作流文档),生成 SWI 函数调用链,但仅执行链中首个函数;
- 执行阶段:执行智能体将函数转换为 SWI 定义的规范 JSON 格式,根据高层约束进行轻量级参数调整,并通过 ComfyUI 平台运行;
- 反馈闭环:视觉语言模型(VLM)解析生成内容,其语义描述与更新后的任务定义共同构成下一节点的工作区输入。
分层容错机制: - 成功终止:若子任务可通过单步操作完成,则触发评估智能体检查语义对齐度和感知质量;
- 局部回滚:失败时仅向父节点传递错误信号,在当前层级修正策略,避免全局重启,更换模型时无需重新加载基础资源(如VAE解码器);
- 策略优化:父节点记录失败结果并调整后续规划,无可用选项时错误信号才向上传播。每个子任务完成后保存GPU显存/中间结果。
实验