1. 插件简介
ComfyUI-Prompt-Combinator 是一个超级实用的插件,它就像一个"词语组合机"一样,能够把你提供的不同词语列表进行排列组合,生成各种可能的搭配。这个插件的GitHub原地址是:https://github.com/lquesada/ComfyUI-Prompt-Combinator
简单来说,这个插件能帮你:
- 把多个词语列表进行自动组合,生成大量不同的描述文字
- 节省你手动写各种变化描述的时间
- 让你的AI作品更加多样化和有趣
就像你有"猫、狗"这两个动物,"可爱、恐怖"这两个形容词,插件会自动帮你组合成"可爱的猫"、"恐怖的猫"、"可爱的狗"、"恐怖的狗"四种不同的描述。
2. 如何安装
有两种安装方法:
方法一:使用ComfyUI管理器(推荐)
- 打开ComfyUI,找到管理器功能
- 搜索"ComfyUI-Prompt-Combinator"
- 点击安装并重启ComfyUI
方法二:手动安装
- 打开ComfyUI的
custom_nodes文件夹 - 在命令行中运行:
git clone https://github.com/lquesada/ComfyUI-Prompt-Combinator.git - 重启ComfyUI
3. 节点详细解析
3.1 🔢 Prompt Combinator 节点(核心组合器)
这个节点就像一个"搅拌机",把你提供的各种词语列表进行混合搭配,生成所有可能的组合。它是这个插件的核心功能,专门用来生成各种不同的描述文字组合。
3.2 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
| :— | :— | :— | :— | :— | :— | :— |
| ID分隔符 | id_separator | 字符串 | @ | 用什么符号来分开不同的标识,就像给每个词语贴标签 | 指定用于分离不同ID的字符 | 输入"cat@一只猫",@前面是标签,后面是实际内容 |
| 注释前缀 | comment_prefix | 字符串 | # | 在词语前面加什么符号表示这是注释,不参与组合 | 定义注释的前缀符号 | 输入"#这是注释",带#的行会被忽略 |
| 连接方式 | join_prompt_using | 下拉选择 | comma and space | 词语之间用什么来连接,就像用胶水把词语粘起来 | 控制生成的提示词之间的连接方式 | 选择"comma and space"会生成"猫, 可爱"这样的格式 |
| 输入列表1 | input_list_1 | 多行文本 | (必填) | 第一组词语列表,每行一个词语 | 主要的字符串列表,用于生成组合 | 输入"猫\n狗\n鸟",每行一个动物 |
| 输入列表2 | input_list_2 | 多行文本 | (选填) | 第二组词语列表,可以不填 | 可选的字符串列表,与列表1组合 | 输入"可爱\n恐怖\n神秘",每行一个形容词 |
| 输入列表3 | input_list_3 | 多行文本 | (选填) | 第三组词语列表,可以不填 | 可选的字符串列表,进一步增加组合 | 输入"在花园里\n在房子里\n在森林里",每行一个地点 |
| 输入列表4 | input_list_4 | 多行文本 | (选填) | 第四组词语列表,可以不填 | 可选的字符串列表,继续增加组合 | 输入"白天\n黑夜\n黄昏",每行一个时间 |
| 输入列表5 | input_list_5 | 多行文本 | (选填) | 第五组词语列表,可以不填 | 可选的字符串列表,更多组合可能 | 输入"下雨\n晴天\n多云",每行一个天气 |
| 输入列表6 | input_list_6 | 多行文本 | (选填) | 第六组词语列表,可以不填 | 可选的字符串列表,继续丰富组合 | 输入"蓝色\n红色\n绿色",每行一个颜色 |
| 输入列表7 | input_list_7 | 多行文本 | (选填) | 第七组词语列表,可以不填 | 可选的字符串列表,进一步增加变化 | 输入"大\n小\n中等",每行一个大小描述 |
| 输入列表8 | input_list_8 | 多行文本 | (选填) | 第八组词语列表,可以不填 | 可选的字符串列表,最大化组合多样性 | 输入"毛茸茸\n光滑\n粗糙",每行一个质感描述 |
输出说明:
- 组合结果 (prompts):生成的所有描述文字组合,就像一个装满各种搭配的袋子
- 组合编号 (combination_ids):每个组合的标识号码,方便管理和查找
- 文件名 (filenames):根据组合编号生成的文件名,方便保存图片
3.3 🔢 Prompt Combinator Merger 节点(合并器)
这个节点就像一个"大盒子",能把两个不同的组合器产生的结果合并到一起。它专门用来合并两个不同的Prompt Combinator节点的输出。
3.4 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
| :— | :— | :— | :— | :— | :— | :— |
| 第一组描述 | prompts_1 | 字符串 | (必填) | 第一个组合器产生的描述文字 | 第一组提示词字符串 | 连接第一个Prompt Combinator的输出 |
| 第一组编号 | combination_ids_1 | 列表 | (必填) | 第一组描述对应的编号 | 第一组组合的ID列表 | 连接第一个Prompt Combinator的组合编号 |
| 第二组描述 | prompts_2 | 字符串 | (必填) | 第二个组合器产生的描述文字 | 第二组提示词字符串 | 连接第二个Prompt Combinator的输出 |
| 第二组编号 | combination_ids_2 | 列表 | (必填) | 第二组描述对应的编号 | 第二组组合的ID列表 | 连接第二个Prompt Combinator的组合编号 |
输出说明:
- 合并描述 (prompts):两组描述文字合并后的结果
- 合并编号 (combination_ids):两组编号合并后的结果
- 合并文件名 (filenames):合并后的文件名列表
3.5 🔢 Prompt Combinator Export Gallery 节点(图库导出器)
这个节点就像一个"相册制作机",能把你生成的图片和对应的描述文字制作成一个漂亮的网页相册。它专门用来创建HTML图库,展示AI生成的图片和对应的描述。
3.6 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
| :— | :— | :— | :— | :— | :— | :— |
| 文件名前缀 | filename_prefix | 字符串 | gallery | 给导出的相册文件起个名字的开头部分 | 指定导出文件的前缀名称 | 输入"my_art",导出的文件会叫"my_art.html" |
| 图片导出格式 | image_export_format | 下拉选择 | .webp lossy 90 | 选择图片保存的格式,影响清晰度和文件大小 | 确定导出图片的压缩格式和质量 | 选择".png lossless"可以获得最高质量 |
| 嵌入所有图片 | embed_all_images_in_html | 布尔值 | True | 是否把所有图片都塞进网页文件里 | 控制是否将图片嵌入HTML文件中 | 选择True可以生成一个包含所有内容的单个文件 |
| 图片列表 | images | 图片列表 | (必填) | 要制作成相册的图片们 | 需要导出的图片数据 | 连接你生成的图片输出 |
| 描述列表 | prompts | 多行文本 | (必填) | 每张图片对应的描述文字 | 与图片对应的提示词 | 连接Prompt Combinator的描述输出 |
| 编号列表 | combination_ids | 列表 | (必填) | 每张图片对应的编号 | 与图片对应的组合ID | 连接Prompt Combinator的编号输出 |
输出说明:
- 这个节点不产生直接输出,而是在指定目录生成HTML文件和图片文件
3.7 🔢 Pick Random Prompt from Prompt Combinator 节点(随机选择器)
这个节点就像一个"抽奖机",从一大堆组合好的描述中随机选择一个。它专门用来随机选择一个提示词,增加创作的多样性和意外惊喜。
3.8 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
| :— | :— | :— | :— | :— | :— | :— |
| 描述列表 | prompts | 多行文本 | (必填) | 要从中选择的描述文字列表 | 用于随机选择的提示词字符串 | 连接Prompt Combinator的描述输出 |
| 编号列表 | combination_ids | 列表 | (必填) | 描述对应的编号列表 | 与提示词对应的组合ID | 连接Prompt Combinator的编号输出 |
| 随机种子 | seed | 整数 | 0 | 控制随机选择的"规律",相同种子会得到相同结果 | 随机数生成器的种子值 | 设置为42,每次运行都会选择相同的描述 |
输出说明:
- 选中的描述 (prompt):随机选择的描述文字
- 选中的编号 (combination_id):选中描述对应的编号
- 文件名 (filename):基于编号生成的文件名
4. 使用技巧和建议
4.1 词语列表的组织技巧
- 使用标签功能:在词语前加上标签,格式为"标签@内容",比如"cat@一只猫"
- 利用注释:用#开头的行会被忽略,可以用来做笔记
- 分类清晰:把相似的词语放在同一个列表里,比如颜色、动物、场景分开
4.2 避免组合爆炸
- 控制列表长度:如果每个列表都很长,组合数量会非常巨大
- 分批处理:可以先用少量词语测试,确认效果后再扩大规模
- 使用随机选择器:当组合太多时,用随机选择器来挑选一部分
4.3 文件管理建议
- 设置有意义的文件名前缀:这样生成的文件更好识别
- 选择合适的图片格式:如果要分享选择压缩格式,如果要保存选择无损格式
- 合理使用嵌入功能:单个文件方便分享,分离文件方便管理
5. 常见问题解答
5.1 为什么我的组合结果是空的?
- 检查是否至少填写了"输入列表1"
- 确认词语列表中没有空行或只有空格的行
- 检查是否所有行都被当作注释了(以#开头)
5.2 组合数量太多怎么办?
- 减少每个列表中的词语数量
- 使用随机选择器节点来挑选部分结果
- 分批处理,不要一次性生成太多组合
5.3 生成的网页相册打不开?
- 检查图片、描述、编号三个输入的数量是否一致
- 确认输出目录有写入权限
- 检查文件名前缀是否包含特殊字符
5.4 合并器节点报错?
- 确保两个输入的描述和编号都不为空
- 检查连接的节点是否正确运行
- 确认数据格式匹配
5.5 随机选择器总是选择相同的结果?
- 改变随机种子的值
- 确认输入的描述列表不为空
- 检查编号列表的长度是否与描述列表一致
6. 实际应用案例
6.1 角色设计案例
假设你要设计各种角色:
- 列表1:猫、狗、鸟、龙
- 列表2:可爱、威武、神秘、古怪
- 列表3:在森林里、在城市里、在海边、在山上
这样就能生成64种不同的角色设定,比如"可爱的猫在森林里"、"威武的龙在城市里"等等。
6.2 场景创作案例
如果你想创作各种场景:
- 列表1:spring@春天、summer@夏天、autumn@秋天、winter@冬天
- 列表2:sunny@晴朗、rainy@雨天、snowy@雪天
- 列表3:park@公园、beach@海滩、mountain@山区
使用标签功能可以让文件名更清晰,比如"spring_sunny_park_001.png"。
6.3 批量创作流程
- 用主要的Prompt Combinator生成基础组合
- 用第二个Prompt Combinator生成风格组合
- 用Merger节点合并两组结果
- 用随机选择器挑选有趣的组合进行创作
- 用Export Gallery节点制作作品集
这个插件特别适合需要大量变化的创作项目,能大大提高工作效率,让你的创意更加丰富多样!