# ComfyUI批量图片处理教程

为两张独立输入建立清单，用 API 的 LoadImage 与 filename_prefix 逐项赋值，避免重复、覆盖与漏处理。

本地结构与素材核验，未执行 ComfyUI 前端导入或扩散/ESRGAN 推理。图像与原 JSON 来源见 provenance.json。所有工作流为 UI 格式 0.4，与 prompt-api.json 分开。权重不打包。

## 使用

1. python check.py
2. 查看 models.csv，按模型出处准备文件。
3. 用本地 ComfyUI 打开 workflow.json，重新选择 Loader 下拉和输入。
4. 自己完成真实小样，填写 acceptance.csv。

## 1. 准备独立文件与清单

下载 inputs.csv 和 input-01.png、input-02.png；本页用同一官方输入的不同裁切作为练习，不冒充两次模型输出。把图片复制到 ComfyUI/input，保留 file_id 与原文件映射。

## 2. 先在 UI 跑通单个样本

用图生图 workflow.json 选择第一张输入，核对家族、VAE 与 denoise，再在你的环境完成真实单图小样。批量 API 不会自动修复单样本失败。

## 3. 导出属于你的 API 格式

使用 Export (API) 保存自己的 img2img-api.json；记录 LoadImage、KSampler、SaveImage 的真实节点 ID，填写 batch-config.json。下载包不伪造已经导出的当前安装环境 API。

## 4. 检查清单与节点角色

运行 python batch_manifest.py --check，读取 inputs.csv 与 batch-config.json；检查重复 file_id、空文件名和输出前缀冲突。脚本不支持“一个 Load Image 自动扫目录”的错误假设。

## 5. 逐项生成请求计划

用 --plan 生成 requests-plan.json，给每张输入替换 LoadImage.inputs.image 和 SaveImage.filename_prefix，同时保留 seed/denoise。逐图排队需自己在服务上执行，计划文件只预览不触发推理。

## 6. 记录完成与失败后再续跑

真实提交时为每行登记 prompt_id，按上一页 queue/history 流程关联输出；失败或未知状态不要标成功。续跑只挑未完成行，已经完成的结果另存，避免一键重发整批。

## 7. 用负样本检查重复命名

运行 python batch_manifest.py --self-test，它读取 negative-duplicate-inputs.csv 并拒绝同一个 file_id 或输出前缀重复。最后整理 manifest、实际输出和失败记录，不把计划条数当成功图片数。


queue_client.py 默认只查询；--submit 明确触发本地真实推理。batch_manifest.py 仅生成计划，未提交。故障日志、history 响应和空验收栏是教材，不是本站成功实测。

## 官方来源

- https://docs.comfy.org/tutorials/basic/image-to-image
- https://github.com/Comfy-Org/ComfyUI
- https://www.douyin.com/video/7691594447310244330