sd-perturbed-attention 各种引导技术插件 - 超详细新手教程
1. 插件简介
这个插件叫做"各种引导技术实现"(Various Guidance implementations),来自GitHub地址:https://github.com/pamparamm/sd-perturbed-attention
这个插件就像是给你的AI画图工具装了一套"智能调色板",它能让你的图片变得更清晰、更有结构感、更符合你的要求。简单来说,它提供了6种不同的"画图增强技术",每种技术都有自己的特色:
- 扰动注意力引导(PAG):让图片结构更清晰,就像给眼镜擦干净了一样
- 平滑能量引导(SEG):让图片看起来更"干净",减少杂乱的细节
- 滑动窗口引导(SWG):专门用来画超大尺寸图片时保持质量
- 标准化注意力引导(NAG):一种通用的负面提示增强技术
- 令牌扰动引导(TPG):通过"打乱"信息来改善图片质量
- PLADIS:一种实验性的稀疏注意力技术(目前还不太稳定)
2. 如何安装
方法一:通过ComfyUI管理器安装(推荐)
- 打开ComfyUI
- 点击"Manager"按钮
- 搜索"Perturbed-Attention Guidance"
- 点击安装
方法二:手动下载安装
- 打开你的ComfyUI文件夹
- 进入
custom_nodes文件夹 - 在这里打开命令行(终端)
- 输入命令:
git clone https://github.com/pamparamm/sd-perturbed-attention.git - 重启ComfyUI
方法三:通过comfy-cli安装
如果你安装了comfy-cli工具,可以直接运行:
comfy node registry-install sd-perturbed-attention
3. 节点详细解析
3.1 扰动注意力引导(高级版)节点
这个节点就像是给你的AI画师戴上了"专注眼镜",让它能更好地理解图片的结构和细节。
3.2 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 模型 | model | MODEL类型 | - | 你要增强的AI画图模型,就像选择哪个画师来画画 | 输入的扩散模型对象 | 连接你的模型加载器节点 |
| 引导强度 | scale | 0.0-100.0 | 3.0 | 控制效果强度,就像调节滤镜的浓度 | PAG引导的缩放因子,影响结构一致性 | 人像用2-4,风景用3-6,太高会过度饱和 |
| 自适应缩放 | adaptive_scale | 0.0-1.0 | 0.0 | 后期自动减弱效果,避免过度处理 | 在去噪后期降低PAG强度的衰减因子 | 0.2-0.5可以加速生成,0表示不使用 |
| 网络块位置 | unet_block | input/middle/output | middle | 选择在哪个"画图阶段"应用效果 | 应用PAG的U-Net块类型 | middle最常用,input影响早期,output影响细节 |
| 块编号 | unet_block_id | 整数 | 0 | 具体选择哪一层来应用效果 | 选定块内的具体层索引 | 通常用0,高级用户可以尝试其他值 |
| 开始时机 | sigma_start | -1.0-10000.0 | -1.0 | 什么时候开始应用效果,-1表示一直开启 | 噪声调度中的起始sigma值 | -1表示全程,15.0表示从高噪声开始 |
| 结束时机 | sigma_end | -1.0-10000.0 | -1.0 | 什么时候停止应用效果,-1表示一直到结束 | 噪声调度中的结束sigma值 | -1表示全程,1.0表示在低噪声时停止 |
| 重缩放强度 | rescale | 0.0-1.0 | 0.0 | 防止图片过度曝光的保护机制 | 基于RescaleCFG的过曝光防护 | 高scale值时用0.7-0.8防止过曝 |
| 重缩放模式 | rescale_mode | full/partial/snf | full | 选择防过曝的计算方式 | 重缩放算法的模式选择 | full最常用,snf适合高引导值 |
| 自定义块列表 | unet_block_list | 字符串 | "" | 高级用户自定义应用位置,空白表示使用上面的设置 | 逗号分隔的块列表,覆盖单块设置 | "m0,u0.4"表示中间块0和输出块0的第4层 |
3.3 平滑能量引导(高级版)节点
这个节点就像是给图片加了一个"柔光滤镜",让画面看起来更加清晰和干净。
3.4 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 模型 | model | MODEL类型 | - | 你要增强的AI画图模型,就像选择哪个画师来画画 | 输入的扩散模型对象 | 连接你的模型加载器节点 |
| 引导强度 | scale | 0.0-100.0 | 3.0 | 控制清晰度增强的强度,就像调节锐化滤镜 | SEG引导的缩放因子,影响图像清晰度 | 人像用2-4,细节丰富的图用3-6 |
| 模糊程度 | blur_sigma | -1.0-9999.0 | -1.0 | 控制"柔光"效果的强度,负数表示无限模糊 | 高斯模糊的标准差,负值表示全局平均 | 1.0-3.0适中,-1.0最强效果 |
| 网络块位置 | unet_block | input/middle/output | middle | 选择在哪个"画图阶段"应用效果 | 应用SEG的U-Net块类型 | middle最常用,适合大多数情况 |
| 块编号 | unet_block_id | 整数 | 0 | 具体选择哪一层来应用效果 | 选定块内的具体层索引 | 通常用0就够了 |
| 开始时机 | sigma_start | -1.0-10000.0 | -1.0 | 什么时候开始应用效果,-1表示一直开启 | 噪声调度中的起始sigma值 | -1表示全程应用 |
| 结束时机 | sigma_end | -1.0-10000.0 | -1.0 | 什么时候停止应用效果,-1表示一直到结束 | 噪声调度中的结束sigma值 | -1表示全程应用 |
| 重缩放强度 | rescale | 0.0-1.0 | 0.0 | 防止图片过度处理的保护机制 | 基于RescaleCFG的过曝光防护 | 高scale值时用0.7防止过度 |
| 重缩放模式 | rescale_mode | full/partial/snf | full | 选择防过度处理的计算方式 | 重缩放算法的模式选择 | full最稳定,snf适合极端情况 |
| 自定义块列表 | unet_block_list | 字符串 | "" | 高级用户自定义应用位置,空白表示使用上面的设置 | 逗号分隔的块列表,覆盖单块设置 | 留空即可,除非你很懂技术 |
3.5 滑动窗口引导(高级版)节点
这个节点专门用来画超大尺寸图片,就像是把一张大画布分成小块来画,最后再拼接起来,保证每个部分都很清晰。
3.6 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 模型 | model | MODEL类型 | - | 你要增强的AI画图模型,就像选择哪个画师来画画 | 输入的扩散模型对象 | 连接你的模型加载器节点 |
| 引导强度 | scale | 0.0-100.0 | 5.0 | 控制大图质量增强的强度 | SWG引导的缩放因子,影响大图一致性 | 大图用5-8,超大图可以用10+ |
| 瓦片宽度 | tile_width | 16-16384 | 768 | 每个小块的宽度,就像拼图的每一片有多宽 | 滑动窗口的宽度像素数 | 768适合大多数情况,显存小用512 |
| 瓦片高度 | tile_height | 16-16384 | 768 | 每个小块的高度,就像拼图的每一片有多高 | 滑动窗口的高度像素数 | 768适合大多数情况,显存小用512 |
| 重叠区域 | tile_overlap | 16-16384 | 256 | 相邻小块之间的重叠部分,避免接缝 | 相邻窗口间的重叠像素数 | 256是瓦片大小的1/3,保证平滑过渡 |
| 开始时机 | sigma_start | -1.0-10000.0 | -1.0 | 什么时候开始应用效果,-1表示一直开启 | 噪声调度中的起始sigma值 | -1表示全程应用 |
| 结束时机 | sigma_end | -1.0-10000.0 | 5.42 | 什么时候停止应用效果 | 噪声调度中的结束sigma值 | 5.42是推荐值,避免后期过度处理 |
3.7 标准化注意力引导节点
这个节点是一种通用的"负面提示增强器",可以让你的负面提示词发挥更大的作用,就像给"不要画什么"的指令加了个扩音器。
3.8 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 模型 | model | MODEL类型 | - | 你要增强的AI画图模型 | 输入的扩散模型对象 | 连接你的模型加载器节点 |
| 负面条件 | negative | CONDITIONING类型 | - | 你的负面提示词,告诉AI不要画什么 | 负面条件编码,可以是CFG的或独立的 | 连接你的负面提示词编码器 |
| 引导强度 | scale | 0.0-100.0 | 2.0 | 控制负面提示的增强强度 | NAG的缩放因子,tau=0时无效 | 2-4适合大多数情况 |
| 标准化阈值 | tau | 0.0-100.0 | 2.5 | 控制增强效果的上限,防止过度 | 标准化阈值,越大scale影响越明显 | 2.5是平衡值,可以试试1.5-4.0 |
| 混合比例 | alpha | 0.0-1.0 | 0.5 | 原图和增强图的混合比例 | 原始结果和NAG结果的线性插值 | 0.5是一半一半,0.8更偏向增强效果 |
| 开始时机 | sigma_start | -1.0-10000.0 | -1.0 | 什么时候开始应用效果 | 噪声调度中的起始sigma值 | -1表示全程应用 |
| 结束时机 | sigma_end | -1.0-10000.0 | -1.0 | 什么时候停止应用效果 | 噪声调度中的结束sigma值 | -1表示全程应用 |
| 自定义块列表 | unet_block_list | 字符串 | "" | 高级用户自定义应用位置 | 逗号分隔的块列表,空表示全部 | 留空即可,除非你是高级用户 |
3.9 令牌扰动引导节点
这个节点通过"打乱"信息的顺序来改善图片质量,就像洗牌一样重新排列信息,让AI从不同角度理解图片。
3.10 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 模型 | model | MODEL类型 | - | 你要增强的AI画图模型 | 输入的扩散模型对象 | 连接你的模型加载器节点 |
| 引导强度 | scale | 0.0-100.0 | 3.0 | 控制"洗牌"效果的强度 | TPG引导的缩放因子 | 3-5适合大多数情况 |
| 开始时机 | sigma_start | -1.0-10000.0 | -1.0 | 什么时候开始应用效果 | 噪声调度中的起始sigma值 | -1表示全程应用 |
| 结束时机 | sigma_end | -1.0-10000.0 | -1.0 | 什么时候停止应用效果 | 噪声调度中的结束sigma值 | -1表示全程应用 |
| 重缩放强度 | rescale | 0.0-1.0 | 0.0 | 防止图片过度处理的保护机制 | 基于RescaleCFG的过曝光防护 | 高scale值时用0.7 |
| 重缩放模式 | rescale_mode | full/partial/snf | full | 选择防过度处理的计算方式 | 重缩放算法的模式选择 | full最稳定 |
| 自定义块列表 | unet_block_list | 字符串 | "d2.2-9,d3" | 指定在哪些层应用效果 | 逗号分隔的块列表 | 默认值通常就很好用 |
3.11 PLADIS(实验性)节点
这是一个实验性的稀疏注意力技术,目前还不太稳定,就像是一个还在测试阶段的新功能。
3.12 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 模型 | model | MODEL类型 | - | 你要增强的AI画图模型 | 输入的扩散模型对象 | 连接你的模型加载器节点 |
| 引导强度 | scale | 0.0-100.0 | 2.0 | 控制稀疏注意力的强度 | PLADIS的缩放因子 | 2-4,但目前可能产生杂乱图像 |
| 稀疏函数 | sparse_func | entmax1.5/sparsemax | entmax1.5 | 选择稀疏化的数学方法 | 稀疏注意力函数类型 | entmax1.5是默认推荐 |
3.13 TensorRT附加PAG节点
这个节点是专门为TensorRT加速优化的PAG版本,需要24GB显存,是给高端用户用的。
3.14 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 模型 | model | MODEL类型 | - | 要附加PAG的TensorRT模型 | TensorRT优化的扩散模型 | 连接TensorRT模型加载器 |
| 网络块位置 | unet_block | input/middle/output | middle | 选择在哪个阶段应用PAG | 应用PAG的U-Net块类型 | middle是最常用的选择 |
| 块编号 | unet_block_id | 整数 | 0 | 具体选择哪一层 | 选定块内的具体层索引 | 通常用0 |
| 自定义块列表 | unet_block_list | 字符串 | "" | 高级用户自定义位置 | 逗号分隔的块列表 | 留空使用上面的设置 |
3.15 TensorRT扰动注意力引导节点
这是TensorRT版本的PAG节点,需要两个模型输入:基础模型和PAG增强模型。
3.16 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 基础模型 | model_base | MODEL类型 | - | 原始的TensorRT模型 | 基础TensorRT引擎 | 连接普通TensorRT模型 |
| PAG模型 | model_pag | MODEL类型 | - | 带PAG增强的TensorRT模型 | 带PAG注入的TensorRT引擎 | 连接PAG增强的TensorRT模型 |
| 引导强度 | scale | 0.0-100.0 | 3.0 | 控制PAG效果的强度 | PAG引导的缩放因子 | 3-5适合大多数情况 |
| 自适应缩放 | adaptive_scale | 0.0-1.0 | 0.0 | 后期自动减弱效果 | 在去噪后期降低PAG强度 | 0.2-0.5可以加速 |
| 开始时机 | sigma_start | -1.0-10000.0 | -1.0 | 什么时候开始应用效果 | 噪声调度中的起始sigma值 | -1表示全程 |
| 结束时机 | sigma_end | -1.0-10000.0 | -1.0 | 什么时候停止应用效果 | 噪声调度中的结束sigma值 | -1表示全程 |
| 重缩放强度 | rescale | 0.0-1.0 | 0.0 | 防止过度曝光 | 基于RescaleCFG的防护 | 高scale时用0.7 |
| 重缩放模式 | rescale_mode | full/partial | full | 防过曝的计算方式 | 重缩放算法模式 | full最稳定 |
4. 使用技巧和建议
4.1 新手入门建议
- 从PAG开始:扰动注意力引导是最稳定、效果最明显的,建议新手先试这个
- 参数从小开始:所有的scale参数都建议从小值开始试,比如2.0,然后慢慢增加
- 一次只用一个:不要同时使用多个引导节点,容易产生冲突
4.2 不同场景的推荐设置
人像摄影
- PAG: scale=2.5, adaptive_scale=0.3
- NAG: scale=2.0, tau=2.0, alpha=0.6
风景画
- PAG: scale=4.0, adaptive_scale=0.2
- SEG: scale=3.5, blur_sigma=1.5
超大尺寸图片(2K以上)
- SWG: scale=6.0, tile_width=768, tile_height=768, tile_overlap=256
动漫/插画
- PAG: scale=3.5, adaptive_scale=0.4
- TPG: scale=4.0
4.3 性能优化建议
- 显存不足时:降低tile_width和tile_height到512
- 生成速度慢:使用adaptive_scale=0.3-0.5来加速后期处理
- TensorRT用户:如果有24GB显存,优先使用TensorRT版本的节点
4.4 常见组合推荐
- 质量优先组合:PAG + 高CFG值
- 速度优先组合:PAG + adaptive_scale=0.5
- 大图专用组合:SWG + 适中的scale值
- 负面提示增强:NAG + 详细的负面提示词
5. 常见问题解答
5.1 图片过度饱和/过曝怎么办?
原因:scale值设置太高
解决方法:
- 降低scale值到2-3
- 启用rescale=0.7-0.8
- 使用rescale_mode="snf"
5.2 效果不明显怎么办?
原因:参数设置太保守
解决方法:
- 逐步增加scale值
- 检查sigma_start和sigma_end是否正确
- 确保unet_block设置为"middle"
5.3 生成速度变慢了怎么办?
原因:引导计算增加了处理时间
解决方法:
- 使用adaptive_scale来加速后期
- 调整sigma_end提前结束引导
- 考虑使用TensorRT版本(如果有足够显存)
5.4 PLADIS节点产生杂乱图像怎么办?
原因:这是已知问题,插件作者正在修复
解决方法:
- 暂时不要使用PLADIS节点
- 使用其他引导技术替代
- 等待插件更新
5.5 TensorRT节点无法使用怎么办?
原因:需要特殊的TensorRT环境和24GB显存
解决方法:
- 确保安装了ComfyUI_TensorRT插件
- 检查显存是否足够(需要24GB)
- 按照TensorRT教程正确构建引擎
5.6 多个引导节点可以同时使用吗?
不建议:虽然技术上可能,但容易产生冲突和不可预测的结果
建议:一次只使用一个引导节点,找到最适合的再考虑组合
5.7 如何选择unet_block_list?
新手:留空,使用默认设置
进阶用户:
- "m0" = 只在中间块应用
- "d0,d1,d2" = 在输入块的前三层应用
- "u0.4,u1.2" = 在输出块的特定子层应用
6. 高级技巧
6.1 自定义块列表语法
d= input blocks(输入块)m= middle blocks(中间块)u= output blocks(输出块)- 数字表示块的编号
- 点号后的数字表示子层编号
- 连字符表示范围,如
d0-d3表示d0,d1,d2,d3
6.2 sigma值的理解
- sigma_start:噪声水平高的时候(图片很模糊)
- sigma_end:噪声水平低的时候(图片接近完成)
- -1表示不限制,全程应用
- 数值越大表示噪声越多(越早的阶段)
6.3 rescale_mode详解
- full:考虑CFG和引导的综合效果
- partial:只考虑引导效果
- snf:智能融合模式,适合高引导值
7. 总结
这个插件提供了8个强大的节点,每个都有自己的特色:
- 扰动注意力引导(PAG):最通用,适合所有场景
- 平滑能量引导(SEG):让图片更清晰干净
- 滑动窗口引导(SWG):专门用于大尺寸图片
- 标准化注意力引导(NAG):增强负面提示效果
- 令牌扰动引导(TPG):通过信息重排改善质量
- PLADIS:实验性功能,暂时不建议使用
- TensorRT附加PAG:高端用户的加速版本
- TensorRT扰动注意力引导:需要双模型的TensorRT版本
对于新手,建议从PAG开始尝试,参数从小开始调整。对于有经验的用户,可以根据具体需求选择合适的引导技术。记住,这些技术的目标都是让你的AI画图效果更好,但需要耐心调试才能找到最适合的设置。
希望这个教程能帮助你更好地使用这个强大的ComfyUI插件!