Stable Diffusion 全链路深度解析:从潜空间到语义生成

一、 整体架构总览:降维打击与模态融合

Stable Diffusion 的核心思想是将扩散过程从高维的像素空间 (Pixel Space) 转移到低维的潜空间 (Latent Space)。这种做法不仅大幅降低了计算成本,还通过解耦“感知压缩”与“语义生成”,提高了生成质量。

整个训练通路可以抽象为:

  1. 感知压缩器 (VAE):负责将图像 压缩为隐向量 ,或将 反推回图像。

  2. 语义编码器 (CLIP):负责将文本提示词 映射为 U-Net 能理解的特征向量。

  3. 生成引擎 (U-Net):在潜空间中进行条件扩散过程,学习预测噪声。


二、 组件一:VAE——空间的感知压缩

VAE 在 SD 中充当“空间翻译官”。它通过自编码结构学习图像的低维表示。

1. 数学定义与映射

  • 编码器 :将图像 映射到潜空间 。在 SD 中,,下采样倍数通常为 8(即 )。

  • 解码器 :将潜变量映射回像素空间

2. 训练目标(变分下界与正则化)

VAE 的训练不仅仅是 MSE 损失,它包含了一个正则化项以确保潜空间 具有良好的分布特性:

  • KL 正则化:确保 接近标准正态分布,防止潜空间出现过于稀疏的“空洞”,这对后续扩散模型的采样至关重要。

  • 感知损失 (Perceptual Loss):在 SD 的 VAE 训练中,还会加入 LPIPS 或 GAN Loss 来保证重建图像的视觉清晰度(而非仅仅是像素对齐)。


三、 组件二:CLIP——语义的桥梁

为了实现“文生图”,我们需要一个能同时理解图像和文本的模型。OpenAI 的 CLIP (Contrastive Language-Image Pre-training) 提供了这一能力。

1. 对比学习推导

CLIP 通过大规模对(图像 , 文本 )进行训练。其核心是学习两个编码器:

训练目标是最大化对角线上的相似度:

直觉解释:这一损失函数的核心思想是”匹配的对应该更相似”。对于每个样本 ,我们希望图像编码 与其对应文本编码 的余弦相似度越高越好,同时与所有不匹配的文本编码 (其中 )的相似度越低越好。

  • 是温度参数,控制 softmax 的锐度
  • 是余弦相似度函数
  • 分母是对所有文本的相似度求和,体现对比学习的”对比”特性

2. 在 SD 中的应用

在 Stable Diffusion 推理时,我们冻结 CLIP 的 Text Encoder(通常是 ViT-L/14 的一部分)。文本 经过 CLIP 后得到特征矩阵 为 token 长度,通常为 ),这个矩阵将作为 Conditioning 注入 U-Net。

CLIP 的核心作用

  1. 语义对齐:将文本中的抽象语义(如”一只在睡觉的猫”)映射到图像特征空间
  2. 零样本迁移:预训练好的 CLIP 可以理解任意文本描述,无须针对特定类别微调
  3. 条件信息提取:CLIP 提取的文本特征 包含丰富的语义信息,可引导 U-Net 生成对应的视觉内容

四、 组件三:U-Net 与 Cross-Attention 核心逻辑

SD 使用的 U-Net 是一个带有空间变压器 (Spatial Transformer) 的增强版本,它是实现噪声预测的主体。

1. U-Net 结构组成

  • ResNet Blocks:处理潜空间特征图的局部纹理。

  • Spatial Transformer Blocks:包含 Self-Attention 和 Cross-Attention,处理全局依赖和外部条件。

2. Cross-Attention 的数学细节

这是文本引导图像生成的关键。在 U-Net 的中间层,潜特征 被映射为 Query,而 CLIP 文本向量 被映射为 Key 和 Value。

  • 物理意义:注意力图(Attention Map)决定了文本中的哪个单词(如“猫”)应该对应潜特征图中的哪个空间位置。通过这种方式,文本语义被“注入”到了潜空间的去噪过程中。

五、 整体训练通路:全链路数学推导

现在我们将上述组件串联,描述 Stable Diffusion 的训练全过程。

1. 前向扩散(像素到潜空间的退化)

给定训练图像 ,先通过 VAE 得到

随后根据 DDPM 的加噪公式,在时间步 生成带噪潜变量:

2. 预测与损失函数(目标优化)

U-Net 网络 接收三个输入:带噪潜变量 、时间步 、文本条件

其训练目标是预测注入的噪声

详细步骤拆解:

  1. 采样图像

  2. 编码图像

  3. 采样时间步

  4. 生成噪声

  5. 前向加噪:计算 (利用重参数化技巧)。

  6. 编码文本

  7. 前向传播

  8. 反向传播:更新 U-Net 参数


六、 推理/采样通路:无分类器引导 (CFG)

在推理时,我们需要从纯噪声 开始,逐步迭代到

1. CFG 的数学推导

为了增强文本的一致性,使用 Classifier-Free Guidance (CFG)。其核心思想是:在无条件和有条件之间进行线性插值,以增强条件信号同时保留一定的多样性。

  • 其中 是引导强度(Guidance Scale),通常在 之间
  • 是空字符串的 CLIP 编码(对应无条件生成)
  • 时,退化为普通条件预测; 越大,条件引导越强

直觉:CFG 本质上是在估计条件梯度 。方向指向高条件概率的区域。

2. 采样流程

经过 步迭代得到 后,通过 VAE 的解码器还原为图像:

Algorithm: Stable Diffusion Sampling

  1. 初始化
  2. 文本编码
  3. 迭代去噪:对
    • 预测噪声:
    • CFG 修正:
    • 更新:
  4. 解码

七、 总结:Stable Diffusion 的严谨定义

Stable Diffusion 是一个基于潜空间扩散的生成模型。它利用 VAE 实现感知压缩,解决计算开销问题;利用 CLIP 实现多模态对齐,解决控制问题;利用 U-Net 的 Cross-Attention 机制在低维潜空间内执行受条件的去噪逆过程。其本质是在概率分布的对数梯度(Score Function)引导下,从高斯分布向特定语义分布的映射。