Guiding a Diffusion Model by Swapping Its Tokens¶
会议: CVPR 2026 Oral
arXiv: 2604.08048
代码: https://github.com/VISION-SJTU/SSG
领域: 扩散模型 / 图像生成
关键词: 采样引导, 无条件引导, Token交换, 自扰动, 图像保真度
一句话总结¶
本文提出 Self-Swap Guidance (SSG),一种无需条件信息的扩散模型采样引导方法,通过在模型中间表示空间中选择性地交换语义最不相似的 token 对来构造扰动版本,相比 SAG/PAG/SEG 等方法在更宽的引导强度范围内稳定生成高保真图像,在条件和无条件生成上均取得最优 FID。
研究背景与动机¶
- 领域现状:Classifier-Free Guidance (CFG) 是扩散模型生成高质量图像的关键技术,通过对比条件预测和无条件预测来引导采样方向。但 CFG 依赖文本条件,不能用于无条件生成(如逆问题求解),还容易在高引导系数下产生过饱和、多样性降低等问题。
- 现有痛点:近期的无条件引导方法(SAG、PAG、SEG、TSG)通过扰动模型前向过程来构造"弱化版本",但它们都采用全局式、无差别的扰动——SAG 给输入加噪声、PAG 破坏注意力图。这种粗粒度扰动要么太弱(细节不够)、要么太强(过饱和/过简化),且对引导系数非常敏感,有效工作范围窄。
- 核心矛盾:需要足够强的扰动来有效引导,但又不能太强导致不可恢复的失真。现有方法缺乏对扰动粒度的精细控制。
- 本文目标:设计一种细粒度、可控、不引入外部噪声的扰动机制,让引导在更宽的参数范围内稳定有效。
- 切入角度:在 token 级别而非全局级别操作——通过交换(而非注入噪声)来扰动,这是一种保守的操作:交换只重排现有信息而不引入新信息,天然地保持全局一致性同时破坏局部结构。
- 核心 idea:选择性交换语义最不相似的 token 对来产生细粒度的局部扰动,替代传统的全局噪声注入式引导。
方法详解¶
整体框架¶
SSG 想解决的是:无条件引导方法靠"扰动出一个弱化版本的自己"来指方向,但现有扰动要么太粗要么太猛,引导系数稍微调大就崩。它的做法是在推理时让模型跑两个并行分支——原始分支原封不动地给出干净预测 \(\epsilon_{\text{ori}}\),扰动分支在中间表示里做一次 token 交换后给出扰动预测 \(\epsilon_{\text{pert}}\),然后沿两者之差把采样往"更高质量"的方向推:
关键就在扰动分支怎么构造。SSG 不往特征里灌噪声,而是把现有的 token 拿来"对调位置"——这是一种保守操作,只重排已有信息、不引入任何外部随机量,所以全局能量守恒、不会把图像推向不可恢复的失真。两个分支的中间预测一起前向,开销小、不需要重训。
%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400, 'subGraphTitleMargin': {'top': 8, 'bottom': 16}}}}%%
flowchart TD
X["噪声隐变量 x_t"] --> ORI["原始分支<br/>干净预测 ε_ori"]
X --> SEL["对抗性 Token 选择<br/>挑余弦相似度最低的 N 对"]
subgraph PERT["扰动分支:Token 交换"]
direction TB
SEL --> SP["空间维度 Token 交换<br/>戳穿结构语义一致性"]
SEL --> CH["通道维度 Token 交换<br/>扰动外观与写实感"]
end
SP --> EP["扰动预测 ε_pert"]
CH --> EP
ORI --> G["引导合成<br/>ε_ori + ω·(ε_ori − ε_pert)"]
EP --> G
G --> OUT["高保真采样输出"]
关键设计¶
1. 空间维度 Token 交换:在结构层面戳穿语义一致性
针对的痛点是 SAG/PAG 那种全局扰动太钝——加噪或抹掉注意力图,破坏的是整张图而非具体结构。空间交换换个思路:给定 token 嵌入 \(\mathbf{X} \in \mathbb{R}^{B \times T \times D}\),先逐 token 归一化,再算所有空间位置两两之间的余弦相似度矩阵,挑出相似度最低的 \(N\) 个 token 对(\(N\) 由交换比例 \(r\) 控制),构造一个置换映射把它们成对换位,在每个 Transformer 块开头、残差相加之前执行。之所以专挑最不相似的对,是因为把"天空"和"地面"对调比把两块"天空"对调更能撕裂图像结构——同样的交换次数下破坏力更大。又因为交换是保序的、不掺外部噪声,这种破坏始终停留在"可被引导信号纠回"的范围内。
2. 通道维度 Token 交换:补上空间交换够不到的外观属性
空间交换动的是结构和几何关系,但颜色、纹理、材质这类全局外观它管不到。通道交换与空间交换对称实施——把相似度计算和"挑最不相似的对来换"这套操作搬到通道维度上,交换最不相似的通道嵌入,扰动的是跨通道的特征相关性,也就是整体写实感那一层。两者一个管局部结构、一个管全局外观,组合起来扰动覆盖面更全,引导信号既包含"画得对不对"也包含"画得真不真"。
3. 对抗性 Token 选择:用最少的交换换最大的破坏
前两点都依赖"挑最不相似的对"这个选择策略,这一点把它单独讲清楚为什么有效。灵感来自视觉 Transformer 和生成模型里的对抗性分析:在保持总信息量不变的前提下,交换语义距离最远的 token 对,等价于用最小的操作量制造最大的结构破坏。实验把三种选法摆在一起验证了这个直觉——不相似对 > 随机对 > 相似对;更说明问题的是,连随机交换都已经大幅超过 SAG/SEG,意味着"交换"这个动作本身就是一种独特而高效的扰动形式,对抗性选择只是在它之上再榨出一截收益。
损失函数 / 训练策略¶
SSG 是纯推理时方法,不需要任何训练。基于 PyTorch + diffusers 实现,用 Euler 离散调度器、50 步采样,在 SD1.5 和 SDXL 上验证,与 CFG 兼容,完全即插即用。
实验关键数据¶
主实验 — SDXL 无条件生成 (MS-COCO 2014)¶
| 方法 | FID↓ | IS↑ | Precision↑ | Recall↑ | AES↑ |
|---|---|---|---|---|---|
| 无引导 | 119.04 | 9.08 | 0.277 | 0.085 | 5.646 |
| SAG | 113.33 | 8.77 | 0.377 | 0.184 | 5.851 |
| SEG | 89.29 | 12.53 | 0.276 | 0.257 | 5.939 |
| PAG | 103.72 | 13.59 | 0.265 | 0.218 | 5.734 |
| SSG | 70.91 | 16.44 | 0.380 | 0.227 | 6.034 |
SDXL 条件生成 (MS-COCO 2014)¶
| 方法 | FID↓ | CLIP↑ | IS↑ | AES↑ | PickScore↑ | IR↑ |
|---|---|---|---|---|---|---|
| 无引导 | 45.09 | 0.281 | 21.31 | 5.671 | 20.20 | -0.847 |
| SAG | 34.14 | 0.295 | 22.95 | 5.745 | 20.64 | -0.487 |
| PAG | 26.55 | 0.306 | 29.70 | 5.820 | 21.56 | -0.003 |
| SSG | 21.73 | 0.313 | 34.63 | 5.902 | 22.17 | 0.276 |
消融实验 — Token 交换策略¶
| 策略 | FID↓ | CLIP↑ | IR↑ |
|---|---|---|---|
| SAG | 43.97 | 0.295 | -0.483 |
| PAG | 36.79 | 0.306 | 0.002 |
| 随机交换 | 32.28 | 0.312 | 0.283 |
| 相似token交换 | 28.74 | 0.309 | 0.110 |
| 不相似token交换 | 31.41 | 0.313 | 0.297 |
| 空间 | 通道 | FID↓ | IR↑ |
|---|---|---|---|
| ✓ | ✗ | 31.96 | 0.272 |
| ✗ | ✓ | 31.30 | 0.286 |
| ✓ | ✓ | 31.41 | 0.297 |
关键发现¶
- SSG 在无条件生成中优势最大:FID 从 119.04 降到 70.91(降幅 40%),远超所有同类方法
- 引导系数鲁棒性:SSG 在更宽的 \(\omega\) 范围内保持良好效果,不像 SAG/PAG/SEG 那样在高引导系数下迅速退化
- 随机交换已很强:连随机 token 交换都大幅超过 SAG/SEG,说明交换操作本身具有独特优势
- SSG + CFG 互补:两者操作在正交空间(token 空间 vs 条件空间),组合使用进一步提升质量
亮点与洞察¶
- "交换而非注入"的扰动哲学:通过重排现有信息而非注入外部噪声来构造扰动,天然保持了全局能量守恒,是一种更温和且可控的退化方式。这个idea简单而优雅
- 对抗性选择的信息论解释:交换最不相似的 token 等价于在保持总信息量不变的前提下最大化结构破坏——用最少的操作产生最有效的引导信号
- 即插即用的工程价值:无需训练、无需修改模型架构、兼容 CFG,直接作为插件使用。这种极低部署门槛是实际落地的关键
局限与展望¶
- 两分支并行推理仍有约 2x 的计算开销,每步需要额外的相似度计算和交换操作
- 交换比例 \(r\) 和引导系数 \(\omega\) 需要联合调优,虽然鲁棒性优于前人但仍有超参数
- 仅在 SD1.5 和 SDXL 上验证,未在 DiT、Flux 等新架构上测试
- 对视频扩散模型等时序生成的适用性未探索
相关工作与启发¶
- vs CFG: CFG 需要文本条件和训练时的 dropout;SSG 无需任何条件,可用于无条件生成,且与 CFG 互补
- vs PAG: PAG 用单位矩阵替换注意力图,属于全局扰动;SSG 选择性交换 token,粒度更细、更可控
- vs SEG: SEG 对自注意力加高斯噪声;SSG 用交换替代加噪,不引入外部随机性
- vs SAG: SAG 对输入图像加噪声,在高引导系数下容易引入真实噪声;SSG 的交换操作在特征空间内部闭合,不产生这个问题
评分¶
- 新颖性: ⭐⭐⭐⭐ token交换的idea简单新颖,对抗性选择策略有洞察力
- 实验充分度: ⭐⭐⭐⭐⭐ 两个模型、三个数据集、条件/无条件、丰富消融、引导模式可视化
- 写作质量: ⭐⭐⭐⭐ 逻辑清晰,可视化丰富(图2的引导模式分析特别说明问题)
- 价值: ⭐⭐⭐⭐ 即插即用的实用价值高,但属于增量式改进