您现在的位置是:网站首页> AI人工智能
Comfy UI 技术收集
- AI人工智能
- 2025-11-17
- 108人已阅读
Comfy UI 技术收集

AI咒语
####【豆包】
Q:ComfyUI有API支持第三方调用吗
A:...
ComfyUI 支持通过 API 进行第三方调用,其核心通过内置的 HTTP 服务器提供接口,允许外部程序(如脚本、其他应用)提交工作流、触发生成任务并获取结果。
核心 API 能力说明
1.基础交互方式
ComfyUI 启动时会默认开启一个本地 HTTP 服务器(默认端口 8188),通过发送 HTTP 请求(主要是 POST)与服务器交互,支持提交工作流定义、获取生成状态、下载输出结果等。
2.关键 API 端点
提交工作流任务:POST /prompt
接收一个包含工作流定义的 JSON 数据(即 ComfyUI 中导出的工作流 JSON),触发图像生成任务,返回一个 prompt_id 用于追踪任务状态。示例请求体(简化):
json
{
"prompt": {
"3": {
"class_type": "KSampler",
"inputs": {
"seed": 12345,
"steps": 20,
"cfg": 7.0,
// 其他节点参数...
}
},
// 其他节点定义...
}
}
查询任务状态:GET /history/<prompt_id>通过 prompt_id 查询任务是否完成,返回结果包含生成的图像数据(Base64 编码或文件路径)。
获取输出图像:GET /view?filename=<filename>&type=output直接获取生成的图像文件(需从历史记录中获取 filename)。
第三方调用示例
以 Python 为例,使用 requests 库调用 API 生成图像的基本流程:
python
运行
import requests
import json
# ComfyUI 服务器地址
COMFYUI_URL = "http://localhost:8188"
# 工作流 JSON(可从 ComfyUI 中导出)
workflow = {
# 完整的工作流定义...
}
# 提交任务
response = requests.post(f"{COMFYUI_URL}/prompt", json={"prompt": workflow})
prompt_id = response.json()["prompt_id"]
# 轮询任务状态
import time
while True:
history = requests.get(f"{COMFYUI_URL}/history/{prompt_id}").json()
if prompt_id in history:
# 获取生成的图像数据(Base64)
output_node_id = next(iter(history[prompt_id]["outputs"].keys()))
image_data = history[prompt_id]["outputs"][output_node_id]["images"][0]["data"]
break
time.sleep(1)
# 处理图像数据(如保存为文件)
import base64
from PIL import Image
from io import BytesIO
image = Image.open(BytesIO(base64.b64decode(image_data)))
image.save("output.png")
注意事项
工作流 JSON 格式:API 提交的工作流需严格遵循 ComfyUI 的节点定义格式(可在 ComfyUI 中通过「Save (API Format)」导出)。
版本兼容性:不同版本的 ComfyUI 可能调整 API 细节,建议参考官方文档或 GitHub 仓库 的最新说明。
扩展支持:社区有多个插件(如 ComfyUI-API-Wrapper)可简化 API 调用,提供更友好的接口封装。
通过上述方式,第三方程序可以灵活集成 ComfyUI 的图像生成能力,实现自动化工作流或自定义交互逻辑。
喂饭级教程!ComfyUI本地部署超详细指南
上一篇:优秀的开源项目