跳转至

《基于 Python 与 ComfyUI API 的轻量级自动化图像生成管线开发》

作者:王方元 | 个人技术站:wfy.wang 领域:AIGC 工作流开发 / Pipeline TD


一、 背景与管线设计目标

完成 ComfyUI 私有化部署之后,网页端手动点击提交渲染仅适合工作流调试。面向商业 AIGC 短剧素材生产、大批量 AI 资产输出,以及和 Maya、Nuke、Houdini 传统 CG 管线联动的场景,需要把 ComfyUI 能力做 API 服务化封装。

基于 ComfyUI 提供的 RESTful API、WebSocket 接口,使用 Python 搭建轻量级自动化渲染管线,设计目标包含:

  1. 工作流 JSON 动态解析:复用提前调试完成的 API-Format 工作流模板,动态替换参考图路径、提示词、随机种子、分辨率等业务参数。
  2. 异步任务队列提交:HTTP POST 方式向 ComfyUI 服务提交渲染任务,实现后台批量推理,规避多任务并发造成显存溢出(OOM)。
  3. 渲染状态实时监听:通过 WebSocket 获取节点执行进度、运行报错信息,捕获 OOM、文件损坏等异常。
  4. 渲染资产自动归档:任务完成后取回图片/序列帧,自动分类落盘归档,可对接本地共享目录或者云存储,完成和 CG 生产流程的数据打通。

二、 整体架构思路

整套管线复用已调通的 ComfyUI 工作流模板,不改动底层节点逻辑;Python 作为上层调度层,只负责参数修改、任务投递、状态轮询、文件后处理。

  • 底层:Linux 环境私有化部署 ComfyUI 服务,支持内网离线部署,完成模型、自定义节点资产管理。
  • 调度层:Python 脚本,读取 API 模板、修改节点参数、提交任务、监听执行状态。
  • 输出层:渲染完成自动整理成品素材,可扩展 FFmpeg 将序列帧合成短视频,适配短剧生产业务。

三、 关键技术要点

  1. 区分画布工作流 JSON 与 API 格式 JSON: 必须使用 Save (API Format) 导出的任务模板,去掉画布 UI 坐标信息,仅保留节点执行逻辑;通过节点 ID 定位,修改图片、提示词、采样器等入参。
  2. 任务串行排队机制: 同一 GPU 服务控制任务并发数量,等待上一个任务全部执行完毕,再投递下一条任务,防止多任务同时执行引发显存 OOM 崩溃。
  3. 两种状态获取方案:
  4. HTTP History 接口:轮询查询任务历史结果,实现简单,适合小规模批量任务。
  5. WebSocket 长连接:实时接收每一个节点执行进度,便于日志记录与异常捕获。
  6. 资产预处理兼容 CG 管线: 对输入图片自动校验格式、重命名,规避中文文件名导致 ComfyUI 读取失败问题;输出文件按照项目、角色、版本号做目录归档,对齐传统 CG 项目的资产管理规范。

四、 业务价值

  • 降低使用门槛:美术人员不需要操作 ComfyUI 节点画布,仅输入参考素材即可触发 AI 渲染。
  • 无缝管线集成:可与传统 CG Pipeline 打通,把 AI 生成的素材无缝接入现有动画、特效生产流程。
  • 数据安全合规:适配内网私有化部署场景,全部素材、模型保留在本地服务器,满足数据安全要求。

五、 后续待实现规划

  • [ ] 文件夹监控:监听美术输入目录,检测到新增图片时自动发起渲染任务。
  • [ ] 轻量级 UI 封装:为非技术业务人员开发简易交互界面。
  • [ ] 序列帧自动合成:集成 FFmpeg 自动将生成的序列帧压制成 MP4 预览视频。
  • [ ] 日志与追踪体系:记录每条任务的 Seed、Prompt 及工作流 Version,方便效果精确复现。