stable diffusion comfyui的api使用教程

这篇具有很好参考价值的文章主要介绍了stable diffusion comfyui的api使用教程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、为什么要使用comfyui的api?对比webui的api,它有什么好处?

1、自带队列
2、支持websocket
3、无需关心插件是否有开放api接口,只要插件在浏览器中可以正常使用,接口就一定可以使用
4、开发人员只需关心绘图流程的搭建
5、切换模型、进度查询soeasy
6、轻松实现图片生成时的渐变效果
7、支持中断绘图任务
8、无需繁琐的base64图片转换

其实我们之前一直都是用web-ui的api,最近web-ui被我们给废弃掉了,主要是因为comfyui基本上解决了webui做开发所有的弊端,首先列队的问题不用去管,它自己有列队,插件这块是最方便的,用上comfyui以后就不要去管插件是怎么调用的,只要你在工作流里面用了什么插件,保存为api之后,他直接下发后台就会自动去运行,也不用去管插件具体怎么调用。如果是webui,有些比较良心的插件,直接把接口写好,然后暴露出来, 如果没写的话,你用起来就会非常的麻烦,还得去研究它是怎么去调用的。所以 ,小伙伴们,别再执着用webui的api了,那个确实反人类,假如做开发的话问题会很多,比较烦人,就像获取任务进度,还有这个线程锁,切换模型这块都非常繁琐。我为了研究那东西 ,看代码看得头都大了 ,整整研究了一个月才把代码改好。

二、接口详解

本文主要介绍 stable diffusion API 调用,准确来说是对 stable diffusion comfyui 的 API 调用。需要apifox接口文件的可以查看:
https://gitee.com/BTYY/wailikeji-chatgpt/blob/master/comfyui-api.md

1、绘图接口:POST /prompt

注意:该接口只做绘图任务的下发,然后返回任务ID信息。并不会直接返回最终的结果图!

与webui的api不同的是,comfyui的api并没有单独区分文生图、图生图的接口,而是所有的绘图任务的下发全部都使用POST /prompt。那具体是文生图、图生图、又或者是换脸、倒推关键词等,取决于你的参数!

需要上传的参数只有两个

请求参数
名称 类型 必选 说明
client_id string 任务ID,由客户端生成,用于标记任务是谁发起的
prompt json 任务参数
返回参数
名称 类型 说明
prompt_id string 任务ID
number int 当前任务序号,可用于后续获取需要等待任务数的计算
node_errors json 错误信息

返回示例

{
    "prompt_id": "bd2cfa2c-de87-4258-89cc-d8791bc13a61",
    "number": 501,
    "node_errors": {}
}
使用说明

client_id:任务ID,由客户端生成,用于标记任务是谁发起的,相当于告诉comfyui,该绘图任务是由用户A发起的,后续comfyui就会通过websocket将属于用户A的绘图信息推送给你

prompt:prompt所传的是一个json数据,它是由comfyui浏览器通过保存api生成的json数据,如下图
stable diffusion comfyui的api使用教程,stable diffusion,comfyui api,webui api,ai绘图源码,ai绘画源码,ai作画源码,java

至于正反、提示词、模型、vae、图片尺寸、批次、提示词相关性、随机种子、采样器、降噪值等参数,只需替换json中对应的参数为用户上传的参数即可
stable diffusion comfyui的api使用教程,stable diffusion,comfyui api,webui api,ai绘图源码,ai绘画源码,ai作画源码,java
比如用户上传的图片尺寸是768*512,那你只需将json数据中的width改为768、height改为512即可,其他的参数也是同样的道理!

2、websocket:/ws?client_id=XXXXXXXX

client_id后面的参数即为上面/prompt接口中上传给comfyui的client_id,假如没有上传client_id,那comfyui就不知道连上该websocket的用户是谁,也就无法进行信息推送!comfyui拿到client_id后,即可知道当前是哪个用户,后续就会通过websocket将属于该用户的绘图信息精准推送给他

注意:websocket只需做监听处理,无需通过websocket向comfyui发送任何消息

websocket数据解析:
主要有两种数据格式:
1、文本数据,文本数据主要通知以下几个绘图信息:
通知任务变更、当前执行的步骤、进度
2、二进制数据,即图片预览信息

(一)文本数据详解:
(1)任务变更通知:
{
    "type":"status",
    "data":{
        "status":{
            "exec_info":{
                "queue_remaining":7
            }
        }
    }
}

当你收到type为status信息时,这是comfyui在告诉你,当前任务数发生变更,queue_remaining是指当前还有多少个任务需要处理。

注意,此处的queue_remaining并不是告诉你在你的任务之前还有多少个任务需要处理!而是总的!
所以,如果你也想像我一样(见下图),当还没轮到你的绘图任务时,显示还需等待多少个任务,你就需要借助comfyui的另一个接口:GET /queue:获取详细任务队列信息,正在运行的以及挂起的。该接口会返回挂起的任务信息,其中有prompt_id信息和number信息,你可以根据这number信息获取到当前任务排在第几位。具体如何调用,这里就不进行展开!

stable diffusion comfyui的api使用教程,stable diffusion,comfyui api,webui api,ai绘图源码,ai绘画源码,ai作画源码,java

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

当你收到type为execution_start信息时,这是comfyui在告诉你,你的任务id,prompt_id为“3935f7c3-ec38-4d94-843f-86fe86c6d384”的任务当前正在被执行

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

当你收到type为executing信息时,这是comfyui在告诉你,你的任务id,prompt_id为“3935f7c3-ec38-4d94-843f-86fe86c6d384”的任务当前正在执行节点5的步骤,此处你可以解析到前端,显示当前执行的步骤名称,如下图所示
stable diffusion comfyui的api使用教程,stable diffusion,comfyui api,webui api,ai绘图源码,ai绘画源码,ai作画源码,java

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

当你收到type为progress信息时,这是comfyui在告诉你,当前步骤执行的进度,value是当前的步数,max是总的步数,如下图所示
stable diffusion comfyui的api使用教程,stable diffusion,comfyui api,webui api,ai绘图源码,ai绘画源码,ai作画源码,java

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

绘图结束时,type类型仍然是executing,和前面的(3)是一样的,区别主要在于node为null,也就是当type=executing,且node=null的时候,说明流程已经跑完,此时需要通过接口GET /history/{prompt_id}获取输出的图片信息。底下是通过history获取到的图片信息:

{
    "37099310-a790-44f4-8d13-4f4d5f69c891": {
    	略。。。。。。。。。。
        "outputs": {
            "18": {
                "images": [
                    {
                        "filename": "ComfyUI_temp_slqio_00001_.png",
                        "subfolder": "",
                        "type": "temp"
                    },
                    {
                        "filename": "ComfyUI_temp_slqio_00002_.png",
                        "subfolder": "",
                        "type": "temp"
                    },
                    {
                        "filename": "ComfyUI_temp_slqio_00003_.png",
                        "subfolder": "",
                        "type": "temp"
                    },
                    {
                        "filename": "ComfyUI_temp_slqio_00004_.png",
                        "subfolder": "",
                        "type": "temp"
                    }
                ]
            },
            "22": {
                "images": [
                    {
                        "filename": "ComfyUI_temp_rfvdr_00001_.png",
                        "subfolder": "",
                        "type": "temp"
                    },
                    {
                        "filename": "ComfyUI_temp_rfvdr_00002_.png",
                        "subfolder": "",
                        "type": "temp"
                    },
                    {
                        "filename": "ComfyUI_temp_rfvdr_00003_.png",
                        "subfolder": "",
                        "type": "temp"
                    },
                    {
                        "filename": "ComfyUI_temp_rfvdr_00004_.png",
                        "subfolder": "",
                        "type": "temp"
                    }
                ]
            },
            "24": {
                "images": [
                    {
                        "filename": "ComfyUI_00702_.png",
                        "subfolder": "",
                        "type": "output"
                    },
                    {
                        "filename": "ComfyUI_00703_.png",
                        "subfolder": "",
                        "type": "output"
                    },
                    {
                        "filename": "ComfyUI_00704_.png",
                        "subfolder": "",
                        "type": "output"
                    },
                    {
                        "filename": "ComfyUI_00705_.png",
                        "subfolder": "",
                        "type": "output"
                    }
                ]
            }
        }
    }
}

outputs中的内容就是最终生成的图片信息,我们通过将图片信息进行拼接,即可获取到图片的url访问地址,
例如:ComfyUI_00702_.png这张图片,其拼接后的访问地址就是:
http://127.0.0.1:8188/view?filename=ComfyUI_00702_.png&type=output

该地址实际是使用了comfyui的view接口

3、图片的在线预览接口:GET /view

图片的在线预览接口(上传图像,生图图像,蒙蔽图像,均通过该接口预览)

请求参数

名称 位置 类型 必选 说明
filename query string 图片名称
type query string 图片存放位置的文件夹(input为长传图片,output为生成的图片)
subfolder query string 子文件夹(没有可不填)
preview query string 预览
channel query string

在前面的websocket中,我们通过history获取最终的图片信息,我们将图片信息进行拼接,即可获取到图片的url访问地址,就是通过该接口获取到图片

(二)二进制数据详解:

二进制数据就是在绘图过程中,如果在采样器中有开启图片预览,则comfyui会以二进制数据的方式推送给你,如果没有开启,则没有,如下:
stable diffusion comfyui的api使用教程,stable diffusion,comfyui api,webui api,ai绘图源码,ai绘画源码,ai作画源码,java

总结

至此,stable diffusion comfyui的api的整个调用逻辑已经走完,无论是文生图、图生图、换脸、倒推关键词等,都是走相同的流程。你们在实际开发过程中也可以参考我的项目来实现,需要我的comfyui的workflow.json工作流的可以联系我获取v:ai_009966

源码地址:
https://ext.dcloud.net.cn/plugin?id=12603
项目体验地址:
https://pcai.wailikeji.com/文章来源地址https://www.toymoban.com/news/detail-751929.html

需要整个项目源码的联系我v:ai_009966

到了这里,关于stable diffusion comfyui的api使用教程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【AI 绘图】Stable Diffusion WebUI 本地安装教程(Windows,兼容 NVIDIA、AMD 显卡)

    操作系统 win10 及以上 若有独显,则显存至少 4 GB(专用内存 + 共享内存) 若只有核显/集显,则内存至少 16 GB 友情提示: AMD 显卡也能用 ,但训练目前不起作用,但多种功能/扩展可以起作用,例如 LoRA 和 controlnet 如果显卡性能不行,即使安装成功也无法正常使用 Stable Diffu

    2024年02月16日
    浏览(87)
  • 浅谈【Stable-Diffusion WEBUI】(AI绘图)的基础和使用

    如果你对这方面是零基础,可以阅读本篇的内容,至少可以上手。 更多不断丰富的内容参考:🔗 《继续Stable-Diffusion WEBUI方方面面研究(内容索引)》 最近比较热门的人工智能,可以单纯通过输入一段文字(提示词),或者通过一张图片生成新的绘图作品。 根据基础模型和人

    2024年02月05日
    浏览(65)
  • 【计算机视觉】手把手教你配置stable-diffusion-webui进行AI绘图(保姆级教程)

    本地部署指的是将软件应用程序或服务部署在本地计算机或本地服务器上,而不是使用云服务或远程服务器。以下是一些常见的原因,解释为什么选择本地部署: 数据隐私和安全性:对于某些敏感数据或关键业务功能,保持数据在本地环境中更有保障。本地部署可以提供更高

    2024年02月08日
    浏览(54)
  • AI绘画:使用Stable Diffusion ComfyUI进行换脸:IPAdapter FaceID全面教程

            在数字艺术和媒体编辑领域,换脸技术已经成为一种流行且强大的工具。它允许创作者将一个人物的面部特征无缝地转移到另一个人物上,创造出令人信服的视觉作品。Stable Diffusion ComfyUI提供了一个高效的平台,让用户能够轻松地实现换脸。本文将详细介绍如何使用

    2024年04月09日
    浏览(139)
  • 【AI绘图本地部署,无显卡部署stable-diffusion-webui吗,使用CPU运算】

    环境准备 aconda:https://www.anaconda.com/ git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui 进入目录 cd stable-diffusion-webui 创建虚拟环境 python -m venv ./virtualenv 运行虚拟环境 .virtualenvScriptsActivate.ps1 安装Cpu运行的pytorch版本 pip3 install torch torchvision torchaudio 修改根目录下launch.py代码

    2024年02月16日
    浏览(45)
  • 【AI绘图】Stable Diffusion WebUI环境搭建

    Stable Diffusion WebUI开源地址:https://github.com/AUTOMATIC1111/stable-diffusion-webui  首先根据要求做以下准备工作: 1. 安装 Python 3.10.6, 安装时记得勾选\\\"Add Python to PATH\\\"把Python添加到环境变量. 2. 安装Git环境,Git - Downloading Package 3. 用git命令把下载Stable Diffusion WebUI项目:    4. 项目下载到本

    2024年02月04日
    浏览(49)
  • AI绘图入门 安装 stable-diffusion-webui

    先看样张: https://www.python.org/downloads/ Git - Downloads (git-scm.com) 1. 新建文件夹 (不能有中文,建议放在空闲比较多的硬盘上),然后再文件夹打开命令行 2. 克隆 Nvidia显卡 AMD显卡 AMD GPU 说明 CPU 选择上面任意一个都可以 下载慢可以请求头加https://ghproxy.com/ 如: https://ghproxy.com/

    2024年02月06日
    浏览(56)
  • 搭建 AI绘图 Stable Diffusion- WebUI 制作属于自己版权的图片

    前言 Stable Diffusion 是一种深度学习文本到图像生成模型,它主要用于根据文本的描述产生详细图像,亦或者根据现有的图片生成相似的图片。在本地代建Stable Diffusion-webUI需要准备Python环境(3.10.6版本)、可以上外网的梯子,Git拉取代码工具,电脑配置最低建议6G显存,1660TI显卡

    2024年02月16日
    浏览(60)
  • AI绘画利器:Stable-Diffusion-ComfyUI保姆级教程

    AI绘画在今天,已经发展到了炽手可热的地步,相比于过去,无论是从画面精细度,真实性,风格化,还是对于操作的易用性,都有了很大的提升。并且如今有众多的绘画工具可选择。今天我们主要来聊聊基于stable diffusion的 comfyUI ! comfyUI具有可分享,易上手,快速出图,以

    2024年04月26日
    浏览(100)
  • 免费永久安装Stable diffusion WebUI到Google drive云端教程,免费GPU无限跑图,随时随地运行|Google colab|AI绘图攻略|免费硬盘 免费GPU

    免费运行stable diffusion的方案中,google colab方案是最好的,但是但是他每24小时会清空数据,每次跑图都要重新下载模型。。。那么我们该如何长期保有自己的数据呢?文本将解决这个问题,除翻越问题外唯一的前提就是你的google云盘还有足够的空间~~ 预先学习 : 安装及其问

    2024年02月09日
    浏览(92)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包