跳转至

Be Yourself: Bounded Attention for Multi-Subject Text-to-Image Generation

会议: ECCV 2024 arXiv: 2403.16990 代码: GitHub 领域: 图像生成 关键词: 多主体生成, 注意力机制, 语义泄漏, 布局控制, 无训练方法

一句话总结

提出 Bounded Attention,一种无需训练的注意力约束方法,通过在去噪过程中限制 cross-attention 和 self-attention 的信息流动来解决多主体文本到图像生成中的语义泄漏问题。

研究背景与动机

文本到图像扩散模型在生成包含多个主体(尤其是语义或视觉相似的主体)的场景时常常失败,主要表现为三类问题:

  1. 灾难性忽略(catastrophic neglect):模型未能在生成图像中包含提示词中提到的一个或多个主体
  2. 错误属性绑定(incorrect attribute binding):属性未正确匹配到对应主体(如"ginger kitten and gray puppy"中颜色混淆)
  3. 主体融合(subject fusion):模型将多个主体合并为一个更大的主体

现有的布局引导方法(如 Layout Guidance、BoxDiff、MultiDiffusion)虽然试图通过空间约束来定位主体,但仍然无法有效处理语义相似主体间的特征泄漏。作者深入分析发现,语义泄漏 的根本原因在于注意力层固有地混合不同主体的视觉特征。

方法详解

整体框架

Bounded Attention 接收 \(n\) 个文本主体 \(S=\{s_i\}_{i=1}^n\) 及其对应的边界框 \(B=\{b_i\}_{i=1}^n\),通过在采样过程中约束信息流来防止主体间的有害泄漏。方法包含两个模式:Bounded GuidanceBounded Denoising

核心思想是在注意力计算中引入掩码:

\[\mathbf{A}_t^{(l)} = \text{softmax}(\mathbf{Q}_t^{(l)} \mathbf{K}_t^{(l)\top} + \mathbf{M}_t)\]

其中 \(\mathbf{M}_t\) 是由 0 和 \(-\infty\) 组成的时间相关掩码,\(-\infty\) 位置的注意力权重为 0,从而阻断不相关 token 之间的信息流。

关键设计

1. 语义泄漏分析

  • Cross-Attention 泄漏:通过 PCA 可视化 cross-attention queries,发现语义相似的主体(如 kitten 和 puppy)的 queries 在联合生成时严重混合,导致视觉特征泄漏
  • Self-Attention 泄漏:相似主体的对应语义部位(如眼睛、腿)在 self-attention 中互相注意,导致特征借用
  • 相似性层级:语义相似性体现在 UNet 内层(低分辨率),视觉相似性体现在 UNet 外层(高分辨率),如 lizard 和 fruit 在纹理上相似,仅在高分辨率层的 queries 重叠
  • 两种泄漏相互交织、相互强化,必须同时解决

2. Bounded Guidance(引导阶段)

在去噪初期 \(t \in [T, T_{\text{guidance}}]\),通过反向传播优化 latent signal 朝向目标布局。损失函数鼓励每个主体键的 Bounded Attention 集中在对应边界框内:

\[\mathcal{L}_i = 1 - \frac{\sum_{\mathbf{x} \in b_i, \mathbf{c} \in C_i} \hat{\mathbf{A}}[\mathbf{x}, \mathbf{c}]}{\sum_{\mathbf{x} \in b_i, \mathbf{c} \in C_i} \hat{\mathbf{A}}[\mathbf{x}, \mathbf{c}] + \alpha \sum_{\mathbf{x} \notin b_i, \mathbf{c} \in C_i} \hat{\mathbf{A}}[\mathbf{x}, \mathbf{c}]}\]

关键点: - 掩码 \(\mathbf{M}_t\) 阻断对立主体键(\(s_j, b_j\) for \(j \neq i\))的影响,避免强制分离相似主体的 queries - 超参数 \(\alpha\) 加强对背景的注意力,防止主体在背景区域混合 - 同时在 cross-attention(语义定位)和 self-attention(边界建立)层应用

3. Bounded Denoising(去噪阶段)

贯穿整个去噪过程,在前向传播中限制每个主体的注意力只关注自身区域: - 早期阶段:使用粗粒度边界框作为掩码 - 优化阶段后\(t \in [T_{\text{guidance}}, 0]\)):通过聚类 self-attention maps 获得细粒度分割掩码,替代粗粒度边界框 - 定期更新分割掩码以跟踪主体轮廓的逐步演化 - 在 self-attention 中允许主体与背景交互,保持自然融合

损失函数 / 训练策略

  • 无需训练:完全在推理时操作,不修改模型权重
  • 引导损失:\(z_t^{\text{opt}} = z_t - \beta \nabla_{z_t} \sum_i \mathcal{L}_i^2\)
  • 仅在初始时间段应用引导以保持图像质量
  • 兼容 Stable Diffusion 和 SDXL 架构

实验关键数据

主实验

方法 Counting Precision Counting Recall Counting F1 Spatial Accuracy
Stable Diffusion 0.74 0.78 0.73 0.19
Layout-guidance 0.72 0.78 0.72 0.35
BoxDiff 0.81 0.78 0.76 0.28
MultiDiffusion 0.70 0.55 0.57 0.15
Bounded Attention 0.83 0.88 0.82 0.36

在 DrawBench 数据集上的定量评估,Counting Recall 提升 0.10(从 0.78 到 0.88),F1 提升 0.06。

用户偏好 vs BA 胜率
Layout Guidance 0.85
BoxDiff 0.72
MultiDiffusion 0.95

消融实验

  • 仅解决 cross-attention 泄漏不够,self-attention 泄漏同样关键
  • 通过 latent 优化强行分离 queries 会导致质量退化和灾难性忽略
  • 细粒度掩码替代粗粒度边界框可避免拼接痕迹,提升鲁棒性

关键发现

  1. 方法可成功生成 5 个甚至更多语义相似主体(如 5 只不同颜色的小猫),现有方法连 2 个都困难
  2. 在 SDXL 上可精确控制复杂遮挡关系(如堆叠蛋糕层)和自然融入背景的相似主体(如泳池中不同品种的狗)
  3. 与训练方法(GLIGEN、ReCo、Attention-refocusing)相比也具有优势

亮点与洞察

  1. 深入的泄漏分析:首次系统性地揭示了 cross-attention 和 self-attention 中语义泄漏的机制及其在不同 UNet 层中的表现
  2. 关键洞察:不应通过优化强行分离相似主体的 queries(会推出分布),而应控制 attention 的信息流
  3. 全时步约束:不同于仅在初始步骤引导的方法,Bounded Denoising 可贯穿整个去噪过程控制细节
  4. 自适应掩码:从粗粒度边界框到细粒度分割掩码的过渡设计巧妙

局限性 / 可改进方向

  1. 需要用户手动提供边界框布局,缺乏自动布局推断
  2. 超参数(\(\alpha\)、引导时间段、掩码更新频率)可能需要针对不同场景调优
  3. 聚类 self-attention maps 获取分割掩码的质量受限于去噪早期的信号质量
  4. 未探索视频生成或 3D 场景等扩展方向

相关工作与启发

  • Layout Guidance / BoxDiff:通过优化 latent 对齐 cross-attention,但导致分布偏移和质量退化
  • MultiDiffusion:分别生成主体再合并,但存在不协调和合并阶段泄漏
  • GLIGEN / ReCo:需要训练且受训练数据布局分布限制
  • 启发:控制信息流比强行修改表征更有效;attention masking 是一种通用的即插即用工具

评分

  • 新颖性: ⭐⭐⭐⭐ (深入的泄漏分析 + 优雅的无训练解决方案)
  • 实验充分度: ⭐⭐⭐⭐ (定量+定性+非挑选+用户研究)
  • 写作质量: ⭐⭐⭐⭐⭐ (分析清晰,可视化丰富)
  • 价值: ⭐⭐⭐⭐ (多主体生成的实用工具)