赞
踩
可以参考此处:https://blog.csdn.net/weixin_40920183/article/details/130652651
https://zhuanlan.zhihu.com/p/599887666
总的来说,diffusion就是分为训练和采样两个阶段。
(A)训练阶段:其中,训练阶段的目标是将加噪后的隐向量输入到UNetModel 来输出预估噪声,和真实噪声信息标签(初始化使用随机高斯噪声Gaussian Noise)作比较来计算 KL 散度 loss,并通过反向传播算法更新 UNetModel 模型参数;引入文本向量 context 后,UNetModel 在训练时把其作为 condition,利用注意力机制(具体来说就是把文本特征作为V,时序信息作为K,UNet中间层的输出作为Q,然后计算这样的跨模态注意力图,从而将文本信息融入到图像中)来更好地引导图像往文本向量方向生成。注意,这个阶段的目标是学习将加噪后的图片,与真实噪声尽可能地相近,目标就是要让图片最后变成一个高斯分布的噪声。注意,这个过程会记录下每一步图片->加噪图片的参数信息,在之后的采样阶段,这些可学习参数将会被直接用来进行反向推理。注意,加噪100步,那么100个时间步的噪声是一次性都加入进去的!只不过一次迭代是不足以完成加噪学习过程,需要进行很多次迭代。此外,训练过程的Steptime,时使用随机步长的!避免陷入局部最优!
小细节:(1)用 AutoEncoderKL 自编码器把输入图片从像素空间映射到隐向量空间,把 RGB 图片转换到隐式向量表达。其中,在训练 Unet 时自编码器参数已经训练好和固定的,自编码器把输入图片张量进行降维得到隐向量。(2)用 FrozenCLIPEmbedder 文本编码器来编码输入提示词 Prompt,生成向量表示 context,这里需要规定文本最大编码长度和向量嵌入大小。(CLIP是一个图像-文本预训练模型:根据从网络上抓取的图像及其文字说明进行训练的。CLIP 是图像编码器和文本编码器的组合,它的训练过程可以简化为给图片加上文字说明)
(B)采样阶段:采样阶段就是将随机种子产生的随机噪声+ FrozenCLIPEmbedder 文本编码器把输入提示词 Prompt 得到的编码,然后送入训练好的UNetModel 模型,结合不同采样器(如 DDPM/DDIM/PLMS)迭代 T 次不断去除噪声,得到具有文本信息的隐向量表征。用 AutoEncoderKL 自编码器把上面得到的图像隐向量进行解码,得到被映射到像素空间的生成图像。注意,这里有个很核心的理论就是,逆向过程也服从高斯分布。
一般默认20步即可得到预期效果。采样过程就是将训练阶段得到的可学习参数 ε ε ε 直接应用在这个噪声数据上,通过贝叶斯法则,重参数技巧,大概简化即为 x 0 x_0 x0 * ε 1 ε_1 ε1 即可得到 x 1 x_1 x1 如此迭代下去,最后得到 x n x_n xn 即满意的效果图。
小细节:稳定扩散算法最适用于处理高斯噪声和一些常见的图像生成和处理任务。当你使用其他类型的噪声时(伯努利分布,二项分布,泊松分布,Gamma分布,均匀分布,指数分布),算法的效果可能会有所下降,因此可能需要进行适当的调整和改进。具体来说,如果高斯噪声改变,比如在你做的分子生成任务中,那么是要达到某种目的的,比如旋转平移不变性,那么噪声的均值和方差会改变,得到的生成结果也会具有和噪声一样的性质的结果。自然图像中就是高斯分布,所以没必要更改均值和方差,改了的话对于损失函数就要更改,比如KL散度的平方。
High-Resolution Image Synthesis with Latent Diffusion Models(Latent Diffusion Models) CVPR2022
Stable diffusion是一个基于Latent Diffusion Models(潜在扩散模型,LDMs)的文图生成(text-to-image)模型。具体来说,得益于Stability AI的计算资源支持和LAION的数据资源支持,Stable Diffusion在LAION-5B的一个子集上训练了一个Latent Diffusion Models,该模型专门用于文图生成。
核心创新点:通过构建latent-diffusion-model(LDM) ,解决了之前直接在高维度特征建立扩散模型带来的资源消耗和精度限制 ,在多类下游任务中都实现了State-of-the-art。
(1)贡献:
(2)模型细节:
Latent Diffusion Models整体框架如图,首先需要训练好一个自编码模型(AutoEncoder,包括一个编码器 E \mathcal{E} E 和一个解码器 D \mathcal{D} D)。这样一来,我们就可以利用编码器对图片进行压缩,然后在潜在表示空间上做diffusion操作,最后我们再用解码器恢复到原始像素空间即可,论文将这个方法称之为感知压缩(Perceptual Compression)。个人认为这种将高维特征压缩到低维,然后在低维空间上进行操作的方法具有普适性,可以很容易推广到文本、音频、视频等领域。
在潜在表示空间上做diffusion操作其主要过程和标准的扩散模型没有太大的区别,所用到的扩散模型的具体实现为 time-conditional UNet。但是有一个重要的地方是论文为diffusion操作引入了条件机制(Conditioning Mechanisms),通过cross-attention的方式来实现多模态训练,使得条件图片生成任务也可以实现。
感知压缩本质上是一个tradeoff,之前的很多扩散模型没有使用这个技巧也可以进行,但原有的非感知压缩的扩散模型有一个很大的问题在于,由于在像素空间上训练模型,如果我们希望生成一张分辨率很高的图片,这就意味着我们训练的空间也是一个很高维的空间。
引入感知压缩就是说通过VAE这类自编码模型对原图片进行处理,忽略掉图片中的高频信息,只保留重要、基础的一些特征。这种方法带来的的好处就像引文部分说的一样,能够大幅降低训练和采样阶段的计算复杂度,让文图生成等任务能够在消费级GPU上,在10秒级别时间生成图片,大大降低了落地门槛。
感知压缩主要利用一个预训练的自编码模型,该模型能够学习到一个在感知上等同于图像空间的潜在表示空间。这种方法的一个优势是只需要训练一个通用的自编码模型,就可以用于不同的扩散模型的训练,在不同的任务上使用。这样一来,感知压缩的方法除了应用在标准的无条件图片生成外,也可以十分方便的拓展到各种图像到图像(inpainting,super-resolution)和文本到图像(text-to-image)任务上。
由此可知,基于感知压缩的扩散模型的训练本质上是一个两阶段训练的过程,第一阶段需要训练一个自编码器,第二阶段才需要训练扩散模型本身。在第一阶段训练自编码器时,为了避免潜在表示空间出现高度的异化,作者使用了两种正则化方法,一种是KL-reg,另一种是VQ-reg,因此在官方发布的一阶段预训练模型中,会看到KL和VQ两种实现。在Stable Diffusion中主要采用 AutoEncoderKL这种实现。
具体来说,给定图像 x ∈ R H × W × 3 x \in \mathbb{R}^{H \times W \times 3} x∈RH×W×3 ,我们可以先利用一个编码器 E \mathcal{E} E 来将图像编码到潜在表示空间 z = E ( x ) z=\mathcal{E}(x) z=E(x) ,其中 z ∈ R h × w × c z \in \mathbb{R}^{h \times w \times c} z∈Rh×w×c ,然后再用解码器从潜在表示空间重建图片 x ~ = D ( z ) = D ( E ( x ) ) \tilde{x}=\mathcal{D}(z)=\mathcal{D}(\mathcal{E}(x)) x~=D(z)=D(E(x)) 。在感知压缩压缩的过程中,下采样因子的大小为 f = H / h = W / w f=H / h=W / w f=H/h=W/w ,它是2的次方,即 f = 2 m f=2^{m} f=2m。
首先简要介绍一下普通的扩散模型(DM),扩散模型可以解释为一个时序去噪自编码器(equally weighted sequence of denoising autoencoders)
ϵ
θ
(
x
t
,
t
)
;
t
=
1
…
T
\epsilon_{\theta}\left(x_{t}, t\right) ; t=1 \ldots T
ϵθ(xt,t);t=1…T ,其目标是根据输入
x
t
x_{t}
xt 去预测一个对应去噪后的变体,或者说预测噪音,其中
x
t
x_{t}
xt 是输入
x
x
x 的噪音版本。相应的目标函数可以写成如下形式:
L
D
M
=
E
x
,
ϵ
∼
N
(
0
,
1
)
,
t
[
∥
ϵ
−
ϵ
θ
(
x
t
,
t
)
∥
2
2
]
L_{D M}=\mathbb{E}_{x, \epsilon \sim \mathcal{N}(0,1), t}\left[\left\|\epsilon-\epsilon_{\theta}\left(x_{t}, t\right)\right\|_{2}^{2}\right]
LDM=Ex,ϵ∼N(0,1),t[∥ϵ−ϵθ(xt,t)∥22]
其中
t
t
t 从
{
1
,
…
,
T
}
\{1, \ldots, T\}
{1,…,T} 中均匀采样获得。
而在潜在扩散模型(LDM)中,引入了预训练的感知压缩模型,它包括一个编码器
E
\mathcal{E}
E 和一个解码器
D
\mathcal{D}
D 。这样就可以利用在训练时就可以利用编码器得到
z
t
z_{t}
zt,从而让模型在潜在表示空间中学习,相应的目标函数可以写成如下形式:
L
L
D
M
=
E
E
(
x
)
,
ϵ
∼
N
(
0
,
1
)
,
t
[
∥
ϵ
−
ϵ
θ
(
z
t
,
t
)
∥
2
2
]
L_{L D M}=\mathbb{E}_{\mathcal{E}(x), \epsilon \sim \mathcal{N}(0,1), t}\left[\left\|\epsilon-\epsilon_{\theta}\left(z_{t}, t\right)\right\|_{2}^{2}\right]
LLDM=EE(x),ϵ∼N(0,1),t[∥ϵ−ϵθ(zt,t)∥22]
除了无条件图片生成外,我们也可以进行条件图片生成,这主要是通过拓展得到一个条件时序去噪自编码器(conditional denoising autoencoder)
ϵ
θ
(
z
t
,
t
,
y
)
\epsilon_{\theta}\left(z_{t}, t, y\right)
ϵθ(zt,t,y) 来实现的,这样一来我们就可通过
y
y
y 来控制图片合成的过程。具体来说,论文通过在UNet主干网络上增加cross-attention机制来实现
ϵ
θ
(
z
t
,
t
,
y
)
\epsilon_{\theta}\left(z_{t}, t, y\right)
ϵθ(zt,t,y) 。为了能够从多个不同的模态预处理
y
y
y ,论文引入了一个领域专用编码器(domain specific encoder)
τ
θ
\tau_{\theta}
τθ ,它用来将
y
y
y 映射为一个中间表示
τ
θ
(
y
)
∈
R
M
×
d
τ
\tau_{\theta}(y) \in \mathbb{R}^{M \times d_{\tau}}
τθ(y)∈RM×dτ ,这样我们就可以很方便的引入各种形态的条件(文本、类别、layout等等)。最终模型就可以通过一个cross-attention层映射将控制信息融入到UNet的中间层,cross-attention层的实现如下:
Attention
(
Q
,
K
,
V
)
=
softmax
(
Q
K
T
d
)
⋅
V
,
with
Q
=
W
Q
(
i
)
⋅
φ
i
(
z
t
)
,
K
=
W
K
(
i
)
⋅
τ
θ
(
y
)
,
V
=
W
V
(
i
)
⋅
τ
θ
(
y
)
通过将图像形成过程分解为去噪自编码器的顺序应用,扩散模型(DMs)在图像数据和其他数据上实现了最先进的合成结果。此外,它们的配方允许一个指导机制来控制图像生成过程,而无需再训练。然而,由于这些模型通常直接在像素空间中操作,因此优化功能强大的dm通常会消耗数百个GPU天,并且由于顺序评估而导致推理成本高昂。为了使DM训练在有限的计算资源上同时保持其质量和灵活性,我们将它们应用于强大的预训练自编码器的潜在空间。与之前的工作相比,在这种表示上训练扩散模型可以首次在复杂性降低和细节保存之间达到近乎最佳的点,极大地提高了视觉保真度。通过在模型架构中引入交叉注意层,我们将扩散模型转变为强大而灵活的生成器,用于一般条件输入(如文本或边界框),并以卷积方式实现高分辨率合成。我们的潜在扩散模型(ldm)在图像绘制和类别条件图像合成方面取得了最新的技术水平,并在各种任务上表现出极具竞争力的性能,包括无条件图像生成、文本到图像合成和超分辨率,同时与基于像素的DMs相比,显著降低了计算需求。
再来看一个最近的Diff方面的工作,这项工作有点类似今年的CVPR2023 Best paper,做到了文图生产领域的多任务统一学习。
以下是文字的解读:
Versatile Diffusion: Text, Images and Variations All in One Diffusion Model
通用扩散:文本,图像和变化都在一个扩散模型
图1: 我们的通用扩散(VD)框架在所有主要任务中的三个(即图a、b和c)和三个派生任务(即图d、e和f)上的演示结果。如标题所示,三个主要任务是文本到图像、图像变化和图像到文本。图d展示了图像语义和风格之间的分离。图e显示了使用一幅图像和一段文字的双上下文混合器的演示。图f显示了使用多个图像和一个文本的多上下文搅拌器的演示。(Blender 搅拌机)
扩散模型的最新进展在许多生成任务中都取得了令人印象深刻的里程碑,而DALL-E2、Imagen和Stable diffusion等趋势作品引起了人们的极大兴趣。尽管形势变化很快,但最近的新方法关注的是扩展和性能,而不是容量,因此需要为单独的任务使用单独的模型。在这项工作中,我们将现有的单流扩散管道扩展为一个多任务多模态网络,称为通用扩散(VD),该网络在一个统一的模型中处理文本到图像、图像到文本和变体的多个流。VD的管道设计实例化了一个统一的多流扩散框架,由可共享和可交换的层模块组成,实现了超越图像和文本的跨模态通用性。
通过大量的实验,我们证明了VD成功地实现了以下目标:a) VD优于基线方法,并以具有竞争力的质量处理所有基本任务; b) VD支持新的扩展,如风格和语义的分离,双重和多上下文混合等; c)我们在图像和文本上的多流多模态框架的成功可能会激发进一步基于扩散的通用人工智能研究。我们的代码和模型是在https://github.com/SHILabs/Versatile-Diffusion上开源的。
多模态:多模态是不同形式的信息的结合,包括但不限于视觉、文本、音频等[89,4]。Ngiam等人[61]领导的早期深度学习工作学习了音频和视频的融合表示。类似的思路也被用于跨视觉和文本标签[61],以及跨视觉和语言[46]。多模态方法的一部分专注于零学习,例如,DiViSE[21]将目标映射到语义空间上的图像,从语义空间中可以预测未见的类别标签。Socher等人[82]训练了一个具有类似思想的识别模型,将图像投影到文本语料库空间上。[51]与DiViSE具有相同的设计,但针对大型嘈杂数据集进行了升级。另一组研究[65,41,3,42]侧重于通过多模态训练来提高分类精度:其中[65]和[41]对多模态嵌入进行了简单的拼接;[3]提出了一种门控单元来控制网络中的多模态信息流;[42]用多种融合方法对FastText进行了调查[36]。同时,在一次性检测和分割中也广泛采用了多模态训练[24,28,35]。另一个课题VQA[2,22]进行了跨模态推理,将视觉概念转化为语言答案。[107,58]等方法将视觉概念提取为神经符号,[108,101]学习额外的概念结构和层次。
多模态生成任务:多模态生成任务涉及同步表征学习和生成/合成[91],其中具有对比损失的表征网络[99,45,25,96,64,95][66,15,1,93,94]发挥了重要作用。具体来说,我们的模型VD采用VAEs[45]和CLIP[66]作为网络的两个关键模块——潜在编码器和上下文编码器。VD还具有常见的跨模态概念,如领域转移[34,112]和联合表示学习[88,102,92]。
扩散模型:扩散模型(DM)[83,31]整合了大量的方法,包括VAEs[45,96,71]、马尔可夫链[6,83,78,85]和分数匹配模型[86,87]等。与基于gan的模型[25,8,39]和基于流的模型[72,44]不同,DM在逆向扩散过程中最小化了下界似然[31,86],而不是在流动过程中精确地逆求[72]或进行对抗性训练[25]。在最近的研究中,DDPM[31]提出了-预测,通过退火朗格万动态采样建立了扩散和分数匹配模型之间的联系[98,86]。DDPM在无条件生成任务中也显示出与gan相当的有希望的结果。另一项研究,DDIM[84],提出了一种隐式生成模型,从潜在变量中产生确定性样本。与DDPM相比,DDIM在不损失采样质量的前提下降低了采样成本。在效率方面,FastDPM[47]研究了连续扩散步骤,并以更快的采样时间表推广了DDPM和DDIM。另一项研究[79]用可学习的噪声估计取代了原始的固定采样方案,从而提高了速度和质量。[32]引入了一种递进增加维度的层次结构,加速了DM的图像生成。关于质量,[17]通过详尽的实验将gan与DM进行了比较,并得出结论,DM在许多图像生成任务上优于gan。另一项研究VDM[43]引入了一系列DM模型,这些模型在密度估计基准上达到了最先进的性能。Diffwave[48]和WaveGrad[14]表明DM在音频上也能很好地工作。[63]采用可学习噪声调度和混合目标改进了DDPM,实现了更好的采样质量。[57]引入了语义扩散引导,允许使用DDPM进行图像或语言条件合成。[83,31]整合了大量的方法,包括VAEs[45,96,71]、马尔可夫链[6,83,78,85]和分数匹配模型[86,87]等。与基于gan的模型[25,8,39]和基于流的模型[72,44]不同,DM在逆向扩散过程中最小化了下界似然[31,86],而不是在流动过程中精确地逆求[72]或进行对抗性训练[25]。在最近的研究中,DDPM[31]提出了-预测,通过退火朗格万动态采样建立了扩散和分数匹配模型之间的联系[98,86]。DDPM在无条件生成任务中也显示出与gan相当的有希望的结果。另一项研究,DDIM[84],提出了一种隐式生成模型,从潜在变量中产生确定性样本。与DDPM相比,DDIM在不损失采样质量的前提下降低了采样成本。在效率方面,FastDPM[47]研究了连续扩散步骤,并以更快的采样时间表推广了DDPM和DDIM。另一项研究[79]用可学习的噪声估计取代了原始的固定采样方案,从而提高了速度和质量。[32]引入了一种递进增加维度的层次结构,加速了DM的图像生成。关于质量,[17]通过详尽的实验将gan与DM进行了比较,并得出结论,DM在许多图像生成任务上优于gan。另一项研究VDM[43]引入了一系列DM模型,这些模型在密度估计基准上达到了最先进的性能。Diffwave[48]和WaveGrad[14]表明DM在音频上也能很好地工作。[63]采用可学习噪声调度和混合目标改进了DDPM,实现了更好的采样质量。[57]引入了语义扩散引导,允许使用DDPM进行图像或语言条件合成。
文本到图像的生成:文本到图像的生成是目前多模态和扩散研究的共同成果,受到了广泛的关注。在最近的研究中,GLIDE[62]采用了预训练的语言模型和级联扩散结构进行文本到图像的生成。DALL-E2[69]是DALL-E[70]的升级版本,它利用CLIP模型[66]生成文本嵌入,并采用类似的层次结构,先生成256张文本引导图像,再扩展到1024张。同样,Imagen[76]使用条件扩散模型探索了多个文本编码器[16,68,66],并通过各种权重采样器探索了内容对齐和保真度之间的权衡。LDM[73]引入了一个新的方向,即模型在VAE潜空间而不是像素空间上扩散。这种设计减少了推理时间所需的资源,并且它的后一个版本SD已被证明在文本到图像的生成中同样有效。
多模态是实现通用AI的“皇冠上的宝石”。利用深度学习的属性,为传统任务(如分类、检测、分割等)设计的方法已经达到了接近人类水平的精度。在此基础上,多模态研究如[21,41,3,35]主要关注联合识别、匹配或理解多模态数据的判别任务。然而,对多模态生成模型的研究仍然很少。以前,性能最好的生成视觉模型,生成对抗网络(GAN)[38,8,39]仅仅关注特定的领域(即;人脸[39、11、100]、字体[105、49]、自然场景[81、55]等);以及具体的任务(喷漆[90,110,104],超分辨率[52],图像到图像的翻译[34,112]等)。
最近扩散模型的成功[31,84,69,76,73]带来了新的视野。扩散模型是基于似然的模型,它逐渐从高斯破坏中恢复图像内容。它已被证明在连接模式和任务方面是有效的,例如无条件生成[31,84,17]、密度估计[43]、超分辨率[77]和文本到图像的生成[62,69,76,73]。扩散模型的成功可以归因于几个方面。首先,它们的训练目标导致了比gan等其他方法更健壮的训练过程。迭代精化推理过程也以增加运行时间为代价扩展了模型能力。此外,最近的扩散模型如DALL-E2[69]、Imagen[76]和Stable diffusion[73]的竞争性能得益于出色的数据收集,如LAION[80]、CC12M[12]、COYO[10]等。早期扩散模型的缺点,如数据饥饿和高推理成本,逐渐被更高效的结构和调度器所缓解[84,47,79,32,73]。基于扩散的文本到图像方法[69,76,73]可以说是多模态生成人工智能的新技术。然而,到目前为止,这些工作几乎完全取决于单流扩散管道(见第3节);与此同时,尽管它们是跨模态的,但它们中的大多数都是在单个专门的生成任务(例如,文本到图像)上进行训练和评估的。
那么下一步该怎么做呢?我们相信多模态、多任务模型在通用人工智能中的核心作用,我们认为扩散模型是实现这一目标的一个有前途的主力。为了实现我们的目标,我们提出了多功能扩散(VD),在一个统一的生成模型中全面解决文本,图像和变化。关键的底层技术是一种新的多流扩散框架,它将现有的单流扩散管道推广到同时处理多种模式和任务,同时有效地在它们之间共享信息。由于更大的容量以及捕获跨模态语义,VD不仅在上述支持的任务上表现良好,而且显著地派生了许多新功能,包括语义风格解纠缠、跨模态双上下文或多上下文生成(混合),导致多模态生成人工智能的经验性能取得了显着进步。我们的主要贡献总结如下:
我们介绍了多功能扩散(VD),这是一个多模态、多任务的扩散网络,它采用了一种新的广义多流管道,不同于现有的单流扩散模型。
VD在一个统一的模型中解决多种模式和任务,包括图像生成(文本到图像、图像变化)和文本生成(图像到文本、文本变化)。通过综合实验,我们表明VD在分数和质量上都优于基线。例如,VD的高质量文本到图像和图像变化结果表明,它确实更好地捕获了上下文语义。
VD独特的多流多模态特性使更多新颖的衍生任务成为可能,这可能进一步促进下游用户参与该技术,包括语义风格的解纠缠、双上下文和多上下文混合等。
在本节中,我们将首先回顾扩散模型的基本原理[83,31],包括向前-向后过程和训练目标。然后,我们将重点介绍多功能扩散(VD)的多流多模态框架,这是使VD成为多任务统一模型的关键贡献。最后,我们将揭示VD的所有细节,包括VAEs的选择,上下文编码器,损失函数等。
(1) Diffusion basics
前向扩散过程p(xT jx0)是一条马尔可夫链[31],有T阶跃,在随机高斯噪声下逐渐将x0退化为xT(式1)。
q
(
x
T
∣
x
0
)
=
∏
t
=
1
T
q
(
x
t
∣
x
t
−
1
)
=
∏
t
=
1
T
N
(
1
−
β
t
x
t
−
1
;
β
t
I
)
=
N
(
α
ˉ
t
x
0
;
(
1
−
α
ˉ
t
I
)
)
;
α
ˉ
t
=
∏
t
=
1
T
α
t
;
α
t
=
1
−
β
t
给定前面的正向扩散过程,扩散模型被训练来逆转这个过程,并通过去除附加的高斯噪声从xT恢复信号x0。这被称为反向扩散过程,每一步pθ(xt−1jxt)从高斯分布中采样,网络预测平均值µθ(xt;T)和方差Σθ(xt;t),如式2所示。
p
θ
(
x
t
−
1
∣
x
t
)
=
N
(
μ
θ
(
x
t
,
t
)
,
Σ
θ
(
x
t
,
t
)
)
p_{\theta}\left(x_{t-1} \mid x_{t}\right)=\mathcal{N}\left(\mu_{\theta}\left(x_{t}, t\right), \Sigma_{\theta}\left(x_{t}, t\right)\right)
pθ(xt−1∣xt)=N(μθ(xt,t),Σθ(xt,t))
训练扩散模型的目标函数是最小化负对数似然的变分界[31],如式3所示。在实践中,许多工作假设方程1中步骤t的αt和βt是确定性的。考虑到前向和后向过程都是高斯过程,目标可以被简化为真实值和预测平均值之间的变分加权l2损失。
L
=
E
[
−
log
p
θ
(
x
0
)
]
≤
E
[
−
log
p
θ
(
x
0
:
T
)
q
(
x
1
:
T
∣
x
0
)
]
L=\mathbb{E}\left[-\log p_{\theta}\left(x_{0}\right)\right] \leq \mathbb{E}\left[-\log \frac{p_{\theta}\left(x_{0: T}\right)}{q\left(x_{1: T} \mid x_{0}\right)}\right]
L=E[−logpθ(x0)]≤E[−logq(x1:T∣x0)pθ(x0:T)]
(2) Multi-flow multimodal diffusion framework
通用扩散(VD)的核心部分是多流多模态扩散框架,能够根据各种跨模态上下文(例如图像、文本、音频等)产生各种形式的输出(例如图像、文本、3D等)。VD中单个流的正式定义是使用情态m的上下文合成情态n的特征。人们可能会注意到,经过充分探索的文本到图像任务[23,69,76,73],即基于文本提示合成图像,与VD中单个流的定义相匹配。但是VD的范围超出了单一的任务;特别是在这项工作中,VD被设置为完成许多任务:文本到图像、图像到文本和变体,并可能进一步扩展到涵盖更多的模式,如3D、音频、音乐等。
人们可能会注意到,这种多流多模态框架高度促进了参数共享。在这项工作中,我们的默认VD设置是一个四流模型。为了复制这样的四流VD,需要总共四个扩散模型(即SD大小的四倍[73]),而VD通过其框架中的共享层将参数数量减少了一半。VD的一个更广义的版本处理N × M个具有N种输出类型和M种上下文类型的跨模态任务。模型的大小将变成O (max(N);M)),这明显小于需要累积大小为**O(N × M)**的香草模型(vanilla model: 最简单、最原始的模型,没有经过任何升级或修改)集成。
(3) Versatile Diffusion
任务: 如前所述,通用扩散(VD)是文本到图像、图像到文本和变体的统一扩散模型。文本到图像和图像到文本是两个众所周知的任务,前者从文本提示生成图像,后者生成图像字幕。图像变化(IV)是一项相当新的任务,用户生成语义上与参考图像相似的新图像。IV与SD的图像到图像(I2I)[73]有两点不同:a) IV是从纯噪声中扩散,而I2I是从半混合噪声的图像中扩散;b) IV保持了高级语义,但放松了低级结构,而I2I只复制了低级结构,对高级语义没有保证。最后,由于VD的多流特性,它还可以在文本中生成变体,其目的是从参考文本中生成相似的表达式。
网络: VD的完整模型包括三个组成部分:a)遵循第3.2节中描述的多流多模态框架的扩散器;b)将数据样本转换为潜在表示的vae;c)将上下文编码为嵌入的上下文编码器。整个网络图如图3所示。扩散器: 我们使用广为采用的UNet[74]和交叉关注[97]作为我们扩散器网络的主要结构。部分UNet遵循SD[73],其中我们采用残差块[29]作为图像数据层,交叉关注作为文本和图像上下文层。对于文本数据层,我们提出了完全连接的残差块(FCResBlock),它将768维文本潜在向量扩展为320 × 4的隐藏特征,并遵循与groupnorm [103], SiLU[20]和跳过连接类似的残差块范式(见图4)。VAE: 我们采用与SD相同的Autoencoder-KL[73]作为图像VAE。同样,我们采用Optimus[53]作为文本VAE。Optimus由一个Bert[16]文本编码器和一个GPT2[67]文本解码器组成,可以将句子双向转换为768维正态分布的潜在向量。上下文编码器: 我们使用CLIP[66]文本和图像编码器作为VD的上下文编码器。与使用原始文本嵌入作为上下文输入的SD不同,我们使用归一化和投影嵌入来最小化CLIP文本图像对比损失。在我们的实验中,我们注意到上下文(即图像和文本)之间的嵌入空间越近,收敛速度越快,性能越好。
图3: 四流通用扩散(VD)的整体结构。每条颜色线描述一个VD流,表示一个支持的任务(例如,绿色线表示文本到图像)。最左边的VAE编码器仅用于训练,在推理过程中被高斯噪声输入所取代。相反,最右边的VAE解码器仅用于输出生成的推理,而不是训练时间损失计算。为简单起见,我们在图中隐藏了全局层。彩色观看效果更好。
损失: 训练VD非常简单。对于每个流,我们计算公式3中描述的变分加权l2损失,并进行规则的反向传播(见算法1)。当所有流的梯度累积时,模型权重将更新。此外,在更新权重时,我们手动设置数据层和上下文层参数的梯度尺度,以更好地适应我们的多流模型设置。更多的信息可以在实验部分找到。
图4: FCResBlock包含两组完全连接层(FC)、群归一化(GN)[103]和sigmoid线性单元(SiLU)[20]。X为输入文本潜码,t为输入时间嵌入,hi为中间特征。
图5: 这些图显示了我们的VD模型和先前工作之间的定性比较,从中我们得出VD在所有三个任务上都表现良好的结论。在文本到图像和图像变化中,VD从输入上下文更准确地捕获语义。在图像到文本的转换中,VD生成的句子更具创造性,并且有更好的机会用更多的细节来描述图像。
图8: 我们的VD可以从样式中分离图像语义,反之亦然。在这个图中,我们首先生成输入图像的变体,然后针对语义(左边)或样式(右边)对它们进行操作。
图9: 此图显示了由双上下文搅拌器生成的图像(一个图像和一个提示)。无边界图像是将SDv1.4[73]与SDvariation[37]集成生成的基线结果。带有绿色边框的图像是VD的输出(我们的),具有更深层次的混合。为了公平地比较性能,同一列中的样本使用相同的随机种子和初始噪声输入。
图10: 此图显示了使用VD的多上下文混合器创建的图像,其中多个带有可选文本和蒙版的图像被应用为上下文。可以注意到,VD可以平滑地将语义从上下文转移和重建到输出。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。