ComfyUI-PromptUtilities 插件详细教程
1. 插件简介
插件地址: https://github.com/nkchocoai/ComfyUI-PromptUtilities
ComfyUI-PromptUtilities 是一个专门为 ComfyUI 设计的文字描述(提示词)处理工具包。就像给你的 ComfyUI 装了一个专门处理文字的工具箱,里面有各种各样的小工具,让你可以更方便地处理图片生成时需要的文字描述。
这个插件能给我们带来的效果:
- 把多段文字像拼积木一样拼接在一起
- 从预设的文字模板中随机选择或按需选择
- 把文字格式化成我们想要的样子
- 给文字添加随机的权重(就像调节每个词的重要程度)
- 让文字输入变得更加灵活和方便
2. 如何安装
方法一:使用 ComfyUI Manager(推荐)
- 打开 ComfyUI,在右下角找到 "Manager" 按钮并点击
- 点击 "Install Custom Nodes" 选项
- 在搜索框中输入 "PromptUtilities"
- 找到 "ComfyUI-PromptUtilities" 后点击 "Install"
- 重启 ComfyUI 即可
方法二:手动安装
- 打开电脑的命令行工具(Windows 用户按 Win+R,输入 cmd 回车)
- 进入你的 ComfyUI 目录下的 custom_nodes 文件夹
- 输入以下命令:
git clone https://github.com/nkchocoai/ComfyUI-PromptUtilities.git
- 重启 ComfyUI 即可
3. 节点逐一解析
3.1 Join String List 节点 - 文字拼接器
这个节点就像一个文字拼接机,能把多个文字片段用你指定的连接符串联起来,就像用胶水把珠子串成手链一样。
3.1.1 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 分隔符 | separator | 文本输入 | ", " | 就像两个珠子之间的连接线,决定用什么符号来连接不同的文字片段 | 用于连接多个字符串的分隔符 | 输入", "会用逗号和空格连接;输入" and "会用" and "连接 |
| 参数1 | arg1 | 文本输入 | 无 | 第一个要拼接的文字片段,就像第一颗珠子 | 第一个输入字符串 | 输入"美丽的女孩" |
| 参数2 | arg2 | 文本输入 | 无 | 第二个要拼接的文字片段,就像第二颗珠子 | 第二个输入字符串 | 输入"长发飘飘" |
| 参数3 | arg3 | 文本输入 | 无 | 第三个要拼接的文字片段,就像第三颗珠子 | 第三个输入字符串 | 输入"微笑着" |
3.2 Format String 节点 - 文字格式化器
这个节点像一个文字模板器,你可以设置一个模板,然后把不同的内容填进去,就像填空题一样。
3.2.1 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 模板 | prompt | 文本输入 | 无 | 一个带有占位符的文字模板,就像一个填空题的题目 | 包含占位符的格式化字符串模板 | 输入"一个[1]的[2]在[3]",其中[1][2][3]是占位符 |
| 参数1 | arg1 | 文本输入 | 无 | 用来替换模板中[1]的内容 | 替换占位符[1]的字符串 | 输入"美丽"会替换模板中的[1] |
| 参数2 | arg2 | 文本输入 | 无 | 用来替换模板中[2]的内容 | 替换占位符[2]的字符串 | 输入"女孩"会替换模板中的[2] |
| 参数3 | arg3 | 文本输入 | 无 | 用来替换模板中[3]的内容 | 替换占位符[3]的字符串 | 输入"花园里"会替换模板中的[3] |
3.3 Load Preset 节点 - 预设加载器
这个节点就像一个预设好的文字库,里面存放着各种现成的文字描述,你可以选择你想要的那一套。
3.3.1 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 预设选择 | choice_preset | 下拉选择 | 根据需要选择 | 从预设文件夹中选择一个预设包,就像从衣柜里选择一套衣服 | 选择预设文件中的特定预设配置 | 选择"animagineXL.csv"会加载动漫风格的预设 |
3.4 Load Preset (Advanced) 节点 - 高级预设加载器
这个节点是预设加载器的升级版,不仅能加载文字描述,还能加载其他相关设置,就像一个完整的套餐。
3.4.1 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 预设选择 | choice_preset | 下拉选择 | 根据需要选择 | 从高级预设文件夹中选择一个完整的预设包,包含正面描述、负面描述、LoRA等信息 | 选择包含完整配置的JSON预设文件 | 选择一个包含人物、风格、LoRA的完整预设 |
3.5 Random Preset 节点 - 随机预设选择器
这个节点就像一个抽奖机,会从预设文件中随机选择一个,让你的作品更有惊喜感。
3.5.1 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 文件名 | filename | 下拉选择 | 根据需要选择 | 选择要从中随机抽取预设的文件,就像选择抽奖箱 | 指定包含多个预设的文件 | 选择"clothes.csv"会从服装相关预设中随机选择 |
| 随机种子 | seed | 数字输入 | 0 | 控制随机性的数字,相同的种子会产生相同的随机结果 | 用于控制随机数生成的种子值 | 输入123,每次运行都会得到相同的随机结果 |
3.6 Const String 节点 - 固定文字输入器
这个节点就像一个文字输入框,让你输入一段固定的文字。
3.6.1 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 文字内容 | text | 文本输入 | 无 | 输入你想要的固定文字,就像在便签纸上写字 | 输入的固定字符串内容 | 输入"masterpiece, best quality"作为固定的质量描述 |
3.7 Const String (multi line) 节点 - 多行文字输入器
这个节点就像一个大的文字输入框,可以输入多行文字,适合写长篇描述。
3.7.1 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 多行文字 | text | 多行文本输入 | 无 | 输入多行文字,就像在记事本里写日记 | 支持换行的多行字符串输入 | 输入第一行"美丽的女孩",换行后输入"穿着白色裙子" |
3.8 Sample Tags 节点 - 标签采样器
这个节点就像一个标签抽选器,从一堆标签中随机选择几个,然后组合成文字描述。
3.8.1 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 标签列表 | tags | 文本输入 | 无 | 用分隔符分开的所有标签,就像一个标签仓库 | 包含所有可选标签的字符串 | 输入"红色,蓝色,绿色,黄色,紫色" |
| 标签分隔符 | tags_delimiter | 文本输入 | "," | 用来分隔不同标签的符号,就像标签之间的间隔线 | 用于分隔标签的分隔符 | 通常使用","或" |
| 最小选择数 | min_k | 数字输入 | 1 | 最少要选择多少个标签,就像抽奖至少要抽几个 | 最小采样数量 | 输入1表示至少选择1个标签 |
| 最大选择数 | max_k | 数字输入 | 3 | 最多能选择多少个标签,就像抽奖最多能抽几个 | 最大采样数量 | 输入3表示最多选择3个标签 |
3.9 Sample Tags With Weights 节点 - 带权重的标签采样器
这个节点是标签采样器的升级版,不仅能选择标签,还能给每个标签设置重要程度。
3.9.1 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 标签列表 | tags | 文本输入 | 无 | 用分隔符分开的所有标签,就像一个标签仓库 | 包含所有可选标签的字符串 | 输入"红色,蓝色,绿色,黄色,紫色" |
| 标签分隔符 | tags_delimiter | 文本输入 | "," | 用来分隔不同标签的符号,就像标签之间的间隔线 | 用于分隔标签的分隔符 | 通常使用","或" |
| 最小选择数 | min_k | 数字输入 | 1 | 最少要选择多少个标签,就像抽奖至少要抽几个 | 最小采样数量 | 输入1表示至少选择1个标签 |
| 最大选择数 | max_k | 数字输入 | 3 | 最多能选择多少个标签,就像抽奖最多能抽几个 | 最大采样数量 | 输入3表示最多选择3个标签 |
| 最小权重 | min_w | 小数输入 | 0.5 | 标签的最小重要程度,就像声音的最小音量 | 标签的最小权重值 | 输入0.5表示标签最轻微的影响力 |
| 最大权重 | max_w | 小数输入 | 1.5 | 标签的最大重要程度,就像声音的最大音量 | 标签的最大权重值 | 输入1.5表示标签最强的影响力 |
| 权重步长 | step_w | 小数输入 | 0.1 | 权重变化的最小单位,就像音量调节的最小档位 | 权重递增的步长值 | 输入0.1表示权重以0.1为单位递增 |
3.10 Round Weights 节点 - 权重圆整器
这个节点就像一个数字整理器,把不规整的权重数字整理成规整的数字。
3.10.1 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 输入文字 | prompt | 文本输入 | 无 | 包含需要整理权重的文字描述,就像一段乱七八糟的数字需要整理 | 包含权重的提示词字符串 | 输入"(girl:1.234), (dress:0.876)"会被整理成规整的数字 |
4. 使用技巧和建议
4.1 文字拼接技巧
- 使用 Join String List 时,建议用 ", " 作为分隔符,这样生成的文字更符合 AI 的理解习惯
- 可以配合多个 Const String 节点来组织复杂的文字描述
4.2 预设使用建议
- 建议先从简单的预设开始,熟悉后再使用高级预设
- 可以自己创建预设文件,放在插件的 presets 文件夹中
4.3 随机化技巧
- 使用 Sample Tags 时,建议准备充足的标签库,这样随机效果更好
- 权重设置建议在 0.5-1.5 之间,避免过大或过小的值
4.4 工作流优化
- 将常用的固定文字用 Const String 节点保存,避免重复输入
- 使用 Format String 可以创建模板化的工作流,提高效率
5. 常见问题解答
5.1 为什么我的节点没有显示?
- 确认插件安装正确,重启 ComfyUI
- 检查是否有报错信息,可能缺少依赖包
5.2 预设文件怎么添加?
- 预设文件放在插件目录的 presets 文件夹中
- 支持 CSV 格式和 YML 格式
- 高级预设使用 JSON 格式,放在 advanced_presets 文件夹中
5.3 随机效果不够随机怎么办?
- 检查随机种子设置,不同的种子会产生不同的随机结果
- 确保标签库足够大,选择范围足够广
5.4 权重设置多少合适?
- 一般情况下,权重在 0.5-1.5 之间比较合适
- 1.0 表示正常强度,大于 1.0 表示加强,小于 1.0 表示减弱
- 建议从 1.0 开始调整,根据效果逐步微调
5.5 如何备份我的预设?
- 定期备份 presets 和 advanced_presets 文件夹
- 可以将自定义预设文件复制到其他地方保存
6. 高级应用技巧
6.1 创建复杂的文字生成系统
通过组合多个节点,可以创建非常复杂的文字生成系统:
- 用 Load Preset 加载基础设置
- 用 Sample Tags 添加随机元素
- 用 Format String 组织文字结构
- 用 Join String List 最终合并
6.2 批量处理技巧
- 利用 Random Preset 可以批量生成不同风格的图片
- 配合 ComfyUI 的批处理功能,可以一次性生成大量变化的作品
6.3 文字模板化
- 创建通用的文字模板,使用 Format String 填充不同内容
- 这样可以保持风格统一,同时实现内容变化
这个插件是 ComfyUI 中处理文字描述的得力助手,掌握了这些节点的使用方法,你就能更加灵活地控制 AI 生成图片的文字描述部分,让你的创作更加得心应手!