ComfyUI 分为“画面”和“执行引擎”

首先需要知道的是,ComfyUI 分为 画面 和 执行引擎。
平时操作的节点画面,是用来编辑 workflow(工作流)和按下执行按钮的前端。真正生成图像或视频的,是在背后运行的 ComfyUI 服务器。
在 什么是 API? 里也讲过,这里简单回顾一下。
- 节点画面:人类用来制作 workflow 的画面
- ComfyUI 服务器:接收并执行 workflow 的引擎
- API:外部程序向服务器发送指令的入口
只要能把执行所需的信息传给服务器,节点画面并不是必须的。
让 AI 使用 ComfyUI 的方法有两种
1. 通过 API 使用已经能运行的 workflow
第一种方法,是人类先准备好一个能运行的 workflow,再让 AI 通过 API 执行它。
这和 通过 API 运行工作流 中介绍的方法很接近。
与其说是让 AI 自由使用整个 ComfyUI,不如说是把 用 ComfyUI 做好的一个功能,当作工具交给 AI。
这个方法的弱点是灵活性。比如添加节点、改变节点连接顺序这类大幅修改,基本不适合用这种方法处理。
不过,prompt、seed 这类参数可以通过 API 修改,所以让它用各种 prompt、各种尺寸生成图像,是完全可以做到的。
2. 让 AI 从制作 workflow 开始
第二种方法,是让 AI 自己制作 workflow。
比如让它“做一个 Flux 图像编辑 workflow”或“用这张图生成 mask 并合成”,由 AI 思考节点结构并组出 workflow。
听到 AI 和 ComfyUI 的组合,很多人可能会先想到这种方式,但它其实相当困难。
让 AI 从制作 workflow 开始很难
ComfyUI 的 workflow 是 JSON,所以看起来好像可以像写程序一样,让 AI 直接生成。
但实际上,workflow 非常依赖每个人自己的 ComfyUI 环境。
是否安装了 custom node、是否有对应模型文件、节点规格现在是否还一致……这些条件不满足,就无法运行。
在 AI 性能之前,AI 无法掌控的地方,就已经有太多会让行为不稳定的因素。
当然,将来这类工作也许会变得可行。
但至少现在,先让 AI 使用人类已经确认能运行的 workflow,会更现实。
通过 API 来使用
通过 API 来使用时,思路很简单。
- 启动 ComfyUI
- 将能运行的 workflow 保存为 API 格式
- 把 workflow 交给 AI Agent
- 指示它在这个 workflow 能做的范围内完成任务
通过 API 运行工作流 介绍了如何通过 API 执行 ComfyUI。
不过,细节上的 API 写法可以交给 AI 来处理。
先启动 ComfyUI
API 并不是“让你不需要启动 ComfyUI”的机制。
在本地使用时,和平时一样启动 ComfyUI,并确保可以通过 http://127.0.0.1:8188 打开。
AI Agent 会向这个服务器发送 HTTP 请求。
可以把它理解为:AI 不通过节点画面,而是从外部读取 workflow 并按下 Run。
将能运行的 workflow 保存为 API 格式
接下来,把想让 AI 使用的 workflow 保存为 API 格式。
普通 workflow JSON 中还包含节点位置、UI 用信息等内容。
API 格式的 JSON,则是用来告诉 ComfyUI 服务器“执行这个”的形式。
- 在 ComfyUI 的节点 UI 中打开想让 AI 使用的 workflow
- 从菜单选择
File→ Export (API) - 用容易理解的名字保存(例:
SD1.5_text2image_API.json)
当然,这个 workflow 必须能在你自己的环境中实际运行。
请先下载好模型等必要文件,并实际运行确认一次。
把 workflow 交给 AI Agent,并给出指示
把 workflow 交给 AI Agent,并不需要什么特别操作。
只要把 API 用 workflow JSON 放在 AI Agent 能读取的位置即可。
如果是 Codex,用 VS Code 打开包含这些 workflow JSON 的文件夹就可以了。
例如,在文件夹里放入下面两个文件。
Z-Image-Turbo_api.json:用于图像生成Flux.2_klein_9b_api.json:用于图像编辑
然后像这样对 Codex 下指示。
用 Z-Image-Turbo 生成一张站在公园里的男性图像,
再用 Flux.2 klein 9B 把这个人的衣服改成蓝色毛衣,
并保存到 output 文件夹。
之后 Codex 会读取 workflow,替换必要的 prompt 和输入图像,并提交给 ComfyUI API。

workflow 分小一点会更容易让 AI 使用
这是我自己提出的概念,Readable Nodes 大致就是把 workflow 组得简单、易读的想法。
让 AI 使用时,基本也是一样。
我觉得 workflow 小而简单 时会更容易处理。

比如,把下面这些处理放进一个 workflow 里。
- 图像生成
- 放大
- 脸部修正
这种情况下,一旦执行,就会从头到尾全部跑完。
即使最初生成的图像不理想,放大和修正也会继续执行。
如果把它拆成小 workflow 呢?
- 用
text2image生成候选图像 - 只把好的结果送进
upscale - 只把需要的结果交给
face fix - 之后也可以只执行
upscale
人类自己用的时候,整合在一起有时会更轻松。可是让 AI 使用时,workflow 之间的衔接可以交给 AI 来做。
这样一来,与其准备 All in one 的 workflow,不如准备更细、更小的最小 workflow,AI 会更灵活地使用它们。
关于 MCP
上面的方法,是让 AI 写一段使用 API 的简单程序并执行。它能用,但从 AI native 的角度看,多少有些不够顺手。
于是,也可以考虑转换成 MCP。MCP 是一种向 AI Agent 提供工具和数据的通用协议。
例如,可以考虑下面这样的 MCP tool。
run_text2imagerun_image2imagerun_upscaleget_comfyui_queueget_output_image
从 AI 的角度来看,它不需要处理“把 JSON POST 到 HTTP /prompt”这样的细节,只要调用 run_text2image 这个工具即可。
比如在这个 tool 内部,可以读取 API 格式的 workflow,替换必要的值,然后提交到 ComfyUI 的 /prompt。
不过,它主要只是让 AI 稍微更容易使用而已,并不会大幅改变能做的事情。
现阶段没有必要勉强使用。