ComfyUI-BatchPromptLoader
ComfyUI 自定义节点:从文件夹批量加载并编码 TXT 提示词文件,支持固定/递增/递减/随机四种模式,以及递归扫描、通配符过滤、跳过已存在等高级功能。
用于"多提示词 + 多张图"的批量生成场景:把提示词拆成多个 TXT 文件放进一个文件夹,节点按索引逐个读取,并通过内置的自动递增功能,每次点 Queue 自动切换下一个提示词。
功能特性
- 📁 递归扫描:自动扫描文件夹及所有子文件夹中的提示词文件
- 🔍 通配符过滤:支持
*.txt,SFW_*.txt等文件名模式匹配 - ⏭️ 跳过已存在:可选跳过已生成的图片,避免重复渲染
- 💬 实时预览:控制台显示当前文件和总数
[n/total] filename - 🎯 元数据输出:输出文件名、索引、总数供后续节点使用
- 🎲 四种索引模式:
fixed(固定)/increment(递增)/decrement(递减)/random(随机) - 🔁 内置自动递增:每次 Queue 后自动切换下一个提示词,无需额外种子节点
- 🔃 支持倒序排列文件
- 🧠 智能记忆:记录上次读取位置,重启 ComfyUI 后从上次位置继续
- ✂️ 自动拆分正负提示词:支持
positive:/negative:段
🆕 版本更新 (v2.0)
新增功能
- ✅ 通配符文件名过滤 (
file_pattern) - ✅ 跳过已存在的图片 (
skip_exists+output_folder) - ✅ 元数据输出口 (
filename,index,total_count) - ✅ 增强错误提示(区分路径不存在/文件夹为空/无匹配文件)
- ✅ 控制台实时显示进度
[n/total] filename
节点
| 节点名 | 显示名 | 说明 |
|---|---|---|
BatchPromptReaderWithClip |
BatchPromptLoader | 加载 TXT 提示词并编码为 conditioning |
输入
| 输入 | 类型 | 说明 |
|---|---|---|
clip |
CLIP | 来自 CLIP Loader |
folder_path |
STRING | TXT 提示词所在文件夹路径(绝对路径或相对于 ComfyUI 根目录) |
current_number |
INT | 当前提示词索引(配合"自动更新该值之后"菜单使用) |
recursive |
BOOLEAN | 是否递归扫描子文件夹中的 .txt 文件(默认开启) |
reverse_order |
BOOLEAN | 是否倒序排列文件(默认关闭) |
file_pattern |
STRING | 文件名过滤模式,支持通配符(如 *.txt, SFW_*.txt, *_v2.txt,默认 *.txt) |
output_folder |
STRING | 输出目录路径(用于跳过检查,默认 output/) |
可选输入
| 输入 | 类型 | 说明 |
|---|---|---|
skip_exists |
BOOLEAN | 开启后,若输出目录已存在同名图片则跳过该文件(默认关闭) |
输出
| 输出 | 类型 | 说明 |
|---|---|---|
conditioning |
CONDITIONING | 编码后的正向提示词条件 |
filename |
STRING | 当前读取的文件名(相对路径) |
index |
INT | 当前文件的索引(从 0 开始) |
total_count |
INT | 总文件数 |
安装
cd ComfyUI/custom_nodes
git clone https://github.com/ReSerendipity/ComfyUI-BatchPromptLoader.git
重启 ComfyUI 后,在画布中右键搜索 BatchPromptLoader 或 批量提示词编码器。
💡 新特性提示:v2.0 新增通配符过滤、跳过已存在、元数据输出等功能! 无第三方依赖,仅需 ComfyUI 自带的 PyTorch 环境。
使用方法
基础用法
-
准备提示词文件夹(如
C:\prompts\SFW),每个提示词一个.txt文件:positive: 一位成熟的大学教授站在讲台上 negative: 模糊,低质量也可以只写正文(没有
positive:前缀时整段作为正向提示词)。 -
添加节点并连线:
[CLIP Loader] ──clip──> [BatchPromptLoader] ──conditioning──> [KSampler → ...] -
设置
folder_path为提示词文件夹路径,current_number初始为0。 -
在
current_number上右键,选择 "递增值"(或递减/随机)。 -
每次点击 Queue,节点会自动读取下一个提示词并编码。
文件排序说明
- 文件按路径字典序(不区分大小写)排列,即先按英文字母 A→Z,再按数字逐位比较(如
10.txt排在2.txt之前,因为字符"1"排在"2"之前) - 开启
recursive时,子文件夹的文件会排在其父文件夹文件之后(按子文件夹名的字典序) - 开启
reverse_order可对整个文件列表倒序
高级功能 1:通配符过滤
通过 file_pattern 参数过滤特定名称的文件:
*.txt- 所有 txt 文件(默认)SFW_*.txt- 以SFW_开头的文件*_v2.txt- 以_v2.txt结尾的文件prompt_*.txt- 以prompt_开头的文件
示例:文件夹中有 prompt_v1_a.txt, prompt_v1_b.txt, prompt_v2_a.txt,设置 file_pattern = "prompt_v2_*.txt" 只会读取 v2 版本的文件。
高级功能 2:跳过已存在的图片
- 设置
output_folder为你的输出目录(如output/) - 开启
skip_exists开关 - 节点会检查输出目录中是否存在与当前提示词文件同名的图片
- 如果存在,直接跳过不生成,返回空 conditioning
工作流程:
提示词文件:prompt_001.txt → 检查 output/prompt_001.png 是否存在
如果存在 → 跳过
如果不存在 → 正常生成
⚠️ 注意:跳过后会返回空 conditioning,需要在后续节点处理这种情况(或使用 Switch 节点分流)。
高级功能 3:使用元数据输出
filename- 可以连接到 Save Image 的filename_prefix,实现按文件名保存index- 可以用于显示进度或调试total_count- 显示总共有多少个文件
控制台输出示例
[BatchPromptLoader] Fixed: 0 (东亚_成熟_单人_大学教授讲堂.txt...)
[BatchPromptLoader] ✓ [1/50] 东亚_成熟_单人_大学教授讲堂.txt
[BatchPromptLoader] Increment: 0 → 1 (东亚_成熟_单人_茶馆遛鸟.txt...)
[BatchPromptLoader] ✓ [2/50] 东亚_成熟_单人_茶馆遛鸟.txt
[BatchPromptLoader] ⏭️ 跳过已存在:prompt_001.png
提示词文件格式
- 扩展名由
file_pattern决定(默认.txt) - 可选分段:
positive:开头为正向提示词段,negative:开头为负向提示词段 - 分段行之后的内容会续接到对应段
- 无
positive:前缀时,整个文件内容作为正向提示词
常见问题
Q: 输出的 filename 怎么用?
A: 可以连接到 Save Image 节点的 filename_prefix,实现按提示词文件名保存图片。
Q: 跳过后图片会空白吗?
A: 会返回空 conditioning,KSampler 可能生成黑图或随机噪声。建议配合 Switch 节点,只在需要时生成。
Q: 为什么找不到文件?
A: 检查 folder_path 是否正确,确认文件夹内是否有符合 file_pattern 的 .txt 文件。错误信息会显示在控制台和节点红色提示中。
Q: 如何查看加载了多少个文件?
A: 控制台会输出 [n/total] filename,或者将 total_count 输出口连接到 Display Int 节点查看。
Changelog
v2.0 (2026-08-23)
- ✨ 新增通配符过滤 (
file_pattern) - ✨ 新增跳过已存在图片功能 (
skip_exists,output_folder) - ✨ 新增元数据输出 (
filename,index,total_count) - ✨ 增强错误提示(区分路径不存在/文件夹为空)
- ✨ 控制台实时显示当前文件进度