《基于 Python 与 ComfyUI API 的轻量级自动化图像生成管线开发》
作者:王方元 | 个人技术站:wfy.wang 领域:AIGC 工作流开发 / Pipeline TD
一、 背景与管线设计目标
完成 ComfyUI 私有化部署之后,网页端手动点击提交渲染仅适合工作流调试。面向商业 AIGC 短剧素材生产、大批量 AI 资产输出,以及和 Maya、Nuke、Houdini 传统 CG 管线联动的场景,需要把 ComfyUI 能力做 API 服务化封装。
基于 ComfyUI 提供的 RESTful API、WebSocket 接口,使用 Python 搭建轻量级自动化渲染管线,设计目标包含:
- 工作流 JSON 动态解析:复用提前调试完成的 API-Format 工作流模板,动态替换参考图路径、提示词、随机种子、分辨率等业务参数。
- 异步任务队列提交:HTTP POST 方式向 ComfyUI 服务提交渲染任务,实现后台批量推理,规避多任务并发造成显存溢出(OOM)。
- 渲染状态实时监听:通过 WebSocket 获取节点执行进度、运行报错信息,捕获 OOM、文件损坏等异常。
- 渲染资产自动归档:任务完成后取回图片/序列帧,自动分类落盘归档,可对接本地共享目录或者云存储,完成和 CG 生产流程的数据打通。
二、 整体架构思路
整套管线复用已调通的 ComfyUI 工作流模板,不改动底层节点逻辑;Python 作为上层调度层,只负责参数修改、任务投递、状态轮询、文件后处理。
- 底层:Linux 环境私有化部署 ComfyUI 服务,支持内网离线部署,完成模型、自定义节点资产管理。
- 调度层:Python 脚本,读取 API 模板、修改节点参数、提交任务、监听执行状态。
- 输出层:渲染完成自动整理成品素材,可扩展 FFmpeg 将序列帧合成短视频,适配短剧生产业务。
三、 关键技术要点
- 区分画布工作流 JSON 与 API 格式 JSON:
必须使用
Save (API Format)导出的任务模板,去掉画布 UI 坐标信息,仅保留节点执行逻辑;通过节点 ID 定位,修改图片、提示词、采样器等入参。 - 任务串行排队机制: 同一 GPU 服务控制任务并发数量,等待上一个任务全部执行完毕,再投递下一条任务,防止多任务同时执行引发显存 OOM 崩溃。
- 两种状态获取方案:
- HTTP History 接口:轮询查询任务历史结果,实现简单,适合小规模批量任务。
- WebSocket 长连接:实时接收每一个节点执行进度,便于日志记录与异常捕获。
- 资产预处理兼容 CG 管线: 对输入图片自动校验格式、重命名,规避中文文件名导致 ComfyUI 读取失败问题;输出文件按照项目、角色、版本号做目录归档,对齐传统 CG 项目的资产管理规范。
四、 业务价值
- 降低使用门槛:美术人员不需要操作 ComfyUI 节点画布,仅输入参考素材即可触发 AI 渲染。
- 无缝管线集成:可与传统 CG Pipeline 打通,把 AI 生成的素材无缝接入现有动画、特效生产流程。
- 数据安全合规:适配内网私有化部署场景,全部素材、模型保留在本地服务器,满足数据安全要求。
五、 后续待实现规划
- [ ] 文件夹监控:监听美术输入目录,检测到新增图片时自动发起渲染任务。
- [ ] 轻量级 UI 封装:为非技术业务人员开发简易交互界面。
- [ ] 序列帧自动合成:集成 FFmpeg 自动将生成的序列帧压制成 MP4 预览视频。
- [ ] 日志与追踪体系:记录每条任务的 Seed、Prompt 及工作流 Version,方便效果精确复现。
京公网安备11010502060279号