sd-dynamic-thresholding 是一个为 Stable Diffusion 系列 WebUI(包括 AUTOMATIC1111、ComfyUI 和 SwarmUI)设计的扩展/插件。它的核心目标是解决在使用高 CFG Scale 时出现的图像过饱和、颜色失真和对比度过高等问题,从而允许用户使用更高的引导尺度而不会牺牲图像质量。
项目地址
项目地址:https://github.com/mcmonkeyprojects/sd-dynamic-thresholding
核心问题:高 CFG Scale 的弊端
在 Stable Diffusion 中,CFG Scale 是一个控制生成结果与文本提示符匹配程度的参数。
- 低 CFG Scale:图像可能缺乏细节,与提示符关联性弱。
- 高 CFG Scale:图像与提示符高度一致,但容易导致颜色过于鲜艳、对比度刺眼,甚至出现“烧坏”的伪影。
这是因为在高 CFG Scale 下,模型采样过程中的潜在表征会变得数值过大且不稳定。sd-dynamic-thresholding 就是为了修正这个问题而诞生的。
工作原理
该项目实现了一种称为 “动态阈值” 的技术。其核心思想是在采样步骤的间隙,对潜在空间的数值进行钳位。
可以把它理解为一个“现实约束器”:
- 在每一步去噪后,模型会根据 CFG Scale 得到一个“过度发挥”的潜在表征。
- 动态阈值 会介入,分析当前潜在表征的统计分布(如百分位数)。
- 它设定一个动态的、合理的数值范围,并将超出这个范围的“异常值”拉回到边界内。
- 这个经过“矫正”的、更稳定的潜在表征会被用于下一步的采样。
通过这种方式,它保留了高 CFG Scale 带来的强烈文本引导效果,同时抑制了其在颜色和对比度上的负面作用。
主要特点
- 支持多平台:作为一个功能,它被集成到了三个主流的 Stable Diffusion UI 中,覆盖了大部分用户群体。
- 修复高 CFG Scale 问题:允许用户使用 10、15 甚至 20 以上的 CFG Scale 而不会产生颜色问题。
- 可配置参数:用户可以通过滑块调整阈值的“模仿尺度”、“百分位数”等参数,精细控制效果的强度。
- 提升图像质量:在追求高细节和高一致性的场景下,能显著改善最终输出效果。
安装与使用
1. AUTOMATIC1111 WebUI
- 进入 Extensions 标签页。
- 选择 Install from URL,输入项目地址:https://github.com/mcmonkeyprojects/sd-dynamic-thresholding
- 点击 Install,然后重启或重载 UI。
- 在 txt2img 或 img2img 页面的脚本选择器中找到并勾选 Dynamic Thresholding (CFG Scale Fix),然后调整参数即可。
2. ComfyUI
- 进入 custom_nodes 目录。
- 使用命令 git clone https://github.com/mcmonkeyprojects/sd-dynamic-thresholding 克隆项目。
- 重启 ComfyUI。
- 在节点菜单中,添加 advanced/mcmonkey/DynamicThresholdingSimple(或 Full)节点,并将其连接到你的模型和采样器之间。
3. SwarmUI
- 该功能在默认安装中已内置,只需在高级参数中勾选启用即可。
总结
sd-dynamic-thresholding 是一个小巧但极其强大的工具,它有效地解决了 Stable Diffusion 高级用户面临的一个关键痛点。通过启用更高的 CFG Scale,它为生成更具创意、更贴合提示词且视觉质量更高的图像开辟了新的可能性,是追求极致生成效果的用户必备的扩展之一。