Stable Diffusion技术路线发展历程回顾
概览
下图描述了 Stable Diffusion 模型的发展历程,从最初的 AE(Auto Encoder),逐步发展到 DDPM、VQVAE、LDM,并最终产生了 Stable Diffusion。从技术路线上看,Stable Diffusion 由 2 条技术路线汇聚而成,一条是路线 1:AE -> VAE -> DDPM,另一条是路线 2:AE -> VQVAE -> LDM。路线 1 主要解决生成图像质量不高的问题,而路线 2 解决的是生成图像速度慢的问题,而 Stable Diffusion 结合了路线 1 和路线 2 的研究成果,可较快地生成较高质量的图像。
1. AE 的问题
AE 是一种比较早期的图像压缩和生成模型,是一种 Encoder-Decoder 架构,一幅图像经由 AE 的 Encoder 编码后,得到一个中间向量 vector,vector 即为一幅图像的中间表达,经由 Decoder 反向解码后,可还原图像。
AE 的 Encoder 可看作是图像压缩过程,而 Decoder 可看作图像解压缩过程,中间向量 vector 即为图像的中间表达,也可理解为压缩后的图像表达,下图描述了图像经 AE 压缩和生成的过程,由于压缩过程丢弃了比较多的信息,所以还原后的图像相较原图模糊很多。
AE 作为早期的图像生成模型,其学习到的知识更像是一种具体的数据映射规则,其中 AE Encoder 学的是图片到向量的映射,而 AE Decoder 学的则是向量到图片的映射。AE 最大的问题是模型过拟合
,AE 对训练数据学习得比较好,强行记住了训练集数据 Encoder 后的中间状态,如果来了一个不是训练集的数据,那么效果就比较差。AE 另一个问题是还原图片的质量不是太好,比较模糊
。因此,便产生了路线 1 和路线 2 里的那些技术。
2. 路线 1:VAE -> DDPM
路线 1 最大的贡献,是大大提高了生成图像的质量,相较 AE 更清晰,但计算代价也大为提高,生成图像的速度也更慢。
2.1 VAE
VAE 英文全称为 Variational Auto Encoder,即变分自编码器,其基于 AE 发展而来,与 AE 不同的是,VAE 学习的目标不再是强行记忆训练集数据的编码输出,而是学习训练数据集的分布,使得 AE 过拟合现象有所缓解。
下图描述了 VAE 原理,与 AE 的结构比较相似,不同的是 VAE 编码过程是获取训练集的均值 u 和标准差 σ,然后从正态分布 N(u, σ2)上随机采样一个数据,并输入给 Decoder 做图像生成,即 VAE 学习的是数据集分布,不再是具体的某几个中间数据状态,具有一定的泛化能力。
VAE 虽然缓解了 AE 过拟合的问题,但生成图像的质量,仍然比较模糊,可能是因为 VAE 训练损失函数只施加以下两个约束:
- 重建图像和原图尽量相似;
- 编码器输出 N(u, σ2)要与 N(0, 1)尽量相似。
2.2 DDPM
DDPM 英文全称是 Denoise Diffusion Probabilistic Model,即去噪扩散概率模型。DDPM 作为扩散模型的鼻祖,得益于热力学启发,提出了加噪声的扩散过程和预测噪声的推理过程,图 5 描述了 DDPM 的原理。
-
扩散过程
DDPM 扩散过程是一个由 T 个时间步组成的一个马可夫链,对于马可夫链的某个节点 xt,首先会生成一个和输入图像尺寸相同的噪声 ϵ,ϵ 采样自 N(0, 1)的正态分布,然后将上个节点的输出与 ϵ 进行加权融合,以下公式为融合当前噪声和上个结点输出的方式:
-
去噪过程
该过程也是由 T 个时间步组成的一个马可夫链,每个马可夫链结点会预测当前步骤要去除的噪声 ϵθ,然后用上个节点的输出加权减去 ϵθ,得到当前节点预测的图像内容。
通常使用 UNet 网络来预测噪声 ϵθ,如图 6 所示,对于预测出的噪声 ϵθ,通过 loss 函数约束,使其尽量逼近扩散过程中对应时间步 t 所添加的噪声 ϵ。
DDPM 通过引入扩散过程,解决了 AE 过拟合的问题,同时通过加噪和去噪过程,学习如何生成高质量图像的手段,所以 DDPM 比 VAE 更进了一步,除了解决 AE 过拟合问题,还能生成高质量图像,但 DDPM 是按原图尺寸进行加噪和去噪,所以其计算代价是非常高的,生成图像的速度会比较慢,尤其是大尺寸图像。此时,就进入技术路线 2,以期突破生成图像速度慢的性能瓶颈。
3. 路线 2:VQVAE
3.1 VQVAE
VQVAE 英文全称 Vector Quantised Variantioal Auto Encoder,即向量量化变分自编码器,其原理是通过将 Encoder 后的向量离散化,然后再经由 Embedding 映射到一个连续空间,从而解决 AE 过拟合的问题,其最大的贡献是提出将输入图片经由 Encoder 压缩为一个尺寸更小的图像,后续解码器对该小图像解码,以最终还原原图,图 7 描述了 VQ-VAE 的原理。
通过 VQ-VAE 将大图像压缩为小图像,后续操作都施加在小图像上,计算代价就大为减少,这点恰好弥补了 DDPM 生成图像慢的短板。
4. Stable Diffusion 模型
结合路线 1 和路线 2 模型的优劣,取长补短,最终诞生了 Stable Diffusion 模型。在 Stable Diffusion 模型里,提出了一个叫 Latent Diffusion Model 的潜空间扩散模型,如图 8 所示。
LDM 由 Pixel Space、Latent Space 和 Conditioning 三个部分构成,Pixel Space 借鉴了 VQ-VAE 的思想,通过 Encoder 将输入图像压缩为一个 64644 的潜空间里的小图像,以减少计算代价,并通过 Decoder 将潜空间里的小图像还原为原尺寸的大图像; Latent Space 大体等同于一个 DDPM,用于对潜空间的 64644 的小图像进行扩散和反向去噪; Conditioning 主要是一个多模态处理模块 CLIP,对各种图文信息进行抽取,以供图像去噪过程参考如何生成噪声。
可见 LDM 本质是由技术路线 1 的 DDPM 和 VQ-VAE 融合而成,然后新增一个条件式生成图像模块 Conditioning,因此,理解了 DDPM 和 VQ-VAE 的概念,理解 Stable Diffusion 就非常简单。