ComfyUI Dynamic Prompts 插件完全教程
1. 插件简介
插件地址: https://github.com/adieyal/comfyui-dynamicprompts
ComfyUI Dynamic Prompts 是一个超级实用的插件,就像给你的 ComfyUI 装了一个"智能提示词生成器"。想象一下,你平时写提示词是不是经常词穷?或者想要更多变化但又懒得一个个手动改?这个插件就是来解决这些问题的!
这个插件能给你带来什么效果:
- 🎲 随机变化:一个提示词模板能自动生成无数种变化,就像抽奖机一样
- 🔄 组合排列:把所有可能的组合都试一遍,不放过任何一种可能
- 🍀 运气加成:输入简单词汇,自动帮你找到网上相关的优质提示词
- ✨ 智能扩展:用人工智能帮你的提示词添加更多细节和修饰
- 🎨 模板功能:像填空题一样写提示词,让创作更有条理
简单来说,这就是一个让你的提示词"活起来"的神器!
2. 如何安装
方法一:使用 ComfyUI-Manager(推荐)
- 先安装 ComfyUI-Manager(如果还没装的话)
- 在 ComfyUI-Manager 菜单中点击"Install Custom Nodes"
- 搜索"dynamicprompts"
- 点击安装即可
方法二:手动安装
- 打开终端,进入你的 ComfyUI 根目录
- 运行以下命令:
git clone https://github.com/adieyal/comfyui-dynamicprompts custom_nodes/comfyui-dynamicprompts python -m pip install -r custom_nodes/comfyui-dynamicprompts/requirements.txt python custom_nodes/comfyui-dynamicprompts/install.py mkdir custom_nodes/comfyui-dynamicprompts/wildcards - 重启 ComfyUI
3. 节点详细解析
3.1 Random Prompts(随机提示词生成器)
这个节点就像一个"抽奖机",每次运行都会从你设置的选项中随机选择一个。比如你写了{红色|蓝色|绿色}的花,它就会随机选择红色、蓝色或绿色中的一个。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| text | text | 字符串 | 包含变量的提示词 | 这是你要"变化"的提示词模板,就像一个有空格的填空题 | 支持动态提示词语法的文本输入,包含变量和通配符 | 输入:{cat|dog|bird} in the {garden|park},会随机生成"cat in the garden"或"dog in the park"等组合 |
| seed | seed | 整数 | 0 | 这是"随机数种子",就像抽奖机的起始位置,相同数字会得到相同结果 | 控制随机数生成器的种子值,确保可重现的随机结果 | 设为0表示完全随机,设为123则每次都会得到相同的随机序列 |
| autorefresh | autorefresh | Yes/No | No | 是否每次都重新"抽奖",Yes表示每次都换新的,No表示用同一个结果 | 控制是否在每次执行时重新生成提示词 | 选Yes:每次生成图片都用不同提示词;选No:一直用同一个提示词直到手动刷新 |
3.2 Combinatorial Prompts(组合提示词生成器)
这个节点像一个"排列组合计算器",会把你提供的所有选项进行排列组合,确保每种可能都试一遍。如果你有3种颜色和2种动物,它会生成6种不同的组合。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| text | text | 字符串 | 包含变量的提示词 | 这是你要"排列组合"的提示词模板,就像数学课上的排列组合题 | 支持动态提示词语法的文本输入,用于生成所有可能的组合 | 输入:{red|blue} {cat|dog},会依次生成"red cat"、"red dog"、"blue cat"、"blue dog" |
| seed | seed | 整数 | 0 | 这是"组合顺序"的起始点,决定从哪个组合开始 | 控制组合生成的起始种子值 | 设为0从第一个组合开始,设为其他数字从对应位置开始 |
| autorefresh | autorefresh | Yes/No | No | 是否每次都重新开始组合循环 | 控制是否重新开始组合序列 | 选Yes:每次都从头开始组合;选No:按顺序继续下一个组合 |
3.3 I'm Feeling Lucky(手气不错)
这个节点就像"百度一下"的"手气不错"按钮,你输入一个简单的词,它会自动从网上找到相关的优质提示词。比如你输入"猫",它可能会找到"cute fluffy cat with blue eyes sitting on a windowsill"这样的详细描述。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| text | text | 字符串 | 简单的关键词 | 这是你的"搜索词",就像在搜索引擎里输入关键词 | 用于搜索相关提示词的基础文本输入 | 输入:"sunset",可能返回"beautiful golden sunset over calm ocean with dramatic clouds" |
| seed | seed | 整数 | 0 | 这是"搜索结果"的随机种子,影响找到哪个结果 | 控制搜索结果选择的随机性 | 不同的seed值会从搜索结果中选择不同的提示词 |
| autorefresh | autorefresh | Yes/No | No | 是否每次都重新搜索新的提示词 | 控制是否每次执行时重新获取网络提示词 | 选Yes:每次都搜索新内容;选No:使用已缓存的搜索结果 |
3.4 Magic Prompt(魔法提示词)
这个节点就像一个"智能写作助手",你给它一个简单的提示词,它会用人工智能帮你添加更多细节、修饰词和描述,让你的提示词变得更丰富更专业。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| text | text | 字符串 | 基础提示词 | 这是你的"原始想法",AI会帮你把它变得更详细更专业 | 基础提示词输入,将被AI模型扩展和优化 | 输入:"a dog",可能输出:"a beautiful golden retriever dog sitting in a sunny meadow, highly detailed, photorealistic" |
| seed | seed | 整数 | 0 | 这是AI"创作风格"的种子,影响AI如何扩展你的提示词 | 控制AI生成扩展内容的随机性和一致性 | 相同seed会产生相似的扩展风格,不同seed会有不同的创意方向 |
| autorefresh | autorefresh | Yes/No | No | 是否每次都让AI重新"创作"新的扩展版本 | 控制是否每次执行时重新生成AI扩展内容 | 选Yes:每次都获得不同的AI扩展;选No:使用已生成的扩展内容 |
3.5 Jinja2 Templates(模板生成器)
这个节点就像一个"智能填空题生成器",你可以写带有逻辑的模板,比如"如果是白天就显示太阳,如果是晚上就显示月亮"。它支持条件判断、循环等高级功能。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| text | text | 字符串 | Jinja2模板语法 | 这是你的"智能模板",可以包含条件判断和循环,就像编程一样 | 支持Jinja2模板语法的文本输入,可包含变量、条件和循环 | 输入:{% set time = 'day' %}{% if time == 'day' %}sunny landscape{% else %}moonlit scene{% endif %} |
| autorefresh | autorefresh | Yes/No | No | 是否每次都重新"计算"模板结果 | 控制是否每次执行时重新处理模板 | 选Yes:每次都重新执行模板逻辑;选No:使用已处理的模板结果 |
3.6 OutputString(输出显示器)
这个节点就像一个"显示屏",专门用来显示文字内容。其他节点生成的提示词可以连接到这里来查看具体内容,方便你检查生成的结果。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| text | text | 字符串 | 任意文本 | 这是要"显示"的内容,就像电脑屏幕显示文字一样 | 用于显示和输出的文本内容 | 连接其他节点的输出,在界面上显示生成的提示词内容 |
4. 使用技巧和建议
4.1 基础语法技巧
- 选择语法:使用
{选项1|选项2|选项3}来创建随机选择 - 嵌套使用:可以在选择中再嵌套选择,如
{red {cat|dog}|blue bird} - 权重控制:使用
{选项1::2|选项2::1}来控制选择概率(2:1的比例)
4.2 通配符文件
- 在
wildcards文件夹中创建.txt文件 - 每行写一个选项,使用
__文件名__来引用 - 例如:创建
animals.txt,内容为猫、狗、鸟,然后用__animals__引用
4.3 节点组合建议
- 创意探索:Random + Magic Prompt 组合,先随机后增强
- 系统测试:Combinatorial + OutputString 组合,查看所有可能性
- 灵感获取:I'm Feeling Lucky + Random 组合,获得意外惊喜
4.4 性能优化
- 大量组合时建议分批处理
- 使用 seed 值来复现喜欢的结果
- autorefresh 设为 No 可以提高稳定性
5. 常见问题解答
Q1: 为什么我的变量语法不生效?
A: 检查是否使用了正确的语法 {选项1|选项2},注意是竖线 | 不是其他符号。
Q2: Combinatorial 节点生成的组合太多怎么办?
A: 可以减少变量选项数量,或者使用 Random 节点代替。
Q3: I'm Feeling Lucky 节点没有返回结果?
A: 这个节点需要网络连接,检查网络是否正常,或者输入的关键词是否太复杂。
Q4: Magic Prompt 节点运行很慢?
A: 这个节点需要下载AI模型,首次使用会比较慢,后续会快很多。
Q5: 通配符文件放在哪里?
A: 放在 custom_nodes/comfyui-dynamicprompts/wildcards/ 文件夹中。
Q6: 如何查看生成的具体提示词?
A: 使用 OutputString 节点连接其他节点的输出,或者查看控制台输出。
6. 实用示例
示例1:人物肖像变化
{beautiful|handsome|cute} {woman|man|child} with {blue|brown|green} eyes, {smiling|serious|laughing}, {professional|casual|elegant} {photo|portrait|headshot}
示例2:风景场景组合
{sunrise|sunset|noon|midnight} over {ocean|mountain|forest|city}, {dramatic|peaceful|mysterious} atmosphere, {photorealistic|artistic|cinematic} style
示例3:艺术风格混合
{oil painting|watercolor|digital art|sketch} of __animals__ in {impressionist|realistic|abstract|cartoon} style, {warm|cool|vibrant|muted} colors
7. 高级应用
7.1 创建复杂的提示词系统
结合多个节点创建复杂的提示词生成系统:
- 使用 Random 节点生成基础场景
- 用 Magic Prompt 增强细节
- 通过 OutputString 查看结果
- 最终连接到 CLIP Text Encode
7.2 批量测试不同风格
使用 Combinatorial 节点系统性地测试不同参数组合,找到最佳效果。
7.3 建立个人提示词库
创建多个通配符文件,建立属于自己的提示词素材库。
总结: ComfyUI Dynamic Prompts 插件是一个功能强大的提示词生成工具,通过6个不同功能的节点,可以大大提升你的创作效率和创意多样性。无论是新手还是高手,都能从中找到适合自己的使用方式。记住,多实践多尝试,你会发现更多有趣的用法!