前言
对比GAN,diffusion model的训练更为容易,但是其测试时往往需要进行多次前向传播,推断速度十分缓慢。从噪声到图像,DDPM通常需要重复迭代采样1000次,目前比较有代表性的加速采样方式有
1、DDIM:从采样公式推导出发,将迭代次数下降到10~50次
2、stable diffusion:通过减少diffusion model的计算量,进一步提升了推断速度,目前stable diffusion已成为diffusion model的标配。
3、近期的consistency model(代表:Dalle-3):通过额外训练一个模型,加速模型采样,只需要进行一次迭代,即可采样出高质量的图像。
motivation
图像越小,则所需要的计算量也会越小。基于此,作者提出利用encoder将图像降采样到一个与原始图像空间类似的特征空间(例如从512*512 降采样到256*256),并在该特征空间中训练diffusion model。
上述流程的核心为映射到的特征空间需要保留原始图像足够的语义信息,GAN、VAE训练的AutoEncoder均可满足上述要求。作者选择《Taming Transformers for High-Resolution Image Synthesis》中训练的AutoEncoder作为backbone。diffusion model采用time-conditional UNet(具体可查看ADM)
训练的具体流程为
- 训练一个autoencoder,可以很好的对图像降采样,并还原图像
- 利用encoder对图像进行降采样,得到特征
ϵ
epsilon
ϵ - 对
ϵ
epsilon
ϵ加噪,训练diffusion model
测试的具体流程为
- 从标准正态分布中采样噪声
x
t
x_{t}
xt - 利用diffsion model和噪声
x
t
x_{t}
xt进行逆向过程,得到x
0
x_0
x0 - 利用decoder将
x
0
x_0
x0映射回原始图像空间
Conditioning Mechanisms
作者通过Classifier Free Guidance Diffusion来控制diffusion model生成的图像,对应的模型结构可参考下图
condition(图像、文字等)
y
y
y通过网络
τ
θ
tau_theta
τθ编码后,通过cross-attention将condition引入到U-Net中。设U-Net网络第
i
i
i层为
φ
i
varphi_i
φi,输入为
z
t
z_t
zt,条件为
y
y
y,条件编码网络为
τ
θ
tau_theta
τθ,则cross-attention的定义如下图,cross attention中的
K
K
K、
V
V
V由
τ
θ
tau_theta
τθ编码得到,整个结构应该是模拟transformer decoder中的self attention结构(
K
K
K、
V
V
V为transformer encoder的输出),个人觉得这里的
K
K
K、
V
V
V、
Q
Q
Q是谁应该没有大的讲究,由效果决定。

实验结果
实验章节将用LDM来代表stable diffusion
如何训练autoencoder
前文提到,stable diffusion的核心为映射到的特征空间需要保留原始图像足够的语义信息,因此如何训练autoencoder非常重要。下图显示了各种训练方式训练的autoencoder,在图像重建任务上的性能。
虽然VQ-regu训练的最好的autoencoder在图像重建任务的性能上略逊于KL-regu,但是作者发现选择VQ-regu训练的autoencoder,在最终的某些图像生成任务上的性能反而更好,因此在后续的实验中,都选择f=4、VQ-regu训练的autoencoder。
上述结论和表格有两个有意思的地方
- 对于
f
f
f=4,∣
z
∣
|z|
∣z∣=8192,c
c
c=4训练的autoencoder,不使用attention(猜测是self attention)的autoencoder性能是大幅下降的。这表明图像生成这类需要模型建立知识图谱的任务,attention结构是很重要的组成部分。以self attention为例,假设一个token代表一个concept,则K
K
K、V
V
V相乘后得到的softmax矩阵,代表了每个concept与其余concept的关系(类似于知识图谱中各种concept之间连线的含义),通过对不同concept的加权求和推导出更高阶的concept,上述过程和知识图谱非常类似。 - 作者的言论似乎可以推断出autoencoder在图像重建任务上的性能与LDM的性能关系不是正比。这应该是评估指标带来的误解,上述指标似乎无法直接评估encoder编码后的特征空间是否能很好等价于原始图像空间,图像重建任务效果好完全可能是decoder训练的更好。
LDM性能与autoencoder深度的联系
如下图所示,LDM-1表示DDIM,LDM-2表示encoder将原图的分辨率downsample了两倍
从上图我们可以得知两个信息
- encoder的深度太浅,则模型学习能力太弱,隐空间很难保留足够的语义信息,LDM的性能也差;encoder深度太深,则隐空间丢弃的图像信息过多,无法很好反应原始图像空间的信息,也会导致LDM的性能变差,这也侧面证明了autoencoder在图像重建任务上的性能与LDM的性能关系不是正比。
- encoder的深度合理的情况下,LDM可以在较短的训练轮数里就达到不错的性能
结合这两个实验,个人认为选择的autoencoder应该具备两个特性
- 在图像重建任务上具备不错的性能
- encoder的深度不能太浅也不能太深
LDM带来的图像生成速率提升
下图显示了不同数据集上,反向过程迭代轮数、每秒生成图像张数、生成图像质量的关系。结论有两个
- encdoer的深度越深,每秒生成图像张数越多,生成效率越快
- 对比像素空间的diffusion model(比如DDIM),LDM能提升生成图像的质量

LDM在图像生成任务上与sota方法比较
在非条件图像生成任务上,性能差于GAN,但非条件图像生成任务意义有限
而在文生图任务上,则击败Dall-E,创造了新的sota记录
文章来源于互联网:深度学习(生成式模型)—— stable diffusion:High-Resolution Image Synthesis with Latent Diffusion Models
相关推荐: AI绘图Stable Diffusion,如何无损高清放大图片,保姆级教程建议收藏!
前言 我们在用 stable diffusion 制作AI图片时,默认生成图片的尺寸为512*512,即使是竖图一般也就是512*768,如果再把尺寸设置大一些,就会因为硬件算力不够而造成系统崩溃,今天就来跟大家聊一聊,如何将制作好的小图无损放大,得到一张高分…
5bei.cn大模型教程网










