我在尝试部署 ComfyUI ,尝试启动后通过 API 调用 comfyui 的接口
前置:我在 comfyui 页面编辑后可成功运行并生图
但是通过 API 调用,在第一步就倒下了,调/prompt 接口 prompt 参数是 workflow.json ,代码如下:
# 读取 workflow.json
with open(workflow_path, "r", encoding="utf-8") as f:
workflow = json.load(f)
# 如果有输入图片,上传并替换 workflow 参数
if input_image:
uploaded_filename = self.upload_image(input_image)
# 注意:具体替换哪个节点要看你 workflow.json 的结构
# 这里假设 workflow 里有一个节点的输入是 "image"
for node in workflow:
# 确保 node 是 dict
if isinstance(node, dict) and node.get("type") == "LoadImage":
# 替换 widgets_values[0] 为上传后的文件名
if "widgets_values" in node and len(node["widgets_values"]) > 0:
node["widgets_values"][0] = uploaded_filename
print(f"[INFO] 已替换 workflow 输入图: 节点 {node.get('id')}")
break
# 给任务分配唯一 ID
prompt_id = str(uuid.uuid4())
payload = {"prompt": workflow}
# 提交任务
url = f"{self.api_base}/prompt"
resp = requests.post(url, json=payload)
print("URL:", url)
print("请求 payload:", payload)
print("HTTP 状态码:", resp.status_code)
print("响应内容:", resp.text)
resp.raise_for_status()
self.log(f"[INFO] 任务提交成功, prompt_id={prompt_id}")
一请求就报错
HTTP 状态码: 400
响应内容: {"error": {"type": "invalid_prompt", "message": "Cannot execute because a node is missing the class_type property.", "details": "Node ID '#id'", "extra_info": {}}, "node_errors": {}}
实在不知道是什么原因,令人头大,希望有经验的大佬分享一下🫡
![]() |
1
Parva 10 天前
抓包正常 ComfyUI 页面发起的/prompt 请求,看看请求体是什么数据结构就知道了
|
2
supersadmin 10 天前
可以试试创建一个 websocket:ws://{host}/ws?clientId={client_id},
再调用 http://{host}/api/prompt ,参数:{"prompt": prompt, "client_id": client_id}, 其中 prompt 是使用的 ComfyUI 上的 workflow 导出的 API 文件内容, 后续生成的进度、结果就都在 websocket 里面接受处理。 |
3
lijunjieone 10 天前
demo 中 json 有问题,是旧版本的,你用最新版本导出一个最新的 json,复制进去就可以用了
|
4
lijunjieone 10 天前
我基于 comfyui 的 api 搞了一个网站 https://www.hubinnovation.tech/
|