CVPR 2022 Oral · arXiv 2112.10752v2

High-Resolution Image Synthesis with Latent Diffusion Models

Robin Rombach†、Andreas Blattmann†、Dominik Lorenz、Patrick Esser、Björn Ommer提出两阶段图像生成框架:先用感知压缩器移除难以察觉的像素细节,再让扩散模型在保留二维结构的连续 latent 上学习视觉分布。论文同时用 cross-attention 统一文本、类别和布局条件,并将拼接条件用于超分辨率、语义合成和图像修复。

† 共同第一作者CVPR 2022 · 10684–1069545 页,含完整附录版本日期 2022-04-13原始 LDM:BERT 条件编码器
Reading map

这篇论文解决的计算错配

像素空间

扩散网络的每次前向都处理全部 RGB 像素,高频与人眼不敏感的细节仍持续消耗训练和采样计算。

温和压缩

下采样因子 \(f\in\{4,8\}\) 在重建能力、生成质量和吞吐量之间达到论文观测到的最佳区域。

通用条件

cross-attention 将文本、类别和 bounding boxes 映射到同一个 UNet 条件接口;空间图像条件直接与 noisy latent 拼接。

Paper Verified 论文的直接证据覆盖无条件生成、ImageNet 类别条件生成、LAION 文本生成、布局生成、语义图生成、\(4\times\) 超分辨率和 Places 修复。高分辨率卷积采样存在全局结构失真,附录明确展示了该限制。
Author Claim 作者把 \(f=4\) 或 \(f=8\) 的优势解释为“感知压缩”与“扩散语义建模”的近优分工。实验支持这一经验区间;它没有给出对所有数据和所有架构都成立的理论最优性证明。

问题定义与表示

给定图像 \(x\in\mathbb{R}^{H\times W\times3}\),编码器 \(\mathcal{E}\) 产生 \(z=\mathcal{E}(x)\in\mathbb{R}^{h\times w\times c}\),解码器 \(\mathcal{D}\) 还原 \(\tilde{x}=\mathcal{D}(z)\)。空间压缩因子 \(f=H/h=W/w\)。第一阶段固定以后,第二阶段只在 \(z\) 上执行正向加噪与反向去噪。

输入图像\(x\)
感知编码\(z=\mathcal{E}(x)\)
latent diffusion\(z_t\rightarrow z_0\)
图像解码\(\tilde{x}=\mathcal{D}(z_0)\)
条件接口拼接或 cross-attention

两类第一阶段正则

KL-regularized

编码器输出对角高斯 \(q_{\mathcal{E}}(z\mid x)\),用约 \(10^{-6}\) 权重的 KL 项轻度约束到标准正态。训练 LDM 时从 posterior 采样连续 latent;这一轻正则保留较强重建能力。

VQ-regularized

使用高容量 codebook 训练 autoencoder。官方实现的 LDM 接口取 quantization 前的连续 tensor 作为扩散空间,解码时再量化并送入 decoder;因此第二阶段仍是连续空间扩散。

Our Interpretation 下面的式子用于归纳官方实现的 AE 训练组成;论文正文没有把四项写成这一条合并公式,VQ 与 KL 分支也使用不同的正则项。
\[ \mathcal{L}_{\mathrm{AE}} =\mathcal{L}_{\mathrm{rec}}(x,\mathcal{D}(\mathcal{E}(x))) +\mathcal{L}_{\mathrm{LPIPS}} +\lambda_{\mathrm{adv}}\mathcal{L}_{\mathrm{PatchGAN}} +\lambda_{\mathrm{reg}}\mathcal{L}_{\mathrm{reg}} \]
\[ q(z\mid x)=\mathcal{N}\!\left(z;\mu_{\mathcal{E}}(x),\sigma_{\mathcal{E}}^2(x)\right),\qquad z_q=\operatorname*{arg\,min}_{e_k\in\mathcal{Z}}\left\lVert z_e-e_k\right\rVert_2 \]

KL 分支使用轻权重 \(D_{\mathrm{KL}}(q(z\mid x)\lVert\mathcal{N}(0,\mathbf I))\);VQ 分支用最近 codebook 向量 \(z_q\) 训练 decoder。LPIPS 提供感知相似度,patch discriminator 增强局部纹理,正则项控制 latent。论文把这个阶段称为 perceptual compression;它承担难以察觉的细节压缩,同时保留可供卷积网络建模的二维结构。

论文 Figure 1:压缩率、重建质量与生成计算
Figure 1. 温和下采样提升可达到的生成质量上限;横轴展示压缩,曲线区分重建上界与生成代价。
论文 Figure 2:感知压缩与语义压缩
Figure 2. 第一阶段移除感知无关细节,扩散模型负责剩余的语义压缩。它解释了两阶段分工的动机。

Latent diffusion 的训练与采样

前向过程与噪声预测

\[ q(z_t\mid z_0)=\mathcal{N}\!\left(z_t;\alpha_t z_0,\sigma_t^2\mathbf{I}\right), \qquad z_t=\alpha_tz_0+\sigma_t\epsilon, \quad \epsilon\sim\mathcal{N}(0,\mathbf{I}) \]
\[ \mathcal{L}_{\mathrm{LDM}} =\mathbb{E}_{x,\epsilon,t}\!\left[ \left\lVert\epsilon-\epsilon_{\theta}(z_t,t)\right\rVert_2^2 \right],\qquad z_0=\mathcal{E}(x) \]

\(t\) 从 \(\{1,\ldots,T\}\) 均匀采样。这里 \(\alpha_t=\sqrt{\bar{\alpha}_t}\),\(\sigma_t=\sqrt{1-\bar{\alpha}_t}\),\(\bar{\alpha}_t\) 是单步保留系数的累计乘积。UNet 接收 noisy latent \(z_t\) 与 timestep \(t\),预测加入的噪声。附录从 ELBO、真实后验和 \(x_0\)-prediction 推导到 \(\epsilon\)-parameterization,并采用 equal weighting 的简化目标。

反向过程

\[ p_{\theta}(z_{0:T})=p(z_T)\prod_{t=1}^{T}p_{\theta}(z_{t-1}\mid z_t),\qquad p_{\theta}(z_0)=\int p_{\theta}(z_{0:T})\,\mathrm{d}z_{1:T},\qquad p(z_T)=\mathcal{N}(0,\mathbf{I}) \]

实际评测大量使用 DDIM 子序列,按 50、100、200、250 或 500 步采样。令 \(\widehat z_0=(z_t-\sqrt{1-\bar{\alpha}_t}\epsilon_{\theta}(z_t,t))/\sqrt{\bar{\alpha}_t}\),一次 DDIM 更新为

\[ z_{t-1}=\sqrt{\bar{\alpha}_{t-1}}\widehat z_0+\sqrt{1-\bar{\alpha}_{t-1}-\sigma_{\eta,t}^2}\,\epsilon_{\theta}(z_t,t)+\sigma_{\eta,t}\epsilon,\qquad \sigma_{\eta,t}=\eta\sqrt{\frac{1-\bar{\alpha}_{t-1}}{1-\bar{\alpha}_t}}\sqrt{1-\frac{\bar{\alpha}_t}{\bar{\alpha}_{t-1}}} \]

此处 \(\sigma_{\eta,t}\) 是 DDIM 子序列的采样随机量,与前向边缘分布中的 \(\sigma_t=\sqrt{1-\bar{\alpha}_t}\) 含义不同;对跳步采样可把 \(t-1\) 替换为前一个子序列时刻 \(\tau\lt t\)。\(\eta=0\) 给出确定性 DDIM 路径,\(\eta\gt0\) 注入随机性。论文训练噪声日程为 1000 步 linear schedule,采样步数与训练 diffusion steps 需要分开理解。

冻结边界

第一阶段编码器与解码器在训练 LDM 时设为 evaluation 状态并关闭梯度。UNet 与可训练的 conditioner \(\tau_{\theta}\) 共同优化。这样的训练边界使生成模型面对固定表示空间,也允许同一 autoencoder 被多个任务复用。

条件生成:一个 UNet,两类入口

Cross-attention

非空间条件 \(y\) 经领域编码器 \(\tau_{\theta}\) 得到 \(\tau_{\theta}(y)\in\mathbb{R}^{M\times d_c}\)。UNet 中间特征 \(\varphi_i(z_t)\in\mathbb{R}^{N\times d_i}\) 产生 query,conditioner 产生 key 与 value。

\[ Q=\varphi_i(z_t)W_Q^{(i)},\qquad K=\tau_{\theta}(y)W_K^{(i)},\qquad V=\tau_{\theta}(y)W_V^{(i)} \]

其中 \(W_Q^{(i)}\in\mathbb{R}^{d_i\times d}\),\(W_K^{(i)}\in\mathbb{R}^{d_c\times d}\),\(W_V^{(i)}\in\mathbb{R}^{d_c\times d_v}\),attention 输出属于 \(\mathbb{R}^{N\times d_v}\)。

\[ \operatorname{Attention}(Q,K,V) =\operatorname{softmax}\!\left(\frac{QK^{\mathsf T}}{\sqrt d}\right)V \]
\[ \mathcal{L}_{\mathrm{cond}} =\mathbb{E}_{x,y,\epsilon,t}\!\left[ \left\lVert\epsilon-\epsilon_{\theta}(z_t,t,\tau_{\theta}(y))\right\rVert_2^2 \right] \]

文本模型使用 BERT tokenizer,序列长度 77;conditioner 是 depth 32、dim 1280 的 unmasked transformer。布局模型把 bounding box 离散为左上位置、右下位置与类别三元组,序列长度 92,transformer depth 16、dim 512。类别模型使用单个 512 维可学习 embedding。原论文模型没有使用 CLIP text encoder。

空间拼接

超分辨率把低分辨率图像上采样到 latent 尺寸后与 \(z_t\) 在 channel 维拼接;inpainting 同时提供被遮挡图像和 mask;semantic synthesis 拼接下采样的语义图。空间坐标天然对应时,拼接比 token 化更直接。

Classifier-free guidance

\[ \widehat{\epsilon}_{\theta}(z_t,t,y) =\epsilon_{\theta}(z_t,t,\varnothing) +s\left[ \epsilon_{\theta}(z_t,t,y)-\epsilon_{\theta}(z_t,t,\varnothing) \right] \]

文本结果使用 \(s=1.5\) 进行 COCO 量化评测,Figure 5 的自定义提示样例使用 \(s=10\)。ImageNet 最佳结果使用 \(s=1.5\)。增大 \(s\) 通常提升 fidelity,同时会降低 diversity;Table 10 中 recall 从 unguided 的 0.62 降至 0.48。

论文 Figure 3:LDM 条件机制
Figure 3. 左侧是 encoder–latent diffusion–decoder,两种条件入口分别是 channel concatenation 与 cross-attention。

主文实验:结果与边界

Table 1 · 无条件图像合成(原表完整数值)
数据集方法FID↓Precision↑Recall↑
CelebA-HQ 256²DC-VAE15.8––
VQGAN+T (k=400)10.2––
PGGAN8.0––
LSGM7.22––
UDM7.16––
LDM-4, 500 DDIM steps5.110.720.49
FFHQ 256²ImageBART9.57––
U-Net GAN (+aug)10.9 (7.6)––
UDM5.54––
StyleGAN4.160.710.46
ProjectedGAN3.080.650.46
LDM-4, 200 steps4.980.730.50
LSUN Churches 256²DDPM7.89––
ImageBART7.32––
PGGAN6.42––
StyleGAN4.21––
StyleGAN23.86––
ProjectedGAN1.590.610.44
LDM-8 (KL), 200 steps4.020.640.52
LSUN Bedrooms 256²ImageBART5.51––
DDPM4.9––
UDM4.57––
StyleGAN2.350.590.48
ADM1.900.660.51
ProjectedGAN1.520.610.34
LDM-4, 200 steps2.950.660.48
Our Interpretation LDM 在四个数据集都显著优于早期 pixel diffusion;它没有在每个 FID 对比中领先。Churches 的 ProjectedGAN 为 1.59,Bedrooms 的 ADM 为 1.90,均优于对应 LDM。
Table 2 · MS-COCO 256² 文本条件生成
方法FID↓IS↑参数量采样设置
CogView27.1018.204Bself-ranking,拒绝率 0.017
LAFITE26.9426.0275M–
GLIDE12.24–6B277 DDIM,CFG \(s=3\)
Make-A-Scene11.84–4BAR classifier-free guidance \(s=5\)
LDM-KL-823.3120.03 ± 0.331.45B250 DDIM
LDM-KL-8-G12.6330.29 ± 0.421.45B250 DDIM,CFG \(s=1.5\)
Table 3 · ImageNet 256² 类别条件生成
方法FID↓IS↑Precision↑Recall↑参数
BigGAN-deep6.95203.6 ± 2.60.870.28340M
ADM10.94100.980.690.63554M
ADM-G4.59186.70.820.52608M
LDM-410.56103.49 ± 1.240.710.62400M
LDM-4-G, \(s=1.5\)3.60247.67 ± 5.590.870.48400M
Table 4 · 2AFC 用户研究
任务Pixel-DMLDM-4LaMaLDM-4 修复
Task 1:与 GT 并列时被偏好16.0%30.4%13.6%21.0%
Task 2:模型间偏好29.4%70.6%31.9%68.1%

每次选择展示 3 秒,位置随机,先收集所有 Task 1 再收集 Task 2。论文没有报告参与人数,因此无法从正文复核置信区间与参与者独立性。

Table 5 · ImageNet \(4\times\) 超分辨率
方法FID↓(val/train)IS↑PSNR↑SSIM↑参数A100 样本/秒
Image Regression15.2121.127.90.801625MN/A
SR35.2180.126.40.762625MN/A
LDM-4, 100 steps2.8 / 4.8166.324.4 ± 3.80.69 ± 0.14169M4.62
LDM-4 big, 100 steps2.4 / 4.3174.924.7 ± 4.10.71 ± 0.15552M4.5
LDM-4, 50 steps, LPIPS guiding4.4 / 6.4153.725.8 ± 3.70.74 ± 0.12184M0.38

FID 支持 LDM 的感知质量,PSNR/SSIM 支持 regression baseline 的逐像素保真。LPIPS guidance 经 decoder 对 latent 求梯度,提高 distortion 指标并显著降低吞吐量。

Table 6 · 修复效率
模型训练样本/秒采样 @256采样 @512训练+验证 小时/epochepoch 6 FID@2k
LDM-1,pixel0.110.260.0720.6624.74
LDM-4 KL,有 attention0.320.970.347.6615.21
LDM-4 VQ,有 attention0.330.970.347.0414.99
LDM-4 VQ,无 attention0.350.990.366.6615.95
Table 7 · Places 30k 个 512² crop 的图像修复
方法40–50% mask FID↓40–50% LPIPS↓全部 FID↓全部 LPIPS↓
LDM-4 big,有 finetune9.390.246 ± 0.0421.500.137 ± 0.080
LDM-4 big,无 finetune12.890.257 ± 0.0472.400.142 ± 0.085
LDM-4,有 attention11.870.257 ± 0.0422.150.144 ± 0.084
LDM-4,无 attention12.600.259 ± 0.0412.370.145 ± 0.084
LaMa,作者重算12.310.243 ± 0.0382.230.134 ± 0.080
LaMa,原报告12.00.242.210.14
CoModGAN10.40.261.820.15
RegionWise21.30.274.750.15
DeepFill v222.10.285.200.16
EdgeConnect30.50.288.370.16

LaMa 原测试集无法获得,论文用自建固定测试集重算一行,并保留 LaMa 论文原报告。训练使用 Places 的 256² random crops;验证 2k,测试 30k,评测使用 512² crops。big 模型为 387M UNet,在 512² 上额外 finetune 约半个 epoch。

论文 Figure 10 超分辨率
Figure 10. 64→256 超分辨率:LDM 更擅长纹理,SR3 的细结构更连贯。
论文修复结果
Figure 11 / 项目页 Figure 12. big + finetune 修复模型的物体移除结果。项目页的图号沿用早期排版,与 v2 PDF 有一位偏移。

附录 Table 8–18:重建与复现配置

Table 8 · OpenImages autoencoder zoo,在 ImageNet-Val 评测
\(f\)正则 / codebook\(c\)R-FID↓R-IS↑PSNR↑PSIM↓SSIM↑
16 VQGAN163842564.98–19.9 ± 3.41.83 ± 0.420.51 ± 0.18
16 VQGAN10242567.94–19.4 ± 3.31.98 ± 0.430.50 ± 0.18
8 DALL-E8192–32.01–22.8 ± 2.11.95 ± 0.510.73 ± 0.13
32VQ 163841631.8340.40 ± 1.0717.45 ± 2.902.58 ± 0.480.41 ± 0.18
16VQ 1638485.15144.55 ± 3.7420.83 ± 3.611.73 ± 0.430.54 ± 0.18
8VQ 1638441.14201.92 ± 3.9723.07 ± 3.991.17 ± 0.360.65 ± 0.16
8VQ 25641.49194.20 ± 3.8722.35 ± 3.811.26 ± 0.370.62 ± 0.16
4VQ 819230.58224.78 ± 5.3527.43 ± 4.260.53 ± 0.210.82 ± 0.10
4†VQ 819231.06221.94 ± 4.5825.21 ± 4.170.72 ± 0.260.76 ± 0.12
4VQ 25630.47223.81 ± 4.5826.43 ± 4.220.62 ± 0.240.80 ± 0.11
2VQ 204820.16232.75 ± 5.0930.85 ± 4.120.27 ± 0.120.91 ± 0.05
2VQ 6420.40226.62 ± 4.8329.13 ± 3.460.38 ± 0.130.90 ± 0.05
32KL642.04189.53 ± 3.6822.27 ± 3.931.41 ± 0.400.61 ± 0.17
32KL167.3132.75 ± 2.7120.38 ± 3.561.88 ± 0.450.53 ± 0.18
16KL160.87210.31 ± 3.9724.08 ± 4.221.07 ± 0.360.68 ± 0.15
16KL82.63178.68 ± 4.0821.94 ± 3.921.49 ± 0.420.59 ± 0.17
8KL40.90209.90 ± 4.9224.19 ± 4.191.02 ± 0.350.69 ± 0.15
4KL30.27227.57 ± 4.8927.53 ± 4.540.55 ± 0.240.82 ± 0.11
2KL20.086232.66 ± 5.1632.47 ± 4.190.20 ± 0.090.93 ± 0.04

† 表示 attention-free autoencoder。R-FID 是重建 FID,衡量第一阶段上限;极低 R-FID 并不自动带来最高生成效率,因为 latent 分辨率也决定扩散计算量。

Table 9 · Layout-to-image
方法COCO 256² FID↓OpenImages 256²OpenImages 512²
LostGAN-V242.55––
OC-GAN41.65––
SPADE41.11––
VQGAN+T56.5845.3348.11
LDM-8,COCO scratch,100 steps42.06––
LDM-4,OpenImages→COCO finetune,200 steps40.9132.0235.80
Table 10 · ImageNet 完整比较
方法FIDISPR参数设置
SR311.30–––625M–
ImageBART21.19–––3.5B–
ImageBART7.44–––3.5B0.05 rejection
VQGAN+T17.0470.6 ± 1.8––1.3B–
VQGAN+T5.88304.8 ± 3.6––1.3B0.05 rejection
BigGAN-deep6.95203.6 ± 2.60.870.28340M–
ADM10.94100.980.690.63554M250 DDIM
ADM-G4.59186.70.820.52608M250 DDIM
ADM-G + ADM-U3.85221.720.840.53n/a2 × 250 DDIM
CDM4.88158.71 ± 2.26––n/a2 × 100 DDIM
LDM-8, 2.9M17.4172.92 ± 2.60.650.62395M200 DDIM
LDM-8-G, 2.9M8.11190.43 ± 2.600.830.36506Mclassifier scale 10
LDM-8, 4.8M15.5179.03 ± 1.030.650.63395M200 DDIM
LDM-8-G, 4.8M7.76209.52 ± 4.240.840.35506Mclassifier scale 10
LDM-410.56103.49 ± 1.240.710.62400M250 DDIM
LDM-4-G3.95178.22 ± 2.430.810.55400MCFG \(s=1.25\)
LDM-4-G3.60247.67 ± 5.590.870.48400MCFG \(s=1.5\)
Table 11 · 超分辨率补充与等计算 pixel baseline
方法FID val/trainISPSNRSSIM
Image Regression15.2121.127.90.801
SR35.2180.126.40.762
LDM-4, 100 steps2.8 / 4.8166.324.4 ± 3.80.69 ± 0.14
LDM-4, 50 steps, guiding4.4 / 6.4153.725.8 ± 3.70.74 ± 0.12
LDM-4, 100 steps, guiding4.4 / 6.4154.125.7 ± 3.70.73 ± 0.12
LDM-4, +15 epochs2.6 / 4.6169.76 ± 5.0324.4 ± 3.80.69 ± 0.14
Pixel-DM, +15 epochs5.1 / 7.1163.06 ± 4.6724.1 ± 3.30.59 ± 0.12
Table 12 · 无条件模型训练配置
配置CelebA-HQFFHQLSUN ChurchesLSUN Bedrooms
f / z-shape / codebook4 / 64×64×3 / 81924 / 64×64×3 / 81928 / 原表未报 / 原表未报4 / 64×64×3 / 8192
steps / schedule / params1000 / linear / 274M1000 / linear / 274M1000 / linear / 294M1000 / linear / 274M
channels / depth / multiplier224 / 2 / 1,2,3,4224 / 2 / 1,2,3,4192 / 2 / 1,2,2,4,4224 / 2 / 1,2,3,4
attention res. / head channels32,16,8 / 3232,16,8 / 3232,16,8,4 / 2432,16,8 / 32
batch / iterations / LR48 / 410k / 9.6e-542 / 635k / 8.4e-596 / 500k / 5e-548 / 1.9M / 9.6e-5
Table 13 · ImageNet 压缩率分析配置
配置LDM-1LDM-2LDM-4LDM-8LDM-16LDM-32
z-shape256×256×3128×128×264×64×332×32×416×16×88×8×32*
codebook–20488192163841638416384
params / channels396M / 192391M / 192391M / 192395M / 256395M / 256395M / 256
multiplier1,1,2,2,4,41,2,2,4,41,2,3,51,2,41,2,41,2,4
batch / LR7 / 4.9e-59 / 6.3e-540 / 8e-564 / 6.4e-5112 / 4.5e-5112 / 4.5e-5
CA resolutions32,16,832,16,832,16,832,16,816,8,48,4,2

全部为 1000 diffusion steps、linear schedule、depth 2、1 head、2M iterations、CA、embedding 512、transformer depth 1。* arXiv v2 TeX 源写成“88×8×32”,与 \(f=32\) 的空间尺寸关系冲突;页面按 8×8×32 显示并保留此版本勘误说明。

Table 14 · CelebA 压缩率分析配置
配置LDM-1LDM-2LDM-4LDM-8LDM-16LDM-32
z-shape256×256×3128×128×264×64×332×32×416×16×88×8×32*
params / channels270M / 192265M / 192274M / 224258M / 256260M / 256258M / 256
multiplier1,1,2,2,4,41,2,2,4,41,2,3,41,2,41,2,41,2,4
attention res.32,16,832,16,832,16,832,16,816,8,48,4,2
batch / LR9 / 9e-511 / 1.1e-448 / 9.6e-596 / 9.6e-5128 / 1.3e-4128 / 1.3e-4

全部为 1000 steps、linear、depth 2、head channels 32、500k iterations;提前收敛时使用最佳 checkpoint。* 同 Table 13 的 TeX 源勘误。

Table 15 · 全部条件模型配置
任务 / 数据f / z-shape / codebook参数 / channels / multiplierbatch / iterations / LR条件
Text-to-Image / LAION8 / 32×32×4 / continuous1.45B / 320 / 1,2,4,4;8 heads680 / 390k / 1e-4CA 32,16,8;dim 1280;UNet transformer depth 1
Layout / OpenImages4 / 64×64×3 / 8192306M / 128 / 1,2,3,424 / 4.4M / 4.8e-5CA 32,16,8;dim 512;depth 3
Layout / COCO8 / 32×32×4 / 16384345M / 192 / 1,2,4;dropout 0.148 / 170k / 4.8e-5CA 32,16,8;dim 512;depth 2
Class / ImageNet4 / 64×64×3 / 8192395M / 192 / 1,2,3,51200 / 178k / 1e-4CA 32,16,8;dim 512;depth 1
Super Resolution / ImageNet4 / 64×64×3 / 8192169M / 160 / 1,2,2,464 / 860k / 6.4e-5concat
Inpainting / Places4 / 64×64×3 / 8192215M / 128 / 1,4,8128 / 360k / 1e-6concat;8×V100
Semantic Map / Landscapes8 / 32×32×4 / 16384215M / 128 / 1,4,848 / 360k / 4.8e-5concat

全部使用 1000 diffusion steps、linear schedule、depth 2。其余模型按原表说明使用单张 A100。正文语义合成段落写 \(f=4\) VQ,Table 15 写 \(f=8\);这里保留原文内部差异。COCO 配置对应 scratch LDM-8;Table 9 的最佳 COCO 行是 OpenImages LDM-4 finetune,二者不可合并。

Table 16–17 · Transformer 结构与 conditioner

Table 16:输入 \(\mathbb{R}^{h\times w\times c}\) → LayerNorm → 1×1 Conv 到 \(d\cdot n_h\) → reshape 为 \(hw\times d n_h\) → 重复 \(T\) 次 Self-Attention、MLP、Cross-Attention → reshape → 1×1 Conv 回到 \(c\)。残差连接维持原 feature map。

Table 17
Conditioner序列长度depth \(N\)dim
Text-to-Image,BERT tokenizer77321280
Layout-to-Image9216512
Table 18 · 计算量、吞吐量与质量
数据 / 方法Generator / classifier / overall V100-daysA100 样本/秒参数FID / IS / P / R
Churches StyleGAN264 / – / 64–59M3.86 / – / – / –
Churches LDM-8, 100 steps18 / – / 186.80256M4.02 / – / .64 / .52
Bedrooms ADM, 1000232 / – / 232.03552M1.90 / – / .66 / .51
Bedrooms LDM-4, 20060 / – / 55*1.07274M2.95 / – / .66 / .48
CelebA LDM-4, 50014.4 / – / 14.4.43274M5.11 / – / .72 / .49
FFHQ StyleGAN232.13 / – / 32.13–59M3.8 / – / – / –
FFHQ LDM-4, 20026 / – / 261.07274M4.98 / – / .73 / .50
ImageNet VQGAN-f4 first stage29 / – / 29–55MR-FID .58 / – / – / –
ImageNet VQGAN-f8 first stage66 / – / 66–68MR-FID 1.14 / – / – / –
BigGAN-deep128–256 / – / 128–256–340M6.95 / 203.6±2.6 / .87 / .28
ADM, 250916 / – / 916.12554M10.94 / 100.98 / .69 / .63
ADM-G, 25916 / 46 / 962.7608M5.58 / – / .81 / .49
ADM-G, 250916 / 46 / 962.07608M4.59 / 186.7 / .82 / .52
ADM-G + ADM-U329 / 30 / 349*n/an/a3.85 / 221.72 / .84 / .53
LDM-8-G, 100, 2.9M79 / 12 / 911.93506M8.11 / 190.4±2.6 / .83 / .36
LDM-8, 200, 2.9M79 / – / 791.9395M17.41 / 72.92 / .65 / .62
LDM-4, 250, 178k271 / – / 271.7400M10.56 / 103.49±1.24 / .71 / .62
LDM-4-G, \(s=1.25\)271 / – / 271.4400M3.95 / 178.22±2.43 / .81 / .55
LDM-4-G, \(s=1.5\)271 / – / 271.4400M3.60 / 247.67±5.59 / .87 / .48

V100-days 由作者把单 A100 天数按 2.2× 速度比换算;这是硬件近似换算。* 原 Table 18 的 Bedrooms 行 generator 60、overall 55,以及 ADM-G+ADM-U 行 329+30 与 overall 349 均存在算术不一致,页面保留原值。Churches 的 Table 12 参数量 294M 与 Table 18 的 256M 也存在报告差异,公开材料不足以确认具体口径。

任务协议与高分辨率机制

附录 E.3 评测口径 Table 1 与 Table 10 的无条件和类别条件 FID、precision、recall 均使用 50k 模型样本,并以对应数据集的完整训练集估计 reference statistics;Figures 6、17 与 7 的效率曲线因计算成本仅使用 5k 样本。Table 9 的 COCO layout FID 使用 COCO Segmentation Challenge split 中 2048 个未增强样本,并复用 LostGAN-V2 的同一组样本;OpenImages 使用 validation set 中 2048 张 center-cropped test images。

文本生成

1.45B LDM-KL-8 在 LAION-400M 上训练 390k iterations,batch 680,LR \(10^{-4}\)。COCO-val 30k captions 用 250 DDIM 评测。v2 已替换早期 Conceptual Captions 645M 模型。论文中的“1.45B”包含生成网络与条件组件的报告口径;发布配置保留 BERT conditioner。

超分辨率

训练输入为 ImageNet,短边至少 256,遵循 SR3 预处理,固定 bicubic \(4\times\) degradation。LDM-BSR 将它替换为随机 JPEG、相机噪声、插值、Gaussian blur 与 Gaussian noise 的组合,并修改了 BSRGAN 原始参数;量化主表对应 fixed bicubic 模型。

修复

使用 LaMa mask generator。训练 crop 256²,测试 crop 512²;条件为 masked image 与 mask 的 channel concatenation。基础模型 215M,big 模型 387M。LDM 产生多样候选,LPIPS 对平均化输出有不同偏好。

卷积式高分辨率采样

UNet 与 autoencoder 都是卷积结构,因此可在大于训练尺寸的 latent 网格上运行。空间条件有助于固定全局布局;文本或无条件生成在大尺寸上会出现重复与结构松散。附录使用低分辨率目标的 \(L_2\) 或 LPIPS 梯度引导大图采样。

\[ \log \widetilde p(y\mid z_t) =-\frac{1}{2}\left\lVert y-T\!\left(\mathcal{D}(\widehat z_0(z_t))\right)\right\rVert_2^2+C \]

其中 \(T\) 可以是 identity 或 downsampling,\(C\) 是与 \(z_t\) 无关的常数。这里的 \(\widetilde p\) 表示未归一化 Gaussian energy,并用 \(\widehat z_0(z_t)\) plug-in 近似构造引导梯度;它不构成精确的观测 likelihood。该梯度修正当前 score;LPIPS 版本把 \(L_2\) 换成 learned perceptual distance。

论文 Figure 15 latent rescaling
Figure 15. KL latent 未缩放时 SNR 偏高,卷积采样过早分配语义细节;按 latent 标准差缩放后,大图结构更稳定。VQ latent 的方差已接近 1。

原图占位:未嵌入 Figure 的编号索引(编号依据 arXiv v2)

Figure 5

LAION 1.45B 文本模型的自定义提示样例;200 DDIM、\(\eta=1\)、CFG \(s=10\)。

Figure 6–7

ImageNet 与 CelebA 的压缩率训练曲线、FID–sampling throughput 曲线,支撑 \(f=4\) 与 \(f=8\) 的折中判断。

Figure 8–9

COCO layout-to-image 样例与 512×1024 语义图条件卷积采样,展示两类条件入口。

Figure 12–15

512² landscapes、文本大图、低分辨率图像引导及 latent rescaling;Figure 15 已在上文嵌入。

Figure 16–20

布局补充样例、ImageNet 固定算力曲线、LDM-BSR 泛化与等训练量 pixel-SR 对比。

Figure 21–25

修复多样性、物体移除、landscape 大图和语义条件跨分辨率泛化。

Figure 26–31

ImageNet CFG 样例与 CelebA-HQ、FFHQ、Churches、Bedrooms 无条件样例;图注中的部分 FID 沿用早期 checkpoint。

Figure 32–34

VGG-16 feature space 最近邻,检查样本是否直接复现训练图像。

Paper vs. Implementation · 固定提交代码审计

审计对象:官方仓库提交 a506df5756472e2ebaf9078affdde2c4f1502cd4。以下结论来自配置与实现文件,适用范围限定在该提交。

latent 缩放

论文附录 G 的规则是首个 batch 上估计 \(z\) 的全局标准差,再使用其倒数缩放。实现路径调用 z.flatten().std(),统计覆盖 batch、channel 和空间维度,得到单一 scalar。没有逐通道减均值表达。

发布的 txt2img-1p4B-eval.yaml 直接写 scale_factor: 0.18215。它是固定评估配置值;论文训练规则仍是首批全局标准差估计。该值确实存在于原始 LDM 官方仓库。

第一阶段接口

first_stage_model.eval() 且所有参数 requires_grad=False。KL 分支调用 posterior sample()。VQModelInterface.encode 返回 quantization 前 tensor,decode 再执行 quantize,吻合“连续 spatial latent diffusion”的论文表述。

原始文本配置

text-to-image 配置为 BERTEmbedder:depth 32、embedding 1280、序列 77;UNet channels 320、8 heads,在 32/16/8 分辨率使用 spatial transformer;KL-f8 latent 为 4 channels。它没有使用 Stable Diffusion 后续的 CLIP text encoder。

优化器与学习率

扩散实现使用 AdamW,并在 cond_stage_trainable 时把 conditioner 参数加入同一 optimizer。配置和调用没有显式给出 betas 与 weight decay,因此只能按所锁定 PyTorch 环境的 AdamW 默认值理解,论文没有报告它们。

main.py 在 scale_lr 开启时计算:actual LR = gradient accumulation × GPU 数 × batch size × base LR。配置中的 base_learning_rate 不等同于论文 Table 15 的报告 LR,也不能脱离启动参数推断实际 LR。

实现边界

  • blind SR 使用官方仓库中的 BSRGAN degradation 代码;论文只说明调整原始参数,完整随机分布依赖代码版本。
  • 分类发布目录同时存在 VQ-f4 与 VQ-f8 配置;模型结构随 checkpoint 改变,不能汇总成单一 ImageNet 架构。
  • README 后加入 retrieval-augmented diffusion 与 CLIP retrieval 内容,属于后续项目扩展,未纳入本文方法与实验结论。
  • 官方项目页仍展示早期版本部分图注与数值,例如 Churches 4.48、CelebA 5.15;v2 Table 1 数值为 4.02 与 5.11。

Reviewer Commentary

Strengths

贡献成立的地方

  • 把生成计算从像素域移入温和压缩 latent,同时保留卷积二维归纳偏置,设计简单并具有广泛复用价值。
  • Table 6 直接比较 pixel 与 latent 修复,在相近模型规模下给出训练、采样、时间和 FID,多维证据支持效率主张。
  • cross-attention 把文本、布局和类别纳入同一框架;拼接条件覆盖 SR、修复和语义图,任务跨度充足。
  • 附录公开 autoencoder zoo、全任务配置、评测 splits、算力换算和早期版本变更,复现信息在当时较完整。
Weaknesses

证据仍有缺口

  • 压缩率分析固定训练 steps 与单 A100,但各模型 batch、LR、空间计算量和 wall time 不同;“same computational budget”只能近似成立。
  • 文本模型量化结果仍略落后 Make-A-Scene 与 GLIDE 的 FID,比较还包含自报 baseline 与不同参数、采样策略。
  • 用户研究缺少参与人数、置信区间和招募信息,统计可靠性无法复核。
  • 高分辨率卷积采样没有全局结构保证;无条件与文本条件尤其容易出现重复或空间失真。
  • Table 13/14 的 LDM-32 z-shape 排版错误,Table 15 与正文的 semantic \(f\) 也存在冲突。
Research Extension

可以继续研究的问题

  • 让第一阶段压缩率随图像区域或频率自适应,并用生成误差反向选择 latent 容量。
  • 为大图采样加入低频全局 latent、分块一致性约束或多尺度 denoiser,减少 convolutional tiling 的结构漂移。
  • 统一 conditioner 的 token、空间图与图像条件,研究条件冲突时的动态 cross-attention 路由。
  • 用执行期质量估计器选择 CFG 强度与采样步数,显式优化 fidelity–recall–latency 三者关系。
Reproducibility

复现时需要锁定

  • arXiv v2、具体 autoencoder、latent scale 规则、checkpoint 与采样器。
  • FID reference split:无条件训练集、COCO-val 30k、SR 同时报 val/train features。
  • CFG scale、DDIM steps 与 \(\eta\);这些参数可大幅改变 FID 与 recall。
  • 学习率口径与 trainer 的 scale_lr、GPU 数、batch 和 accumulation。

一手资料与版本说明

  1. arXiv 2112.10752v2,论文与 45 页附录,2022-04-13。
  2. CVPR 2022 正式论文页,页码 10684–10695。
  3. Ommer Lab 官方项目页,作者、CVPR oral、论文 Figure 与项目说明。
  4. CompVis 官方代码固定提交,配置与实现审计基准。
  5. LAION-400M,v2 文本条件模型的训练数据说明。
  6. Classifier-Free Diffusion Guidance,论文采用的无分类器引导来源。

Figure 1–4、10、15 使用 Ommer Lab 官方项目页的直接图片。项目页沿用较早论文排版,部分 Figure 编号与 v2 PDF 有偏移;正文表格与数值以 arXiv v2 / CVPR 版本为准。