2022 年,慕尼黑大学 CompVis 团队的 Rombach 等人发表了 LDM 论文。它做了一件改变历史的事:把扩散模型从昂贵的像素空间,搬到了高效的潜在空间——训练成本从「数百 V100 天」压缩到「单 A100 数天」,推理速度提升数倍。基于这篇论文开源的代码与模型,几个月后催生了 Stable Diffusion——AI 绘画从此变成了人人可玩的事。本文是该论文的中文精校版,逐章讲透:为什么要去潜在空间、自编码器怎么训、Cross-Attention 如何接入文本条件、压缩比 f 的最佳点是多少。
2021 年的扩散模型已经在图像合成上做到了 SOTA,但代价是:训练一个最强的 DM 需要数百 V100 天。这种"算力门槛"把这项技术锁在了少数大公司里。LDM 论文要解决的,就是这个民主化问题——让普通研究者也能玩得起扩散模型。
2021 年,扩散模型已经成为图像合成领域的事实之王。在类别条件生成、超分辨率、修复(inpainting)等任务上全面超过 GAN。它的好处很明显:训练稳定、模式覆盖完整、不易模式坍缩。
但有一个绕不开的问题——太贵了。
论文里给了一个具体数字:训练一个当时最强的 DM,通常需要 150 到 1000 个 V100 GPU 天。即使训练好了,生成 5 万张样本也要在单块 A100 上跑大约 5 天。原因是扩散模型在像素空间反复迭代——一个 512×512 的图像意味着每一步都要在几十万维空间里做完整的 UNet 前向 + 反向,而采样需要几十到上千步。
这件事有两层后果。第一,训练这种模型的资源只属于极少数公司和实验室,AI 绘画无法民主化。第二,即使训练好了,推理也是慢且贵——根本没法做实时交互或大规模部署。
LDM 论文给出的回答是:既然图像里大部分像素只是「察觉不到的细节」,为什么不先把这些细节压缩掉,只在「语义层面」做扩散?
作者分析了像素空间扩散的"率失真曲线",发现学习可以划成两个阶段:感知压缩阶段(去掉高频细节但语义没变化)和语义压缩阶段(学习内容的实际构成)。结论是:把感知压缩交给一个小模型一次性做完,让昂贵的扩散模型只专注于语义压缩。
整篇论文最深刻的洞察来自一张图——已经训练好的像素空间扩散模型的率失真曲线。作者分析后发现,扩散学习过程可以大致划分成两个阶段。
第一阶段,感知压缩(Perceptual Compression)。模型在这里去掉的是高频的、几乎无法察觉的细节——纹理噪声、像素级抖动,等等。这些信息占了图像绝大部分比特,但对人类视觉几乎没有意义。
第二阶段,语义压缩(Semantic Compression)。模型在这里学的才是真正的"内容"——这是一只猫、是 Picasso 风格、人物站在街道上。这才是生成模型真正应该做的事。
一张数字图像的大部分比特,
都对应着我们感觉不到的细节。
把感知压缩交给小模型,
把语义压缩留给扩散模型。
问题在于:在像素空间训练扩散模型,意味着这两个阶段都在同一个昂贵的 UNet 里完成——大部分计算资源被浪费在感知压缩上,因为梯度和网络评估必须在所有像素上做。这是巨大的浪费。
解药很自然:先训练一个独立的"感知压缩器"——一个自编码器,把图像压缩到一个低维但感知等价的潜在空间。然后在这个潜在空间里训练扩散模型。
这就是 Latent Diffusion Model(LDM)的命名由来。
训练分两个独立阶段:(1) 训练一个通用的自编码器,把图像压缩到潜在空间 $z$;(2) 在 $z$ 空间训练扩散模型。这种解耦的最大好处是——自编码器只训练一次,可以被多个不同的扩散模型复用。
论文的方法可以用一句话概括:把扩散模型从像素空间搬到由预训练自编码器定义的潜在空间。
训练分为两个清晰分离的阶段:
第一阶段:训练一个自编码器,由一个编码器 $\mathcal{E}$ 和一个解码器 $\mathcal{D}$ 组成。给定图像 $x \in \mathbb{R}^{H \times W \times 3}$,$\mathcal{E}$ 把它压缩到潜在表示 $z = \mathcal{E}(x)$,$\mathcal{D}$ 再把 $z$ 重建回图像 $\tilde{x} = \mathcal{D}(\mathcal{E}(x))$。
第二阶段:在 $z$ 这个低维空间上训练标准的扩散模型——但所有 UNet 的前向/反向计算,都发生在 $z$ 空间而不是像素空间。
这种解耦有三个核心好处:
第一,计算效率大幅提升。UNet 不再在数十万维的像素上做迭代,而是在 $32 \times 32 \times 4$ 这样的小张量上。
第二,利用 UNet 的归纳偏置。LDM 保留了 UNet 在空间数据上的归纳偏置,所以不需要像 VQGAN 那样把空间结构展平成 1D 序列。
第三,通用的压缩器训练一次,可以被多次重用——同一个自编码器可以服务于无条件生成、文生图、超分辨率、修复等多个任务的扩散模型。这点对工业部署极为关键。
自编码器用感知损失 + patch 级对抗损失训练,避免传统 L2 损失带来的模糊。两种正则化方案:KL-reg(类似 VAE,对潜空间施加轻微 KL 惩罚)和 VQ-reg(解码器内做向量量化)。下采样因子 $f$ 满足 $f = H/h = W/w$。
自编码器训练的关键是避免重建出"糊"的图像。如果只用像素空间的 L2 或 L1 损失,重建会偏向模糊的平均值——感知质量很差。
LDM 的自编码器结合了三种损失:感知损失(用预训练 VGG 比较特征图差异)、patch 级对抗损失(一个判别器,要求每个 patch 看起来真实)、以及一个轻微的正则项。
设输入图像 $x \in \mathbb{R}^{H \times W \times 3}$。编码器把 $x$ 压成 $z = \mathcal{E}(x)$,其中 $z \in \mathbb{R}^{h \times w \times c}$。下采样因子定义为 $f = H/h = W/w$。论文实验了 $f = 2^m$,其中 $m$ 为非负整数(即 1, 2, 4, 8, 16, 32)。
为了避免潜空间方差过大、不利于后续扩散建模,作者引入两种正则化:
第一种,KL-reg:对学到的潜变量施加一个对标准正态的轻微 KL 惩罚,类似 VAE。
第二种,VQ-reg:在解码器里加一层向量量化(Vector Quantization)。可以理解成 VQGAN 但把量化层吸收进解码器。
注意一个关键设计选择:因为后续的扩散模型直接利用 $z$ 的二维结构,所以压缩率不需要太激进——这与之前依赖"把潜空间展成 1D 序列再用自回归 Transformer 建模"的工作(如 VQGAN)完全不同。LDM 在保留 2D 结构的同时,可以用相对温和的压缩率,获得更好的重建。
原始扩散损失定义在像素空间 $x$ 上。LDM 把 $x$ 替换成自编码器输出 $z$,损失变成在潜空间上预测噪声。这是唯一的形式变化——其余 UNet 架构、噪声调度、采样算法都不变。但实际效果是:训练快 10 倍以上,推理快数倍。
先回顾标准扩散模型的训练目标。扩散模型学习的是逐步去噪一个高斯噪声变量——也就是反向求解一个固定的马尔可夫链。最常用的简化目标是:
其中 $t$ 在 $\{1, ..., T\}$ 上均匀采样,$x_t$ 是 $x$ 在时间步 $t$ 加噪后的版本,$\epsilon_\theta$ 是一个时间条件 UNet,预测被加入的噪声。这是 DDPM 标准公式。
LDM 的修改简洁得令人吃惊——把 $x$ 全部换成 $z = \mathcal{E}(x)$:
就这么一个小改动。UNet 架构本身、噪声调度、采样算法(DDIM 之类)——全部不变。
但实际效果天差地别:
· UNet 现在工作在 $32 \times 32 \times 4$ 之类的小张量上,而不是 $512 \times 512 \times 3$ 的像素张量
· 前向 $z_t$ 可以高效地通过 $\mathcal{E}$ 提前计算(因为前向过程是固定的)
· 从 $p(z)$ 采样得到的样本,只需要一次通过 $\mathcal{D}$ 就能解码回像素空间的图像
这就是整个性能跃升的来源——"在小张量上跑扩散"比"在大张量上跑扩散"快了一个数量级。
LDM 通过在 UNet 里加 Cross-Attention 层,让扩散模型接受多模态条件输入——文本提示、语义图、布局,都可以。这是 Stable Diffusion 文生图能力的真正来源。条件输入 $y$ 先通过一个领域专属编码器 $\tau_\theta$ 投到中间表示,然后通过 cross-attention 接入 UNet。
能让 LDM 真正破圈的,是它对条件生成的设计——尤其是文生图。
扩散模型原则上可以建模条件分布 $p(z|y)$,做法是把条件 $y$ 接入去噪 UNet 变成 $\epsilon_\theta(z_t, t, y)$。但之前的工作大多只用类别标签或模糊的输入图,没有解决"任意模态条件"的问题。
LDM 的方案:用 Cross-Attention 把任意模态的条件接入 UNet。
具体做法是这样的。给定条件 $y$(比如一段文本),先用一个领域专属编码器 $\tau_\theta$(比如 BERT 风格的 Transformer)把它编码成中间表示 $\tau_\theta(y) \in \mathbb{R}^{M \times d_\tau}$。然后通过 cross-attention 接入 UNet 的中间层:
翻译一下:Query 来自 UNet 当前层的图像潜表示(图像在「问」),Key 和 Value 来自条件编码(文本在「答」)。这正是 Transformer 里的标准 cross-attention 模式,只是搬到了扩散 UNet 里。
条件 LDM 的训练目标随之扩展为:
其中 $\epsilon_\theta$ 和 $\tau_\theta$ 通过这个损失联合优化。这个机制非常灵活——$\tau_\theta$ 可以是任何对应模态的"专家":文本就用 Transformer、语义图就用 CNN、布局就用 embedding。
正是这个 Cross-Attention 设计,让同一套 LDM 框架可以同时支持文生图、图像修复、语义合成、超分辨率等多种条件任务。
下采样因子 $f$ 既不能太小(=1 退化成像素扩散,没省),也不能太大(=32 信息损失太多,限制画质)。$f = 4$ 到 $f = 8$ 是甜蜜点——LDM-4 在复杂数据集上效果最好,LDM-8 在更简单数据集和速度敏感场景更优。
这一节是论文的关键消融实验。作者训了 6 个不同压缩比的 LDM($f \in \{1, 2, 4, 8, 16, 32\}$,LDM-1 等价于纯像素扩散),在固定 A100 算力和训练步数下对比。
结果非常清晰:
· $f = 1, 2$ 训练慢——把太多感知压缩留给扩散模型自己做,浪费算力
· $f = 16, 32$ 早期就饱和——第一阶段压缩过激,丢了太多信息,扩散模型再怎么训也救不回来
· $f = 4, 8, 16$ 之间是最佳区间——在 ImageNet 上训 2M 步后,LDM-1 和 LDM-8 的 FID 差距高达 38 分
从采样速度看(用 DDIM 采样器对比 FID vs 步数),LDM-4 和 LDM-8 在 CelebA-HQ 和 ImageNet 上都全面碾压 LDM-1——质量更高、速度更快。
论文给的实践建议很明确:复杂数据集用 LDM-4 保证质量,更简单的数据集或速度敏感场景用 LDM-8。Stable Diffusion 后续公开发布的所有模型都使用 LDM-8 配置(潜空间是 $64 \times 64 \times 4$,对应 $512 \times 512$ 的像素图像)。
论文做了大量实验,覆盖无条件生成、类别条件生成、文生图、修复、超分辨率等多个任务。我挑最有代表性的两类来讲。
无条件图像生成。在 $256 \times 256$ 分辨率的 CelebA-HQ 上,LDM-4 拿到 5.11 FID,刷新 SOTA——超过了之前所有基于似然的模型和 GAN。在 FFHQ 上 4.98 FID,在 LSUN-Churches 上 4.02 FID。在 LSUN-Bedrooms 上 2.95 FID,与 ADM 接近,但参数只有 ADM 的一半、训练资源是 ADM 的 1/4。
文生图。这是真正破圈的部分。作者在 LAION 数据集上训了一个 1.45B 参数的 LDM-KL-8-G 模型,在 MS-COCO 上评估:
| 方法 | FID ↓ | IS ↑ | 参数量 |
|---|---|---|---|
| CogView | 27.10 | 18.20 | 4 B |
| LAFITE | 26.94 | 26.02 | 75 M |
| GLIDE | 12.24 | — | 6 B |
| Make-A-Scene | 11.84 | — | 4 B |
| LDM-KL-8-G | 12.63 | 30.29 | 1.45 B |
看出门道了吗?LDM-KL-8-G 在 FID 上跟 6B 参数的 GLIDE 几乎打平,但参数只有它的四分之一。这意味着:以更低的训练和推理成本,做到了同等水平的文生图能力。
论文里还展示了大量惊艳的样本——"一只画风像 Picasso 的僵尸"、"一张写着 Latent Diffusion 的街道标志"、"一幅水彩画风的、长得像章鱼的椅子"……这些 prompt 几年前还需要专业插画师工作几小时,现在 LDM 几秒就能给出多种诠释。
1.45B 参数,达到 GLIDE 6B 的水平。
开源、可重训、单卡可玩。
AI 绘画的民主化时代,从这里开始。
LDM 这篇论文的真正影响,不在于刷了多少 FID,而在于它开源了代码和预训练模型——几个月后基于它构建的 Stable Diffusion 发布,AI 绘画一夜之间变成了开源生态。今天你听过的所有 AI 绘画应用——Midjourney、ComfyUI、SDXL、Flux、ControlNet——它们的根都扎在这篇 2022 年的 CVPR 论文里。
2022 年 4 月,LDM 论文在 arxiv 上发布。同年 8 月,CompVis、Stability AI、Runway 合作把训好的模型作为 Stable Diffusion v1.4 公开发布——任何人可以在一张消费级 GPU 上跑、可以微调、可以商用。
这件事的影响巨大。在 Stable Diffusion 之前,AI 绘画是 OpenAI DALL-E、Google Imagen、Midjourney 这些闭源 API的特权。在它之后,一个完整的开源生态在几个月内长出来:
· ControlNet 让你能精确控制构图和姿势
· LoRA 让普通人能训练自己的画风模型
· SDXL、SD3、Flux 等后续模型不断把质量推向新高
· ComfyUI、Automatic1111 等工具让非技术用户也能玩
所有这些,都建立在 LDM 论文奠定的那个核心架构上:自编码器压缩 + 潜空间扩散 + Cross-Attention 条件。
一篇 CVPR 论文 + 一次开源发布 =
把一个被锁在大公司手里的能力,
变成了人人可玩的开源生态。
这就是为什么开源才是 AI 民主化的真正引擎。
到这里,Transformer 系列三部曲就讲完了——Transformer 把序列建模从循环范式中解放,ViT 把这个解放扩展到视觉,LDM 把生成模型从像素牢笼中解放。三篇论文,三次"用更简单的方式做更难的事"。
下一集,我会接着讲计算机视觉的另一根脊梁——CS231n 的 CNN 讲义。看看在 Transformer 出现之前,神经网络是怎么征服视觉世界的。它的设计哲学和 ViT 是镜像:把"位置"作为强归纳偏置烧进结构里。两种哲学的对照,会让你对深度学习的演化看得更透。