ComfyUI 使用全攻略系列:API简介

前言

现在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配置指南
  • 报错指南
  • 环境配置
  • 脚本更新
  • 后记

img

二、ComfyUI基础入门
  • 软件安装篇
  • 插件安装篇

img

三、 ComfyUI工作流节点/底层逻辑详解
  • ComfyUI 基础概念理解
  • Stable diffusion 工作原理
  • 工作流底层逻辑
  • 必备插件补全

img

四、ComfyUI节点技巧进阶/多模型串联
  • 节点进阶详解
  • 提词技巧精通
  • 多模型节点串联

img

五、ComfyUI遮罩修改重绘/Inpenting模块详解
  • 图像分辨率
  • 姿势

img

六、ComfyUI超实用SDXL工作流手把手搭建
  • Refined模型
  • SDXL风格化提示词
  • SDXL工作流搭建

img

由于篇幅原因,本文精选几个章节,详细版点击下方卡片免费领取

在这里插入图片描述

img

### ComfyUI 工作流封装方法 在 ComfyUI 中,工作流的封装主要依赖于其灵活的工作流节点设计以及 API 接口的支持。通过这些特性可以实现复杂任务的高度抽象化和模块化处理。 #### 使用 Python 封装自定义工作流 为了更好地管理和重用特定的任务流程,在 Python 文件中创建函数来调用 ComfyUI 提供的功能是一个不错的选择。下面展示了一个简单的例子,该例子展示了如何利用 `main.py` 和 `robot.py` 来构建一个自动化脚本[^3]: ```python # main.py 示例代码片段 from comfyui_api import ComfyUIAPI # 假设这是用于访问ComfyUI服务的一个接口类 def run_custom_workflow(image_path, output_dir): api = ComfyUIAPI() result = api.process_image( image_file=image_path, settings={"style": "anime", "strength": 0.8} ) save_result(result, output_dir) def save_result(data, directory): with open(f"{directory}/output.png", 'wb') as f: f.write(data.content) ``` 在这个案例里,假设有一个名为 `comfyui_api` 的库提供了与 ComfyUI 平台交互的能力。上述代码实现了接收图片路径作为输入参数并应用指定样式转换的效果;最后保存生成的结果到给定文件夹下。 对于更复杂的场景,则可以通过扩展此类基础结构进一步开发更多实用工具或应用程序。 #### 利用插件增强功能 除了直接编码外,还可以借助第三方插件简化某些重复性的配置过程。例如,AIGODLIKE-COMFYUI-TRANSLATION 插件可以帮助解决多语言环境下的界面理解和交流障碍问题[^2]。这类辅助工具有助于提高工作效率,并使整个项目更加易于维护和支持国际化需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值