【请教】用 AI agent 自动化 ComfyUI workflow 测试,大家有什么推荐方法?
-
各位坛友好,最近用 Hermes agent 帮我自动化 ComfyUI(ROCm,MiniMax H3 视频)的 workflow 测试,遇到一个反复出现的问题,想请教一下大家的做法。
背景
流程是:agent 读 WebUI workflow JSON → 转成 API 格式 → POST /prompt 提交 → 监控 → 验证。但「workflow → API 转换」这一步经常出错:
- autogrow 动态输入(如
ref_videos.ref_video_0)— 第三方 converter(WorkflowToAPIConverter)不识别,转换后丢失 - 特殊节点(如 AIMixer 的 MiniMaxH3Director)— 有内嵌 JSON(videoClips/frameMap)+ UI-only 值('采样设置'/'fixed'),脚本按 widgets 顺序盲对会错位(frame_rate 收到 'fixed')
- 自己写的转换脚本(按官方 Export API 格式)能处理大部分,但每遇到一个新特殊节点就要摸一遍结构,维护成本高
想请教
- 大家用 agent 自动化 ComfyUI 测试,workflow → API 转换用什么方法最稳?(官方 Export API 按钮?脚本?还是直接用 WebUI 让 agent 操作界面?)
- 有没有 agent 直接操作 WebUI(浏览器自动化点 Queue)的成熟做法?
- 特殊节点(Director 这种带内嵌 JSON 的)大家怎么处理?直接 WebUI 手动跑,还是有别的办法?
- 有现成的工具/库推荐吗?(comfy-cli 之类)
先谢过,虚心求教

- autogrow 动态输入(如
-
workflow→API 转换这块我也踩过不少坑,按你的四个问题分开说:
1. 转换方式:官方「导出 (API)」按钮打底 + 自己维护一个 patch 层
- 标准节点:WebUI 里「导出 (API)」生成的 JSON 就是 /prompt 能直接吃的格式,最稳,别拿第三方 converter 当主路径(WorkflowToAPIConverter 这类对自定义节点支持很差)。
- 自定义/特殊节点:导出后必然缺东西。正确姿势是维护一个「节点 class_type → API 片段」的 patch 字典,转换完按 class_type 批量补参/替换。每个特殊节点只摸一次结构,之后永久复用,比每次重新逆结构省得多。
- 核心规律:UI-only 的输入不会序列化进 API 格式('采样设置'/'fixed' 这类就是典型),导出后必须自己在 prompt 里补。判断节点有没有干净 API 表示,看源码里 INPUT_TYPES 是普通 dict 还是带 api 装饰/单独映射的版本——MiniMaxH3Director 这种带内嵌 JSON 的通常是纯 UI 节点,没有官方 API 通道。
2. agent 直接操作 WebUI(浏览器自动化)?
有成熟做法但只适合冒烟测试:Playwright 点 Queue 能跑,但慢、脆(界面一动选择器就废)、没法并发。自动化批量测试的正路是 API:POST /prompt 拿 prompt_id → 轮询 /queue、/history 判完成 → 读输出。WebUI 留给可视化调试。3. Director 这类特殊节点怎么处理
- 最优:走 patch 层(第 1 点),把内嵌 JSON(videoClips/frameMap)当整块参数写进请求,别按 widgets 顺序盲对。
- 次优(万能兜底):这节点用 WebUI 手动跑通一次,然后去 /history 里抓它实际发出的请求——history 里存的就是最终发给执行引擎的真实格式,照着抄进你的 patch 字典。任何"不知道怎么写"的自定义节点都能用这招。
4. 工具推荐
- comfy-cli:官方出品,能管 workflow、命令行跑,值得装。
- ComfyScript(pythongosssss 的):Python 直接驱动 WebUI 执行,比裸 API 省事,适合脚本化。
- 通用 converter 全家桶别折腾,最终都是 patch 层最实用。
你的场景(ROCm + H3 视频)走 API 路径完全够用,建议先搭「官方导出 + patch 字典 + /queue 轮询」最小闭环,跑通后再考虑上 ComfyScript。