文章封面:
介绍
项目地址:https://github.com/Alectriciti/comfyui-adaptiveprompts
这是一个类似于 Dynamic Prompts 的插件,他可以随机打乱提示词来实现创意。
Separator Syntax(分隔符语法)
语法如下:
{ COUNT_RULE $$ SEPARATOR $$ CANDIDATE_POOL }
COUNT_RULE : 表示控制要选多少个,可以固定或范围
SEPARATOR : 表示之间选出的连接词
CANDIDATE_POOL : 表示候选池
示例:
{3-4$$ __and__ $$A|B|C|D|E}
其中文件 and.txt 中有如下内容:
and
with
or
plus
获得的结果:每运行一次一种
A or E and B
C and D with B or A
B with C and D
解释:从 A, B, C, D, E 当中随机选择 3-4 个词,并从 and.txt 文件夹中随机抽取一个拼接词进行组合。
各节点用途
我整理了 comfyui-adaptiveprompts 的节点说明和用途,它是基于 Dynamic Prompts 的现代重构版,提供了一整套用于 生成、处理、组合、清理和增强 Prompt 的工具箱,而不是单一功能节点。各节点的用途如下(摘录自官方 README + 节点参考列表):(GitHub)
Prompt 生成节点(Prompt Generation)
这些节点负责 产生 prompt 字符串,支持动态语法、通配符、变量等机制。
| 节点 | 主要用途 | 特点 |
|---|---|---|
| Prompt Generator | 从输入 prompt 中生成动态 prompt | 支持 {brackets} 和 __wildcards__,类似传统 Dynamic Prompts 核心功能 |
| Prompt Generator (Advanced) | 更强的 prompt 生成 | 支持隐藏注释、指定 wildcards 目录、可处理更复杂结构 (GitHub) |
| Prompt Sequencer | 按顺序输出每个组合(不是随机) | 用于你这种“穷举而非随机”的需求 (GitHub) |
| Prompt Repack | 把自然语言 prompt 拆解成 wildcard 形式 | 可以将现有 prompt 反向转换成可复用的 wildcard 格式 (GitHub) |
| Prompt Replace | 强力查找并替换文本 | 输入支持 dynamic 语法,可用于批量替换、定制化改写 prompt (GitHub) |
| Prompt Alias Swap | 利用 alias 规则自动替换 tag | 从 alias 文件中读取替换对,自动更换关键词(随机模式) (GitHub) |
| Prompt Context Merge | 合并 Prompt Generator 生成的上下文 | 用于在多个生成步骤之间共享变量上下文信息 (GitHub) |
Prompt 处理节点(Prompt Processing)
这些节点主要 操作和修改字符串,重点在提高 prompt 的质量或变异性。
| 节点 | 主要用途 | 特点 |
|---|---|---|
| Weight Lifter | 为短语添加或调整权重 | 例如自动为关键短语加 (prompt:1.1) 这种权重标签 (GitHub) |
| Prompt Splitter | 分割或提取 prompt 的一部分 | 可按逗号隔断,抽离某段文本用于进一步处理 (GitHub) |
| Prompt Mixer | 混合两个 prompt | 类似“交叉合并”不同 prompt,可用于变体创造 (GitHub) |
| Prompt Shuffle | 随机打散短语顺序 | 控制打散程度,增强 prompt 多样性 (GitHub) |
| Prompt Shuffle (Advanced) | 更细粒度的打散策略 | 使用行走算法等增强 shuffle 逻辑 (GitHub) |
| Prompt Cleanup | 清理 prompt | 移除多余空格、逗号、多余 LoRA tag 等,提高输出整洁度 (GitHub) |
字符串/实用工具节点(Utility)
用于分割、拼接等基础字符串操作,以及生成额外辅助数据。
| 节点 | 主要用途 |
|---|---|
| String Append | 多字符串组合成一个 prompt |
| String Split | 按指定模式分割字符串 |
| Tag Counter | 对 prompt 内标签进行计数 |
| Normalize Lora Tags | 统一 LoRA 标签的权重格式 |
| SaveImageAndText | 生成后的图像同时保存 prompt 及文本信息 |
| Scaled Seed Generator | 生成确定性的 seed,用于多图变体控制 |
这些工具可以配合前面各类节点做更细粒度的 prompt 管理,例如在生成之前预处理字符串,在生成之后保存带 metadata 的结果等。(GitHub)
核心用途总结
整体来看,Adaptive Prompts 的节点架构支持以下主要能力:
| 功能类别 | 能力描述 |
|---|---|
| 动态 Prompt 生成 | 通过 {}、通配符、变量等生成复杂变体 |
| 顺序轮询 / 穷举 | 按固定顺序遍历所有组合(替换你说的轮询,而不是随机) |
| Prompt 编辑与替换 | 支持查找替换、提取片段等强文本操作 |
| Prompt 质量优化 | 自动加入权重、清理结构、统一标签格式 |
| 组合与混合 | 将多个 prompt 或片段组合出更丰富变体 |
你可以把这些节点视为一本“Prompt Engineering 的函数库:从字符串生成、变体、重写到清理和保存**。(GitHub)
典型使用场景(与你的需求对应)
替换某个维度(如发色)并穷举输出组合
使用Prompt Sequencer(顺序轮询,非随机)搭配{}语法。输出一组 prompt 列表,接入标准编码/采样链路。生成更复杂变体(同时多个维度变化)
用Prompt Generator (Advanced)或多个 Sequencer 联动。增强 prompt 表达
在生成后用Weight Lifter调整权重,用Prompt Cleanup去除冗余。跨 prompt 混合风格
通过Prompt Mixer将不同 prompt 融合成新的组合。(GitHub)
参考资料:
- ChatGPT