跳转至

ComfyUI 生态与替代

一、这页讲什么

本地部署不是唯一选择。这一页给出三条路线的分界:本地 ComfyUI、在线出图服务、直接用接口跑;以及本地实例怎样被程序调用。

读完能做到:按需求判断该不该本地部署;用 curl 把一张 API 格式工作流提交给本地实例并取回图片;说清本地部署的维护成本在哪。

二、开始之前

项 内容
版本与日期 ComfyUI 2026-10 最新版;2026-10-21 核实
预计耗时 25 分钟
前置 04-节点与工作流已完成,会导出 API 格式
风险级别 低:调用的是本机服务

三、动手做

1. 先判断该不该本地部署

情况 建议 理由
只是试几次效果 在线服务 不用装、不用下模型
固定流程、要批量出图 本地 + 接口 可控、可排队、成本固定
机器没有 NVIDIA 显卡 在线服务 CPU 出图慢到不可用
模型有合规或保密要求 本地 数据不出机器
多人共用一套流程 本地服务器 + 反向代理 一处部署、多人用,见反向代理与 HTTPS
依赖大量第三方节点 本地 在线服务未必装得下这些节点

看到这个就算成:能对着一个具体需求说出选哪条路,以及另一个选项为什么不合适。

2. 导出 API 格式工作流

在界面里用「Save (API Format)」导出 JSON。这份 JSON 是提交给接口的输入,与平时存的前端工作流不是同一种格式。

看到这个就算成:文件里是节点 id 到输入的映射,没有画布坐标一类前端信息。

3. 提交任务

$ curl -s -X POST http://127.0.0.1:8188/prompt \
    -H 'Content-Type: application/json' \
    -d @workflow_api.json > resp.json
$ cat resp.json
{"prompt_id": "c9f1a2b3-...", "number": 0, "node_errors": {}}

看到这个就算成:返回里有 prompt_id,node_errors 是空的。返回 400 时看 node_errors,里面会写哪个节点的哪个输入不合法。

4. 查结果

$ curl -s http://127.0.0.1:8188/history/c9f1a2b3-...
{"c9f1a2b3-...": {"prompt": [0, "c9f1a2b3-...", {}, {}, []], "outputs": {"9": {"images": [{"filename": "ComfyUI_00001_.png", "subfolder": "", "type": "output"}]}}}}

执行完成后,history 里该 prompt_id 记录的输出节点会带文件名与子目录。取图用 /view:

$ curl -s "http://127.0.0.1:8188/view?filename=ComfyUI_00001_.png&subfolder=&type=output" -o out.png
$ file out.png
out.png: PNG image data, 1024 x 1024, 8-bit/color RGB, non-interlaced

看到这个就算成:out.png 能打开,就是刚才那张图。

5. 拿进度

/ws 是 WebSocket,推送队列与执行进度;/queue 看当前排队与正在跑的任务;/object_info 列出所有可用节点及其输入定义,写调用脚本时用 /object_info 校验参数。

看到这个就算成:能用 /queue 判断任务是在排队还是已经跑完,不必一直猜。

6. 判断维护成本

本地部署要长期维护的部分:升级、节点兼容、显存、端口与访问控制、模型来源。只出几次图时,这些成本明显高于收益。

看到这个就算成:能说出这台机器上「谁负责升级、谁负责磁盘、占哪个端口」三个问题的答案。

四、做完怎么确认

  1. 能用 curl 提交一个任务并拿到图片。
  2. 能读懂 node_errors 并定位到具体节点。
  3. 能说出本机实例的端口、访问范围与升级负责人。
  4. 对一个新需求,能给出「本地 / 在线 / 接口」中的选择与理由。

五、卡住了怎么排查

症状 多半是 先验证 处理
提交返回 400 提交的是前端格式,或缺必需节点 看 node_errors 里的节点 id 重新导出 API 格式;补装节点
Connection refused 服务没起,或端口不是 8188 $ curl -s http://127.0.0.1:8188/queue 启动服务;核对 --port
提交成功但一直不出图 任务在排队,或卡在缺模型 /queue、/history 一起看 清队列;补齐模型
/view 取不到图 文件名或 type 参数不对 /history 里的输出记录 按记录里的 filename、subfolder、type 拼
在线服务返回 401/403 缺 API Key 或额度用尽 看响应体里的错误信息 补凭证;换服务
换平台后工作流跑不通 节点不是标准实现 对比节点清单 用核心节点重画关键链路

六、为什么这样能成

接口提交的是图,不是参数集合。 /prompt 收到的是整张节点图的 JSON,服务端按依赖顺序执行。所以换平台时要换的是「图怎么表达」,不是几个参数名。

API 格式与前端格式分工不同。 前端格式带画布信息,供人看;API 格式只保留执行所需的结构,供程序提交。两者互相不能直接替换。

本地部署买的是控制权。 模型、节点、数据都在自己机器上,代价是升级、显存、访问控制都要自己维护。在线服务买的是省事,代价是模型与流程受服务方限制。

七、边界与替代

  • 不做商业选型:具体用哪家在线服务、价格怎么算,按实际预算与合规要求定,本页只给判断框架。
  • 不教提示词与美学:出图质量属于经验,写在经验。
  • 访问控制另做:把实例暴露到组网或公网时,认证与域名见 反向代理与 HTTPS。
  • 别把本地实例当无成本:机器、电费、维护时间都是成本,短期需求直接用在线服务更划算。

八、官方资料

核实日期:2026-10-21。