
我在尝试部署 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 125 天前 抓包正常 ComfyUI 页面发起的/prompt 请求,看看请求体是什么数据结构就知道了 |
2 supersadmin 125 天前 可以试试创建一个 websocket:ws://{host}/ws?clientId={client_id}, 再调用 http://{host}/api/prompt ,参数:{"prompt": prompt, "client_id": client_id}, 其中 prompt 是使用的 ComfyUI 上的 workflow 导出的 API 文件内容, 后续生成的进度、结果就都在 websocket 里面接受处理。 |
3 lijunjieone 124 天前 demo 中 json 有问题,是旧版本的,你用最新版本导出一个最新的 json,复制进去就可以用了 |
4 lijunjieone 124 天前 我基于 comfyui 的 api 搞了一个网站 https://www.hubinnovation.tech/ |