自动化 ComfyUI 工作流迭代工具:comfyui-node-iterator

插件6个月前发布 小马良
268 0

在图像生成流程中,我们常常需要对多个参数(如种子、采样器设置、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

你可以根据需要替换为你自己的工作流和配置文件路径。

© 版权声明

相关文章

暂无评论

none
暂无评论...