【ComfyUI API 自动化利器:comfyui_xy Python 库使用详解】

简介: `comfyui_xy` 是一个轻量级 Python 客户端库,封装 ComfyUI API,支持一键上传图片/遮罩、动态修改工作流、自动排队执行与结果下载(图/视/音频)。安装即用,无需处理底层 HTTP/WebSocket 细节,助力 AIGC 自动化开发。开源免费,PyPI 可装。

项目地址https://github.com/xy200303/ComfyUiApi

PyPI地址https://pypi.org/project/comfyui-xy/

在 AIGC 领域,ComfyUI 凭借其强大的节点式工作流赢得了众多开发者的青睐。然而,当我们需要将 ComfyUI 集成到自己的应用中,或者进行批量化、自动化任务时,直接使用官方 API 可能会显得有些繁琐。

为了解决这个问题,我开发了一个轻量级的 Python 客户端库 —— comfyui_xy。它封装了 ComfyUI 的核心 API,让你能够像调用普通 Python 函数一样,轻松实现上传图片、修改工作流、排队任务以及获取生成结果。

本文将详细介绍 comfyui_xy 的安装与使用方法,带你快速上手 ComfyUI 自动化。


1. 安装

首先,通过 pip 安装该库:

pip install comfyui_xy

2. 快速入门

2.1 准备工作:获取 API 格式工作流

在使用 API 之前,你需要获取 ComfyUI 的工作流 JSON。注意:这与平时保存的 JSON 不同。

  1. 打开 ComfyUI 网页界面。
  2. 点击菜单中的 Settings(齿轮图标)。
  3. 勾选 "Enable Dev mode Options"
  4. 回到菜单,点击 "Save (API Format)" 按钮,保存为 workflow_api.json

2.2 最简示例:文生图

下面是一个简单的示例,展示如何加载工作流并生成图片。

import json
import random
from comfyui_api import ComfyUiClient

# 1. 初始化客户端 (默认连接本地 http://127.0.0.1:8188)
client = ComfyUiClient()

# 2. 加载你导出的 API 格式工作流
with open("workflow_api.json", "r", encoding="utf-8") as f:
    workflow = json.load(f)

# 3. 动态修改参数
# 假设 KSampler 是节点 "3",我们要修改它的 seed
workflow["3"]["inputs"]["seed"] = random.randint(1, 1000000000)

# 4. 执行工作流
# process_workflow 会自动排队、等待执行完成、并下载结果
print("正在执行任务...")
results = client.process_workflow(workflow)

# 5. 保存结果
for i, result in enumerate(results):
    print(f"生成文件: {result.filename} ({result.file_type})")
    result.save(f"output_{i}.png") # 保存到本地

    if result.file_type == "image":
        result.show() # 如果是图片,直接弹出预览

3. 核心功能详解

3.1 连接远程服务器

如果你的 ComfyUI 部署在远程服务器(例如 AutoDL 或云服务器),支持 HTTPS:

# 连接远程 HTTPS 服务器
client = ComfyUiClient(url="https://u12345.autodl.com:12345")

# 或者普通的 HTTP 服务器
# client = ComfyUiClient(url="http://192.168.1.100:8188")

3.2 图生图:上传图片与遮罩

在图生图(Img2Img)或重绘(Inpainting)任务中,我们需要先上传图片。

# 上传图片
image_name = client.upload_image("test.jpg")
print(f"图片已上传,服务器文件名为: {image_name}")

# 上传遮罩
mask_name = client.upload_mask("mask.png")

# 将上传后的文件名填入工作流节点
# 假设 LoadImage 节点 ID 为 "10"
workflow["10"]["inputs"]["image"] = image_name

3.3 处理多种输出类型

ComfyUI 不仅生成图片,还可能生成视频(AnimateDiff)、音频等。comfyui_xy 统一使用 ComfyResponse 对象处理这些结果。

results = client.process_workflow(workflow)

for result in results:
    # result.data: 原始二进制数据
    # result.file_type: 'image', 'video', 'audio' 等

    if result.file_type == "video":
        result.save("output_video.mp4")
    elif result.file_type == "image":
        result.save("output_image.png")

3.4 高级控制

库中还封装了一些常用的系统级操作:

  • 中断任务
    client.interrupt()
    
  • 查看队列
    queue_info = client.get_queue()
    print(f"排队中: {queue_info['queue_pending']}, 运行中: {queue_info['queue_running']}")
    
  • 获取历史记录
    history = client.get_history_all()
    
  • 查询节点信息
    # 获取 KSampler 的输入输出定义
    info = client.get_object_info("KSampler")
    

4. 总结

comfyui_xy 旨在简化 Python 与 ComfyUI 的交互过程,让你无需处理复杂的 WebSocket 连接和 HTTP 请求细节。无论是构建自己的 AI 应用后端,还是编写自动化测试脚本,它都能助你一臂之力。

项目开源地址https://github.com/xy200303/ComfyUiApi

如果你觉得好用,欢迎给个 Star!如果有任何问题,也欢迎在 Issues 中反馈。

相关文章
|
21天前
|
Python
Python装饰器:给函数“穿外套”的优雅艺术
Python装饰器:给函数“穿外套”的优雅艺术
223 142
|
3天前
|
人工智能 自然语言处理 搜索推荐
2026打工人必备偷懒工具:OpenClaw(Clawdbot)阿里云极速部署+5大高效AI工作流分享
在AI工具遍地的今天,很多人手里握着OpenClaw这样的“数字员工”,却只把它当普通搜索引擎使用,浪费了其强大的自动化能力。其实,OpenClaw的核心价值在于通过简单提示词搭建专属工作流,让AI替你处理开会准备、定期复盘、学习成长、副业创作等重复工作,让效率提升5倍以上。
304 130
|
17天前
|
安全 数据库连接 数据库
掌握Python上下文管理器:优雅资源管理的艺术
掌握Python上下文管理器:优雅资源管理的艺术
224 155
|
21天前
|
数据采集 API 数据处理
Python异步编程:告别阻塞,拥抱高效
Python异步编程:告别阻塞,拥抱高效
207 136
|
7天前
|
缓存 安全 算法
JAVA面试题速记-java基础
本文系统梳理Java核心知识点:涵盖8种基本数据类型、String/StringBuffer/Builder区别、final/static作用、==与equals差异、Collection接口与Collections工具类对比;详解List/Set/Map集合特性及线程安全方案;解析反射、异常处理(throw/throws)、线程生命周期、同步机制(synchronized/ReentrantLock)、ThreadLocal原理、序列化等关键概念。(239字)
238 134
|
7天前
|
人工智能 自然语言处理 机器人
2026零门槛OpenClaw部署指南:阿里云轻量服务器一键落地,7×24小时AI数字员工轻松拥有
在智能办公需求爆发的2026年,OpenClaw(前身为Clawdbot、Moltbot)凭借自然语言指令执行、多工具集成、主流大模型兼容等核心优势,成为个人与轻量团队的“AI数字员工”首选。它打破了普通聊天机器人的功能局限,能真正落地文件处理、日程管理、信息提取、跨工具协同等实操任务,7×24小时不间断运行,大幅降低重复劳动成本。
396 133
|
17天前
|
Python
Python装饰器:优雅地增强函数功能
Python装饰器:优雅地增强函数功能
248 151
|
7天前
|
缓存 NoSQL Java
JAVA面试题速记-redis知识点
Redis核心简介(240字内): Redis提供5种基础数据结构:String、Hash、List、Set、ZSet,及Geospatial等扩展类型。支持RDB快照与AOF日志双持久化机制,兼顾性能与安全;通过过期策略(定期+惰性+LRU)管理内存。应对缓存击穿/雪崩,采用错峰过期;保障缓存-数据库一致性,推荐异步Binlog监听+可靠MQ删除。分布式锁推荐Redisson(自动续期、原子Lua脚本)。高可用支持哨兵(主从故障转移)与集群(16384槽分片、水平扩展)。BigKey需拆分、异步删除(UNLINK)、lazy-free优化。
259 132
|
20天前
|
数据采集 运维 数据挖掘
《分布式跨域业务事务可用性与性能度量手册》
本文聚焦分布式系统中跨数十服务的业务事务,提出一套脱离单点指标局限的全域度量体系。文章从语义锚定与边界切片完成事务定义,构建以稳态存续度、断层自愈率为核心的可用性评估模型,提出流转时延熵、节点协同滞涩度衡量整体性能,通过事务态画像与趋势推演因子实现数据落地,并强调度量体系需动态域校准与弹性适配。全文结合实践思考,阐述跨服务业务事务可用性与性能的深度度量方法,为分布式系统优化提供可落地的技术思路。
194 133
|
25天前
|
测试技术 Python
Python装饰器:优雅增强函数功能
Python装饰器:优雅增强函数功能
209 140

热门文章

最新文章