前言
现在comfyUI的插件越来越多、功能越来越丰富,我们能够使用这些插件构建愈发强大的解决各种场景的工作流。
而对于工作流也是我们个人的心血结晶,那么有没有什么办法能够让广大用户都能用上我们的工作流呢?
下面,我们先一起来研究一下它的API
获取工作流
1.开启DEV模式
在comfyUI功能栏上点击小齿轮,在弹出的页面中开启DEV模式,如下:
开启开发者模式后,右侧功能栏中才会显示"保存(API)格式"按钮;
2.获取工作流
我们开发和调试好工作流后,我们可以通过"保存(API)格式"来获得最小的工作流文件,如下:
例如,我们以comfyUI默认的工作流为例,点击右侧的按钮后,得到如下得文件。
{` `"3": {` `"inputs": {` `"seed": 156680208700286,` `"steps": 20,` `"cfg": 8,` `"sampler_name": "euler",` `"scheduler": "normal",` `"denoise": 1,` `"model": [` `"4",` `0` `],` `"positive": [` `"6",` `0` `],` `"negative": [` `"7",` `0` `],` `"latent_image": [` `"5",` `0` `]` `},` `"class_type": "KSampler",` `"_meta": {` `"title": "K采样器"` `}` `},` `"4": {` `"inputs": {` `"ckpt_name": "0XL\\DreamShaper-XL-v2.1-Turbo-闪电_v2.1-Turbo.safetensors"` `},` `"class_type": "CheckpointLoaderSimple",` `"_meta": {` `"title": "Checkpoint加载器(简易)"` `}` `},` `"5": {` `"inputs": {` `"width": 512,` `"height": 512,` `"batch_size": 1` `},` `"class_type": "EmptyLatentImage",` `"_meta": {` `"title": "空Latent"` `}` `},` `"6": {` `"inputs": {` `"text": "beautiful scenery nature glass bottle landscape, , purple galaxy bottle,",` `"clip": [` `"4",` `1` `]` `},` `"class_type": "CLIPTextEncode",` `"_meta": {` `"title": "CLIP文本编码器"` `}` `},` `"7": {` `"inputs": {` `"text": "text, watermark",` `"clip": [` `"4",` `1` `]` `},` `"class_type": "CLIPTextEncode",` `"_meta": {` `"title": "CLIP文本编码器"` `}` `},` `"8": {` `"inputs": {` `"samples": [` `"3",` `0` `],` `"vae": [` `"4",` `2` `]` `},` `"class_type": "VAEDecode",` `"_meta": {` `"title": "VAE解码"` `}` `},` `"9": {` `"inputs": {` `"filename_prefix": "ComfyUI",` `"images": [` `"8",` `0` `]` `},` `"class_type": "SaveImage",` `"_meta": {` `"title": "保存图像"` `}` `}``}
从前面的截图中,我们得知节点6是正向提示词、节点7是负向提示词,节点9是保存图片。
一般情况下,我们使用工作流来生图时,设置好模型后,只会去调整正负向提示词,其他的大体上不变。
注:我们想使用不同的提示词来生图,只需要替换掉节点6中text的值即可。
所有的AI设计工具,安装包、模型和插件,都已经整理好了,👇获取~
comfyUI API
1.触发工作流
我们在浏览器中打开开发者工具后,触发工作流,看看效果。
这些信息说明,手动触发工作流时,调用了prompt接口:
功能:触发执行工作流
地址:http://192.168.0.105:8188/api/prompt;
类型:POST,
body里面的数据如下:
该接口触发工作流执行时,向comfyUI发送了client_id数据和api格式的工作流数据。
注:extra_data数据是包含坐标等信息的工作流数据,执行工作流时comfyUI用不到。
这里,我们可以用工具postman来试一下看看效果。
至此,我们得到了comfyUI的触发任务执行接口
2.获取执行历史
点击"显示历史"可以看到当前client_id执行的所有的历史记录,如下:
这里,我们就获得了第二个HTTP接口:
功能:获取执行历史列表:
接口地址:http://192.168.0.105:8188/api/history?max_items=200
类型:GET请求
接着点击上面红色框中的"加载"可以得到任意一个的历史详情,如下:
3.预览图片
这里我们就得到了第三个接口:
功能:获得图片详情
地址:http://192.168.0.105:8188/api/view?filename=ComfyUI_00291_.png&subfolder=&type=output&rand=0.05807305220146097
类型:GET
注:
1.其中rand参数可选,我们可以删除掉;
2.filename:生成的图片文件名称;
3.subfolder:子文件夹;
4.type:输出类型
4.socket接口
仔细阅读另外2个python脚本,我们发现它在执行工作流后,建立了如下的socket链接:
ws://192.168.0.105:8188/ws?clientId=785fc027452145f29bc2e096f2b25182
示例如下:
为了帮助大家更好地掌握 ComfyUI,我在去年花了几个月的时间,撰写并录制了一套ComfyUI的基础教程,共六篇。这套教程详细介绍了选择ComfyUI的理由、其优缺点、下载安装方法、模型与插件的安装、工作流节点和底层逻辑详解、遮罩修改重绘/Inpenting模块以及SDXL工作流手把手搭建。
由于篇幅原因,本文精选几个章节,详细版点击下方卡片免费领取
一、ComfyUI配置指南
- 报错指南
- 环境配置
- 脚本更新
- 后记
- …
二、ComfyUI基础入门
- 软件安装篇
- 插件安装篇
- …
三、 ComfyUI工作流节点/底层逻辑详解
- ComfyUI 基础概念理解
- Stable diffusion 工作原理
- 工作流底层逻辑
- 必备插件补全
- …
四、ComfyUI节点技巧进阶/多模型串联
- 节点进阶详解
- 提词技巧精通
- 多模型节点串联
- …
五、ComfyUI遮罩修改重绘/Inpenting模块详解
- 图像分辨率
- 姿势
- …
六、ComfyUI超实用SDXL工作流手把手搭建
- Refined模型
- SDXL风格化提示词
- SDXL工作流搭建
- …
由于篇幅原因,本文精选几个章节,详细版点击下方卡片免费领取