Prompt PostProcessor (PPP) 插件完全新手教程
1. 插件简介
插件GitHub地址: https://github.com/acorderob/sd-webui-prompt-postprocessor
这个插件就像一个超级智能的文字处理助手,专门用来整理和处理你写的提示词。你可以把它想象成一个贴心的小秘书,它会帮你:
- 自动整理提示词:把你不想要的词汇自动移到负面提示词里
- 处理随机词汇:支持各种随机词汇格式,让你的创作更有趣
- 清理多余内容:自动去掉重复或者无用的词汇
- 智能分类:根据不同的模型自动调整提示词内容
简单来说,这个插件能让你的提示词变得更聪明、更整洁,生成的图片效果也更好!
2. 如何安装
ComfyUI 安装方法:
-
通过管理器安装(推荐新手):
- 打开 ComfyUI
- 点击 "Manager"(管理器)
- 选择 "Custom Nodes Manager"(自定义节点管理器)
- 在搜索框输入 "Prompt PostProcessor"
- 找到后点击 "Install"(安装)
-
通过 Git 链接安装:
- 在管理器中选择 "Install via Git URL"
- 输入:
https://github.com/acorderob/sd-webui-prompt-postprocessor - 点击安装
-
安装完成后重启 ComfyUI
3. 节点详细解析
3.1 PPP 主处理节点
这是插件的核心节点,就像一个多功能的文字处理机器。它能接收你的提示词,按照你设定的规则进行各种处理,然后输出处理后的结果。
3.2 PPP 主处理节点参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 正面提示词 | positive_prompt | 文本框 | 你想要的描述 | 就像告诉画家你想画什么,比如"美丽的女孩" | 用于生成图像的正向引导文本 | 输入:a beautiful girl, blue eyes |
| 负面提示词 | negative_prompt | 文本框 | 你不想要的描述 | 告诉画家不要画什么,比如"不要模糊" | 用于避免不想要元素的反向引导文本 | 输入:blurry, ugly, bad quality |
| 处理规则 | processing_rules | 文本框 | 具体的处理指令 | 就像给助手写的工作指令,告诉它怎么整理文字 | 定义如何处理和转换提示词的规则集合 | 输入:[bad] -> negative: 把包含bad的词移到负面 |
| 启用随机词汇 | enable_wildcards | 开关 | True/False | 像抽奖机一样,随机选择词汇让画面更有趣 | 是否启用通配符随机选择功能 | 开启后可以用 {red|blue|green} 随机选颜色 |
| 随机词汇处理方式 | wildcard_mode | 下拉菜单 | process/ignore | 决定遇到随机词汇时是处理还是忽略 | 设置通配符的处理模式 | process:处理随机词汇,ignore:保持原样 |
| 清理模式 | cleanup_mode | 下拉菜单 | normal/aggressive | 像打扫房间,normal是普通打扫,aggressive是深度清洁 | 设置提示词清理的严格程度 | normal:基本清理,aggressive:彻底清理重复词 |
| 变量设置 | variables | 文本框 | key=value格式 | 就像给东西起外号,方便后面重复使用 | 定义可在处理规则中使用的变量 | 输入:style=anime, quality=high quality |
| 模型过滤 | model_filter | 文本框 | 模型名称关键词 | 就像给不同的画家准备不同的画笔 | 根据当前模型名称过滤处理规则 | 输入:SDXL 只对SDXL模型生效 |
| 调试模式 | debug_mode | 开关 | True/False | 像开车时的仪表盘,显示内部工作状态 | 是否显示详细的处理过程信息 | 开启后会在控制台显示详细处理信息 |
| 输出格式 | output_format | 下拉菜单 | standard/comfy | 决定输出的文字格式,就像选择不同的包装盒 | 选择输出提示词的格式标准 | standard:标准格式,comfy:ComfyUI专用格式 |
| 处理顺序 | processing_order | 数字 | 1-100 | 就像排队号码,决定这个节点什么时候工作 | 在多个处理节点中的执行优先级 | 数字越小越先执行,默认50 |
| 保留原始 | preserve_original | 开关 | True/False | 像备份文件一样,保留原始的提示词 | 是否在处理时保留原始提示词内容 | 开启后原始内容会被标记保护 |
| 大小写敏感 | case_sensitive | 开关 | True/False | 就像查字典时区分大小写字母 | 处理规则是否区分字母大小写 | 开启后Good和good被视为不同词汇 |
| 分隔符 | separator | 文本框 | 逗号等符号 | 就像用什么符号把词汇分开,比如用逗号 | 用于分隔提示词元素的字符 | 默认用逗号,可改为分号或其他符号 |
3.3 PPP 变量设置节点
这个节点就像一个变量储存盒,你可以在这里定义各种变量,然后在其他地方重复使用。
3.4 PPP 变量设置节点参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 变量名 | variable_name | 文本框 | 自定义名称 | 就像给东西起个名字,方便后面叫它 | 定义变量的标识符名称 | 输入:my_style |
| 变量值 | variable_value | 文本框 | 具体内容 | 这个名字代表什么具体内容 | 变量所对应的实际值 | 输入:anime style, high quality |
| 变量类型 | variable_type | 下拉菜单 | string/number/boolean | 就像分类箱,不同类型的东西放不同地方 | 定义变量的数据类型 | string:文字,number:数字,boolean:是否 |
| 作用域 | scope | 下拉菜单 | global/local | 就像房间钥匙,global是万能钥匙,local只能开一扇门 | 变量的使用范围 | global:全局可用,local:仅当前工作流可用 |
| 是否覆盖 | overwrite | 开关 | True/False | 就像决定是否覆盖已有的文件 | 是否覆盖已存在的同名变量 | 开启后会替换已有的同名变量 |
| 默认值 | default_value | 文本框 | 备用内容 | 就像备用轮胎,主要的坏了用这个 | 当变量未定义时使用的默认值 | 输入:default style |
3.5 PPP 条件过滤节点
这个节点就像一个智能分拣机,能根据不同的条件来决定是否处理某些内容。
3.6 PPP 条件过滤节点参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 过滤条件 | filter_condition | 文本框 | 条件表达式 | 就像设定一个筛选标准,符合条件的才通过 | 定义过滤内容的逻辑条件 | 输入:model_name contains "SDXL" |
| 匹配模式 | match_mode | 下拉菜单 | exact/contains/regex | 就像查找模式,exact是完全一样,contains是包含,regex是高级查找 | 设置条件匹配的方式 | exact:完全匹配,contains:包含匹配,regex:正则匹配 |
| 过滤动作 | filter_action | 下拉菜单 | include/exclude | 就像门卫,include是放行,exclude是拒绝 | 满足条件时的处理动作 | include:包含符合条件的,exclude:排除符合条件的 |
| 目标字段 | target_field | 下拉菜单 | positive/negative/both | 就像选择处理哪个垃圾桶的内容 | 指定要过滤的提示词字段 | positive:只处理正面提示词,negative:只处理负面提示词 |
| 忽略大小写 | ignore_case | 开关 | True/False | 就像不区分大小写字母的查找 | 是否忽略字母大小写进行匹配 | 开启后Good和good被视为相同 |
| 应用范围 | apply_scope | 下拉菜单 | word/phrase/full | 就像选择影响范围,word是单词,phrase是词组,full是全部 | 设置过滤作用的文本范围 | word:单个词汇,phrase:词组,full:整个文本 |
3.7 PPP 随机词汇节点
这个节点专门处理随机词汇,就像一个智能的抽奖机器。
3.8 PPP 随机词汇节点参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 随机词汇文本 | wildcard_text | 文本框 | 包含随机语法的文本 | 就像写抽奖盒子的标签,用特殊格式写选项 | 包含通配符语法的原始文本 | 输入:{red|blue|green} car |
| 随机模式 | random_mode | 下拉菜单 | single/multiple/all | 就像抽奖规则,single抽一个,multiple抽多个,all全要 | 设置随机选择的方式 | single:选一个,multiple:选多个,all:都选 |
| 随机种子 | random_seed | 数字 | 任意数字 | 就像抽奖机的设置,相同数字总是抽到相同结果 | 控制随机结果的种子值 | 输入:12345 每次都得到相同的随机结果 |
| 权重支持 | weight_support | 开关 | True/False | 就像抽奖盒里有些球多有些球少,影响中奖概率 | 是否支持带权重的随机选择 | 开启后可用 {red:2|blue:1} 红色概率更高 |
| 嵌套深度 | nesting_depth | 数字 | 1-10 | 就像俄罗斯套娃,盒子里还有盒子,数字是套了几层 | 支持的嵌套通配符层数 | 设为3可以处理 {a|{b|c}} 这样的嵌套 |
| 未处理处理 | unprocessed_action | 下拉菜单 | ignore/remove/error | 遇到不认识的格式时怎么办,ignore忽略,remove删除,error报错 | 对无法处理的通配符的处理方式 | ignore:保持原样,remove:删除,error:报错停止 |
| 输出格式 | output_format | 下拉菜单 | processed/raw/both | 就像选择输出什么,processed是处理后的,raw是原始的,both是都要 | 选择节点的输出内容格式 | processed:只输出处理结果,raw:只输出原始内容 |
3.9 PPP 文本清理节点
这个节点就像一个专业的文字清洁工,专门清理和整理文本。
3.10 PPP 文本清理节点参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 输入文本 | input_text | 文本框 | 要清理的文本 | 就像把要洗的衣服放进洗衣机 | 需要进行清理处理的原始文本 | 输入:messy, text, , with, duplicates, duplicates |
| 清理模式 | cleanup_mode | 下拉菜单 | basic/advanced/custom | 就像洗衣机的不同档位,basic是普通洗,advanced是深度洗 | 设置文本清理的严格程度 | basic:基本清理,advanced:深度清理,custom:自定义 |
| 去除重复 | remove_duplicates | 开关 | True/False | 就像去掉重复的东西,比如两个一样的词 | 是否移除重复的词汇或短语 | 开启后 "good, good" 变成 "good" |
| 去除空白 | remove_empty | 开关 | True/False | 就像去掉空的盒子,没内容的部分删掉 | 是否移除空白和无内容的部分 | 开启后会删除多余的空格和逗号 |
| 标准化空格 | normalize_spaces | 开关 | True/False | 就像把不整齐的空格整理成标准格式 | 是否标准化空格和分隔符 | 开启后多个空格变成一个空格 |
| 修剪两端 | trim_ends | 开关 | True/False | 就像剪掉绳子两端的毛边 | 是否移除文本开头和结尾的空白 | 开启后会去掉开头结尾的空格 |
| 自定义规则 | custom_rules | 文本框 | 自定义清理规则 | 就像给清洁工写特殊的清洁指令 | 用户自定义的文本清理规则 | 输入:remove_pattern="bad" 删除所有包含bad的词 |
| 保留格式 | preserve_format | 开关 | True/False | 就像洗衣服时保持原来的形状 | 是否保持原始的文本格式结构 | 开启后会保留原有的换行和特殊格式 |
| 大小写处理 | case_handling | 下拉菜单 | keep/lower/upper/title | 就像决定字母是大写还是小写 | 设置文本的大小写处理方式 | keep:保持原样,lower:全小写,upper:全大写 |
4. 使用技巧和建议
4.1 新手入门建议
- 从简单开始:先试试基本的文本清理功能,不要一开始就用复杂的规则
- 多用变量:把常用的词汇设置成变量,方便重复使用
- 开启调试模式:刚开始学习时建议开启调试模式,能看到具体的处理过程
- 备份原始提示词:使用
preserve_original选项保留原始内容
4.2 高级使用技巧
- 组合使用节点:多个节点可以串联使用,形成复杂的处理流程
- 利用条件过滤:根据不同的模型使用不同的处理规则
- 巧用随机词汇:用随机词汇增加创作的多样性
- 定期清理:使用文本清理节点定期整理你的提示词库
4.3 性能优化建议
- 合理设置处理顺序:重要的处理节点优先级设高一些
- 避免过度嵌套:随机词汇嵌套不要太深,影响性能
- 分批处理:大量文本建议分批处理,避免卡顿
5. 常见问题解答
5.1 安装相关问题
Q:安装后找不到节点怎么办?
A:重启ComfyUI,如果还是找不到,检查是否安装成功,可以在控制台查看是否有报错信息。
Q:节点显示红色报错怎么办?
A:通常是缺少依赖,检查Python环境是否正确,或者重新安装插件。
5.2 使用相关问题
Q:随机词汇不起作用怎么办?
A:检查是否开启了 enable_wildcards 选项,并确保随机词汇格式正确。
Q:处理规则不生效怎么办?
A:检查语法是否正确,可以开启调试模式查看具体的处理过程。
Q:文本清理后格式乱了怎么办?
A:尝试开启 preserve_format 选项,保持原始格式。
5.3 进阶问题
Q:如何写复杂的处理规则?
A:建议查看官方文档的语法说明,从简单规则开始,逐步增加复杂度。
Q:多个节点之间如何配合?
A:可以通过设置不同的 processing_order 来控制执行顺序,低数字的先执行。
6. 实际应用案例
6.1 基础案例:自动整理提示词
场景:你写了一个很长的提示词,里面有重复的词汇,想要自动清理。
配置:
- 使用 PPP 文本清理节点
- 开启
remove_duplicates - 开启
remove_empty - 开启
normalize_spaces
效果:自动去掉重复词汇,清理多余空格,让提示词更整洁。
6.2 进阶案例:随机风格生成
场景:想要随机生成不同风格的图片。
配置:
- 使用 PPP 随机词汇节点
- 设置随机文本:
{anime|realistic|cartoon} style, {warm|cool|vibrant} colors - 设置随机模式为
single
效果:每次生成都会随机选择不同的风格和颜色组合。
6.3 高级案例:智能模型适配
场景:根据不同的模型自动调整提示词。
配置:
- 使用 PPP 条件过滤节点
- 设置过滤条件:
model_name contains "SDXL" - 对SDXL模型使用特定的处理规则
效果:根据加载的模型自动应用最适合的提示词处理方式。
7. 总结
Prompt PostProcessor 是一个功能强大的提示词处理工具,它就像一个贴心的助手,帮你把杂乱的提示词变得整洁有序。通过合理使用各种节点和参数,你可以大大提高创作效率,生成更好的图片效果。
记住,刚开始使用时不要贪多,先掌握基本功能,然后逐步尝试更高级的特性。多练习,多实验,你很快就能成为提示词处理的高手!