在图像生成流程中,我们常常需要对多个参数(如种子、采样器设置、LoRA 强度等)进行批量测试与对比。comfyui-node-iterator 是一个基于 Python 的脚本工具,它通过解析 JSON 配置文件,自动修改并提交多个 ComfyUI 工作流,实现高效的节点参数迭代。
本文将介绍该工具的功能、使用方法以及配置方式,帮助你快速构建自动化图像生成流程。

工具概述
核心功能:
- 支持任意节点输入参数的组合迭代(如 seed、cfg、分辨率、LoRA 强度等)
- 利用 ComfyUI 提供的 REST API 提交工作流
- 自动跳过已生成的图像或视频文件,避免重复运行
- 支持元数据写入 PNG 文件(通过
extra_pnginfo) - 可自定义输出文件名格式,便于结果归档与分析
注意事项:
- 当前不支持将完整工作流信息嵌入到图像中,请使用其他方式记录工作流状态。
- 推荐使用从 ComfyUI 导出的 API 格式工作流文件(JSON)作为基础模板。
项目结构说明
仓库中主要包含以下几个核心文件和目录:
| 文件路径 | 说明 |
|---|---|
main.py | 主程序入口,负责加载工作流与配置文件,并执行迭代任务 |
helpers.py | 辅助函数模块,用于修改工作流结构及构建输出文件名 |
workflows/purple_bottle.json | 示例工作流文件,可替换为你自己的导出文件 |
configs/example.json | 示例配置文件,展示多变量迭代方式 |
如何使用
1. 准备工作流文件
打开 ComfyUI,完成你希望测试的工作流后,点击“导出(API)”按钮,将工作流保存为 JSON 文件,推荐存放在 workflows/ 目录下。
2. 编写配置文件
配置文件采用 JSON 格式,每个键表示要修改的节点及其输入字段,格式为:
"节点标题/输入名称"
每个条目必须包含:
"values":该输入项的取值列表- (可选)
"label":用于控制输出文件名中的字段标识
示例配置如下:
{ "KSampler/seed": { "label": "seed", "values": [2025, 2026] }, "KSampler/cfg": { "label": "cfg", "values": [6, 12] }, "Empty Latent Image/resolution": { "label": "res", "values": [ { "width": 1024, "height": 1024 }, { "width": 1280, "height": 720 } ] } }
提示:确保使用的是节点的“标题”而非类名,以提高配置的准确性和复用性。
特殊用法说明
1. LoRA 强度控制
你可以在强度字段中加入 "off" 来跳过某些变体中的 LoRA 加载。例如:
"Power Lora Loader/lora_1/strength": {"label": "gball","values": ["off", 0.5, 1.0, 1.5]}
2. 动态注入提示词
你还可以根据 LoRA 的启用状态,动态向正向或负向提示中注入关键词:
"Power Lora Loader/lora_1/strength": {"label": "gball","values": ["off", 0.5, 1.0, 1.5],"prompt_keyword": [{"prompt_name": "CLIP Text Encode (Prompt)","prompt_text": "dishclothball"},{"prompt_name": "CLIP Text Encode (Negative Prompt)","prompt_text": "hands"}]}
这样,在开启特定 LoRA 强度时,系统会自动更新对应文本编码节点的内容。
输出管理
输出命名规则
生成的图像文件将按照配置项的标签和值命名,格式如下:
[参数标签]-[参数值]_[参数标签]-[参数值]...[序号]_.png
例如:
seed-2025__cfg-6__res-1280x720__gball-off__dart-1.5_00001_.png
输出目录设置
你可在代码中修改以下变量来指定输出路径:
output_dir = "/workspace/ComfyUI/output"
系统会自动检查目标路径中是否已有相同前缀的 .png 或 .mp4 文件,若有则跳过该轮次的生成任务,适用于中断恢复场景。
命令行运行方式
在项目根目录下运行以下命令启动任务:
python3 main.py ./workflows/purple_bottle.json ./configs/example.json
你可以根据需要替换为你自己的工作流和配置文件路径。















