Generated with sparks and insights from 2 sources

img6

img7

img8

img9

img10

img11

Introduction

  • ComfyUI API的主要优势包括自带队列、支持WebSocket、无需关心插件是否有开放API接口。

  • 通过WebSocket可以实时获取绘图任务的执行状态和进度。

  • ComfyUI的API使用POST /prompt接口来下发所有绘图任务,返回任务ID信息。

  • WebSocket连接的URL格式为/ws?client_id=XXXXXXXX,其中client_id为任务ID。

  • WebSocket主要传输两种数据格式:文本数据(任务变更、执行步骤、进度)和二进制数据(图片预览)。

  • 通过GET /history/{prompt_id}接口可以获取绘图任务的历史记录和最终生成的图片信息。

  • 图片的在线预览接口为GET /view,通过传递图片名称和存放位置来获取图片。

ComfyUI API优势 [1]

  • 自带队列:ComfyUI API自带任务队列管理,简化了开发者的工作。

  • 支持WebSocket:可以实时获取任务的执行状态和进度。

  • 无需关心插件API接口:只要插件在浏览器中可以正常使用,接口就一定可以使用。

  • 开发人员只需关心绘图流程的搭建:简化了开发流程。

  • 切换模型、进度查询方便:通过API可以轻松实现。

  • 支持中断绘图任务:可以随时中断正在进行的绘图任务。

  • 无需繁琐的base64图片转换:简化了图片处理流程。

绘图接口使用 [1]

  • 接口地址:POST /prompt

  • 请求参数:client_id(任务ID),prompt(任务参数,JSON格式)。

  • 返回参数:prompt_id(任务ID),number(当前任务序号),node_errors(错误信息)。

  • 使用说明:client_id用于标记任务发起者,prompt为JSON数据,包含绘图参数。

  • 示例:{"prompt_id": "bd2cfa2c-de87-4258-89cc-d8791bc13a61", "number": 501, "node_errors": {}}

WebSocket连接 [1]

  • 连接URL:/ws?client_id=XXXXXXXX

  • client_id:任务ID,用于标记WebSocket连接的用户。

  • WebSocket只需做监听处理:无需通过WebSocket向ComfyUI发送任何消息。

  • WebSocket数据解析:主要有文本数据和二进制数据。

  • 文本数据:通知任务变更、当前执行步骤、进度等信息。

  • 二进制数据:图片预览信息。

WebSocket数据格式 [1]

  • 文本数据:主要通知任务变更、当前执行步骤、进度等信息。

  • 任务变更通知:{"type":"status","data":{"status":{"exec_info":{"queue_remaining":7}}}}

  • 当前任务开始执行:{"type":"execution_start","data":{"prompt_id":"3935f7c3-ec38-4d94-843f-86fe86c6d384"}}

  • 当前任务执行步骤信息:{"type":"executing","data":{"node":"5","prompt_id":"3935f7c3-ec38-4d94-843f-86fe86c6d384"}}

  • 当前进度信息:{"type":"progress","data":{"value":1,"max":10}}

  • 绘图结束:{"type":"executing","data":{"node":null,"prompt_id":"37099310-a790-44f4-8d13-4f4d5f69c891"}}

  • 二进制数据:图片预览信息。

获取历史记录 [1]

  • 接口地址:GET /history/{prompt_id}

  • 请求参数:prompt_id(任务ID)。

  • 返回数据:包含任务的历史记录和生成的图片信息。

  • 示例:{"37099310-a790-44f4-8d13-4f4d5f69c891": {"outputs": {"18": {"images": [{"filename": "ComfyUI_temp_slqio_00001_.png", "subfolder": "", "type": "temp"}]}}}}

  • 图片信息:通过拼接图片信息获取图片的URL访问地址。

  • 示例URL:"http://127.0.0.1:8188/view?filename=ComfyUI_00702_.png&type=output"

图片在线预览 [1]

  • 接口地址:GET /view

  • 请求参数:filename(图片名称),type(图片存放位置的文件夹),subfolder(子文件夹,可选),preview(预览,可选),channel(无,可选)。

  • 示例请求:{"filename": "ComfyUI_00702_.png", "type": "output"}

  • 示例URL:"http://127.0.0.1:8188/view?filename=ComfyUI_00702_.png&type=output"

  • 用途:用于在线预览上传图像、生成图像、蒙蔽图像等。

  • 图片访问:通过拼接图片信息获取图片的URL访问地址。

img6

Related Videos

<br><br>

<div class="-md-ext-youtube-widget"> { "title": "\u3010\u4e2d\u6587\u7ffb\u8bd1\u914d\u97f3\u3011\u4f7f\u7528 ComfyUI API\u3001Python\u3001WebSocket \u548c ...", "link": "https://www.youtube.com/watch?v=NAqk9tCLDWs", "channel": { "name": ""}, "published_date": "May 17, 2024", "length": "" }</div>

<div class="-md-ext-youtube-widget"> { "title": "Mastering ComfyUI: Getting started with API - TUTORIAL", "link": "https://www.youtube.com/watch?v=va8Jkc7o9d4", "channel": { "name": ""}, "published_date": "Feb 4, 2024", "length": "" }</div>