扩散模型通过条件嵌入机制将外部信息融入去噪过程,主要方式包括交叉注意力、归一化参数动态调整、时间步联合嵌入等。
条件类型
文本条件
- CLIP 语义对齐:文本通过 CLIP 编码器生成语义向量,作为交叉注意力 Key/Value
- 交叉注意力注入:在 U-Net 或 Transformer 瓶颈层,文本向量通过交叉注意力引导去噪方向
图像条件
- 空间对齐控制:边缘图、深度图通过编码器转换为特征图,与 U-Net 中间特征拼接或注意力融合
- 主体特征保持:多模态注意力机制将条件图像主体特征与生成过程隐变量对齐
类别条件
- 标签嵌入:类别标签通过 MLP 转换为向量,与时间步嵌入相加
- Classifier-Free Guidance:训练时随机丢弃条件标签,推理时通过条件与无条件预测差值增强约束
模型接入方式
交叉注意力机制
- 全局上下文建模:条件作为独立 token 序列,通过多头交叉注意力与图像 token 交互
- 层级融合:在 U-Net 不同分辨率层级插入交叉注意力模块
归一化参数动态调整
- adaLN:将条件向量通过 MLP 映射为归一化层的 γ 和 β 参数
- adaLN-Zero:进一步将条件信号融入残差路径,初始化为恒等函数
时间步与条件联合嵌入
- 正弦位置编码:时间步 t 通过正弦函数编码,与条件向量拼接
- 隐空间条件投影:条件信息通过 VAE 压缩后与潜变量结合
采样阶段条件优化
- 动态引导尺度:调节 CFG Scale 控制条件约束强度
- 交叉注意力缓存:推理早期缓存交叉注意力输出,减少后续计算量
典型模型实现
| 模型 | 条件注入方式 |
|---|---|
| Stable Diffusion | CLIP 文本编码器 + 交叉注意力注入 U-Net 每层 |
| DiT | 支持 In-context/adaLN 多种方式 |
| OminiControl | 复用 DiT 组件,多类型条件融合,参数开销仅 0.1% |
未来方向
- 连续时间条件建模:将条件作为 SDE 的驱动项
- 跨模态动态对齐:视频生成中的时空条件融合
张芷铭的个人博客
Comments