从论文中看AI绘画

个人博客:Sekyoro的博客小屋
个人网站:Proanimer的个人网站
主要看是看Diffusion Models,CLIP,ControlNet,IP-Adapter这种经典论文,尝试总结论文写作的一些方式以及图像生成模型的一些内在思想. 对于其中的数学原理和代码不过深究.

DDPM

使用扩散模型得到高质量图像,证明了这种方法在训练时与多种噪声等级下的去噪分数等同,在采样时与退火朗文动力学等价.

image-20240503150540112

有forward precess和reversed process,

image-20240503152315412

对于正向过程,就是对图像的一个加噪过程, 逆向过程需要通过神经网络拟合,论文中没有考虑方差.

image-20240503164248521

image-20240503164900128

使用了重参数化,类似VAE中的思想.在加噪声时,通过使用高斯噪声和均值、方差.

image-20240503174343480

这样只要知道x_0以及超参数α和β就能得到后面加噪的数据.计算概率密度函数

image-20240503180338927

对于优化目标,需要让p和q的分布尽量接近,相当于让均值和方差类似.
∑ t = 2 T E q ( x t ∣ x 0 ) [ D K L ( q ( x t − 1 ∣ x t , x 0 ) ∣ ∣ p θ ( x t − 1 ∣ x t ) ] \sum_{t=2}^TE_{q(x_t|x_0)}[D_{KL}(q(x_{t-1}|x_t,x_0)||p_\theta(x_{t-1}|x_t)] t=2TEq(xtx0)[DKL(q(xt1xt,x0)∣∣pθ(xt1xt)]
而方差是定值,对于均值
μ q = α ˉ t − 1 β t x 0 + α t ( 1 − α ˉ t − 1 ) x t 1 − α ˉ t = α ˉ t − 1 β t x t − 1 − α ˉ t ϵ α ˉ t + α t ( 1 − α ˉ t − 1 ) x t 1 − α ˉ t = 1 α t ( x t − 1 − α t 1 − α ˉ t ϵ ) \begin{aligned} \mu_{q}& =\frac{\sqrt{\bar{\alpha}_{t-1}}\beta_{t}x_{0}+\sqrt{\alpha_{t}}(1-\bar{\alpha}_{t-1})x_{t}}{1-\bar{\alpha}_{t}} \\ &=\frac{\sqrt{\bar{\alpha}_{t-1}}\beta_{t}\frac{x_{t}-\sqrt{1-\bar{\alpha}_{t}}\epsilon}{\sqrt{\bar{\alpha}_{t}}}+\sqrt{\alpha_{t}}(1-\bar{\alpha}_{t-1})x_{t}}{1-\bar{\alpha}_{t}} \\ &=\frac{1}{\sqrt{\alpha_{t}}}(x_{t}-\frac{1-\alpha_{t}}{\sqrt{1-\bar{\alpha}_{t}}}\epsilon) \end{aligned} μq=1αˉtαˉt1 βtx0+αt (1αˉt1)xt=1αˉtαˉt1 βtαˉt xt1αˉt ϵ+αt (1αˉt1)xt=αt 1(xt1αˉt 1αtϵ)

模型使用了Unet和attention,残差连接预测噪声.得到噪声后可以得到 p θ ( x t − 1 ∣ x t ) p_\theta(x_{t-1}|x_t) pθ(xt1xt)
x t − 1 = 1 α t ( x t − 1 − α t 1 − α ˉ t ϵ θ ) + σ q z x_{t-1}=\frac{1}{\sqrt{\alpha_{t}}}(x_{t}-\frac{1-\alpha_{t}}{\sqrt{1-\bar{\alpha}_{t}}}\epsilon_{\theta})+\sigma_{q}z xt1=αt 1(xt1αˉt 1αtϵθ)+σqz

论文http://arxiv.org/abs/2006.11239 深入浅出扩散模型(Diffusion Model)系列:基石DDPM(人人都能看懂的数学原理篇) - 知乎 (zhihu.com)

Improved DDPM

对DDPM做了改进.

  • 学习方差会让生成效果更好(DDPM 中只学习了均值,方差是一个常数)
  • 提出了余弦加噪方法,比线性加噪效果更好

image-20240503192352123

DDIM 2020

为了加快采样速度,提出了去噪扩散隐含模型(DDIMs),这是一类更有效的迭代隐含概率模型,其训练过程与 DDPMs 相同。在 DDPMs 中,生成过程被定义为特定马尔可夫扩散过程的反向。

我们通过一类能实现相同训练目标的非马尔可夫扩散过程来推广 DDPM。这些非马尔可夫过程可以对应于确定性的生成过程,从而产生能更快地生成高质量样本的隐式模型。

image-20240503193245982

关于 DDIM 采样算法的推导 | Ze’s Blog (zeqiang-lai.github.io)

上面三个数学公式涉及比较多,比较偏学术,我的目的是想介绍一个脉络和抽象的概念和作用,使得使用一些开源AI绘画这类应用时更加得心应手,下面更多涉及到一些AI绘画功能层面上的东西.

img

Latent Diffusion Models 2022

Stable Diffusion产品的背后模型

将图像形成过程分解为一系列去噪自编码器的顺序应用,扩散模型(DMs)在图像数据及更广泛范围内实现了最先进的合成结果。此外,它们的表达允许一种引导机制来控制图像生成过程而无需重新训练。然而,由于这些模型通常直接在像素空间中操作,优化强大的DMs通常需要消耗数百个GPU天,论文提出的方法将它们在latent space中进行并使用预训练的autoencoder.并使用了cross-attention结构,现在看来也是非常经典了.

image-20240503210656442
A t t e n t i o n ( Q , K , V ) = s o f t m a x ( Q K T d ) ⋅ V Q = W Q ( i ) ⋅ φ i ( z t ) , K = W K ( i ) ⋅ τ θ ( y ) , V = W V ( i ) ⋅ τ θ ( y ) \mathrm{Attention}(Q,K,V)=\mathrm{softmax}\left(\frac{QK^{T}}{\sqrt{d}}\right)\cdot V\\ Q=W_Q^{(i)}\cdot\varphi_i(z_t),K=W_K^{(i)}\cdot\tau_\theta(y),V=W_V^{(i)}\cdot\tau_\theta(y) Attention(Q,K,V)=softmax(d QKT)VQ=WQ(i)φi(zt),K=WK(i)τθ(y),V=WV(i)τθ(y)

$$
L_{DM}=\mathbb{E}{x,\epsilon\sim\mathcal{N}(0,1),t}\Big[|\epsilon-\epsilon\theta(x_t,t)|_2^2\Big] \

L_{LDM}:=\mathbb{E}{\mathcal{E}(x),y,\epsilon\sim\mathcal{N}(0,1),t}\Big[|\epsilon-\epsilon\theta(z_t,t,\tau_\theta(y))|_2^2\Big]
$$

CLIP 2021

OpenAI用于DALLE的文字与图像匹配 利用不同的encoders将文字和图像联系了起来

计算机视觉系统经过训练可以预测一组固定的预定对象类别。这种受限的监督形式限制了其通用性和可用性,因为要指定任何其他视觉概念,都需要额外的标记数据。

image-20240503203723416

主要是解决利用文本信息监督图像,并实现zero-shot transfer.

image-20240503204548844

ControlNet 2023

开创性的有价值的工作,使用pose,edge maps,segmentation map作为监督信息控制图像布局. 技术上利用微调技术并利用额外的pose等信息引导图像生成.

Adding Conditional Control to Text-to-Image Diffusion Models

随着文字到图像扩散模型的出现,我们现在只需输入文字提示,就能创作出视觉效果极佳的图像。

然而,文本到图像模型对图像空间构成的控制能力有限;仅靠文本提示很难精确表达复杂的布局、姿势、形状和形态。要生成与我们的心理想象精确匹配的图像,往往需要反复编辑提示、检查生成的图像,然后重新编辑提示。

ControlNet利用了微调技术,冻结原始块,然后使用原本的权重处理额外信息c,c通过零卷积再加回去得到 y c y^{c} yc

image-20240503224707489

为了给这样一个预训练的神经块添加一个controlnet网络,锁定(冻结)原始块的参数Θ,同时将该块克隆到一个参数为Θc的可训练拷贝

image-20240503225434997

可训练副本以外部条件向量c作为输入。当这种结构应用于诸如稳定扩散( Stable Diffusion )这样的大型模型时,锁定的参数保留了用数十亿张图像训练的生产就绪模型,而可训练的副本则重用了这种大规模预训练的模型,以建立处理各种输入条件的深度、鲁棒和强大的骨干。
y c = F ( x ; Θ ) + Z ( F ( x + Z ( c ; Θ z 1 ) ; Θ c ) ; Θ z 2 ) y_{\mathfrak{c}}=\mathcal{F}(x;\Theta)+\mathcal{Z}(\mathcal{F}(x+\mathcal{Z}(c;\Theta_{\mathfrak{z}1});\Theta_{\mathfrak{c}});\Theta_{\mathfrak{z}2}) yc=F(x;Θ)+Z(F(x+Z(c;Θz1);Θc);Θz2)
训练目标
L = E z 0 , t , c t , c f , ϵ ∼ N ( 0 , 1 ) [ ∥ ϵ − ϵ θ ( z t , t , c t , c f ) ) ∥ 2 2 ] \mathcal{L}=\mathbb{E}_{\boldsymbol{z}_0,\boldsymbol{t},\boldsymbol{c}_t,\boldsymbol{c}_\mathrm{f},\epsilon\sim\mathcal{N}(0,1)}\left[\|\epsilon-\epsilon_\theta(\boldsymbol{z}_t,t,\boldsymbol{c}_t,\boldsymbol{c}_\mathrm{f}))\|_2^2\right] L=Ez0,t,ct,cf,ϵN(0,1)[ϵϵθ(zt,t,ct,cf))22]
在训练过程中,我们用空字符串随机替换50 %的文本提示ct。这种方法增加了controlnet网络在输入条件图像(例如,边缘,姿态,深度等。)中直接识别语义的能力,作为提示的替代。在训练过程中,由于零卷积不会给网络添加噪声,所以模型应该始终能够预测高质量的图像。我们观察到,模型并没有逐步学习控制条件,而是突然成功地跟随输入条件图像;通常在小于10K的优化步数。

在inference部分介绍了CFG以及组合多个controlnet.
ϵ p r d = ϵ u c + β c f g ( ϵ c − ϵ u c ) \epsilon_{\mathrm{prd}}=\epsilon_{\mathrm{uc}}+\beta_{\mathrm{cfg}}(\epsilon_{\mathrm{c}}-\epsilon_{\mathrm{uc}}) ϵprd=ϵuc+βcfg(ϵcϵuc)

T2I-Adapter 2023

T2I-Adapter: Learning Adapters to Dig out More Controllable Ability for Text-to-Image Diffusion Models

大规模文本到图像( T2I )模型令人难以置信的生成能力已经显示出强大的学习复杂结构和有意义语义的能力.

Motivation:然而,仅仅依靠文本提示并不能充分地利用模型学习到的知识,尤其是需要灵活准确地控制(例如,颜色和结构)时.

具体来说,提出学习简单轻量级的T2I - Adapters来将T2I模型中的内部知识与外部控制信号对齐,同时冻结原始的大型T2I模型

在本文中探讨是否有可能通过某种方式"挖掘出" T2I模型隐含学习到的能力,特别是高层结构和语义能力,然后明确地使用它们来更精确地控制生成。作者认为一个小型的适配器模型可以达到这个目的,因为它不是学习新的生成能力,而是学习T2I模型中从控制信息到内部知识的映射。也就是说,这里的主要问题是"对齐"问题,即内部知识和外部控制信号应该对齐。

image-20240504225616342
{ Q = W Q ϕ ( Z t ) ; K = W K τ ( y ) ; V = W V τ ( y ) A t t e n t i o n ( Q , K , V ) = s o f t m a x ( Q K T d ) ⋅ V \left.\left\{\begin{array}{l}\mathbf{Q}=\mathbf{W}_Q\phi(\mathbf{Z}_t);\mathbf{K}=\mathbf{W}_K\tau(\mathbf{y});\mathbf{V}=\mathbf{W}_V\tau(\mathbf{y})\\Attention(\mathbf{Q},\mathbf{K},\mathbf{V})=softmax(\frac{\mathbf{Q}\mathbf{K}^T}{\sqrt d})\cdot\mathbf{V}\end{array}\right.\right. {Q=WQϕ(Zt);K=WKτ(y);V=WVτ(y)Attention(Q,K,V)=softmax(d QKT)V

L = E Z t , C , ϵ , t ( ∣ ∣ ϵ − ϵ θ ( Z t , C ) ∣ ∣ 2 2 ) \mathcal{L}=\mathbb{E}_{\mathbf{Z}_t,\mathbf{C},\epsilon,t}(||\epsilon-\epsilon_\theta(\mathbf{Z}_t,\mathbf{C})||_2^2) L=EZt,C,ϵ,t(∣∣ϵϵθ(Zt,C)22)

C表示条件信息,θ表示UNet去噪器的函数。

在推理过程中,输入的隐映射 Z T Z^{T} ZT由随机高斯分布生成。给定 Z T Z^{T} ZT ϵ θ \epsilon_{\theta} ϵθ在每一步t预测一个噪声估计,条件为C。噪声特征图通过减去它变得越来越清晰.

image-20240504224247416

在每个尺度下,利用一个卷积层和两个残差块( RB )来提取条件特征Fck.最终形成多尺度条件特征Fc = { F c 1 ^{1}_{c} c1,F c 2 ^{2}_{c} c2,F c 3 ^{3}_{c} c3,F c 4 ^{4}_{c} c4 }。注意到Fc的维度与UNet去噪器编码器中的中间特征 F e n c F_{enc} Fenc= { F e n c 1 ^{1}_{enc} enc1,F e n c 2 ^{2}_{enc} enc2,F e n c 3 ^{3}_{enc} enc3,F e n c 4 ^{4}_{enc} enc4 }相同,然后在每个尺度下,F c _{c} c F e n c F_{enc} Fenc相加。
F c = F A D ( C ) F ^ e n c i = F e n c i + F c i , i ∈ { 1 , 2 , 3 , 4 } \begin{aligned}&\mathbf{F}_{c}=\mathcal{F}_{AD}(\mathbf{C})\\&\hat{\mathbf{F}}_{enc}^{i}=\mathbf{F}_{enc}^{i}+\mathbf{F}_{c}^{i},i\in\{1,2,3,4\}\end{aligned} Fc=FAD(C)F^enci=Fenci+Fci,i{1,2,3,4}
C为条件输入。F A D _{AD} AD是T2I的适配器

除了使用单个适配器作为条件外,提出的T2I适配器还支持多种条件。注意这个策略不需要额外的训练。
F c = ∑ k = 1 K ω k F A D k ( C k ) \mathbf{F}_c=\sum_{k=1}^K\omega_k\mathcal{F}_{AD}^k(\mathbf{C}_k) Fc=k=1KωkFADk(Ck)

IP-Adapter 2023

IP-Adapter:Text Compatible Image Prompt Adapter for Text-to-Image Diffusion Models

背景目的与结论:近年来,大型文本到图像扩散模型因其出色的生成能力创造出高保真度的图像而表现出强大的能力。然而,仅使用文本提示生成想要的图像是非常困难的,因为它往往涉及复杂的提示工程。文字提示的一种替代方式是图像提示,俗话说:“一张图像值一千个字”。虽然现有的从预训练模型直接微调的方法是有效的,但它们需要较大的计算资源,并且与其他基础模型、文本提示和结构控制不兼容

在本文中提出了IP - Adapter,一种有效的、轻量级的适配器,以实现预训练的文本到图像扩散模型的图像提示能力。我们的IP - Adapter的关键设计是解耦的交叉注意力机制,将文本特征和图像特征的交叉注意力层分离

得益于解耦的交叉注意力策略,图像提示也可以很好地与文本提示协同工作,实现多模态图像生成。

也是使用图像作为提示信息的工作

image-20240504191157767

以往的工作通过替换text-encoder为image-encoder,本作强调在不修改原始模型的情况下实现图像提示功能.

image-20240504204508024

文章认为,上述方法的主要问题在于文本到图像扩散模型的交叉注意力模块.对预训练扩散模型中的交叉注意力层的key和value投影权重进行训练,使其适应文本特征.

因此,将图像特征和文本特征融合到交叉注意力层只完成了图像特征到文本特征的对齐,但这可能会遗漏一些图像特有的信息,最终导致仅与参考图像进行粗粒度可控生成(例如,图像风格)。

L s i m p l e = E x 0 , ϵ ∼ N ( 0 , I ) , c , t ∥ ϵ − ϵ θ ( x t , c , t ) ∥ 2 L_{\mathrm{simple}}=\mathbb{E}_{\boldsymbol{x}_0,\boldsymbol{\epsilon}\sim\mathcal{N}(\mathbf{0},\mathbf{I}),\boldsymbol{c},t}\|\epsilon-\epsilon_\theta(\boldsymbol{x}_t,\boldsymbol{c},t)\|^2 Lsimple=Ex0,ϵN(0,I),c,tϵϵθ(xt,c,t)2
在CFG下
ϵ ^ θ ( x t , c , t ) = w ϵ θ ( x t , c , t ) + ( 1 − w ) ϵ θ ( x t , t ) \hat{\epsilon}_\theta(x_t,c,t)=w\epsilon_\theta(x_t,c,t)+(1-w)\epsilon_\theta(x_t,t) ϵ^θ(xt,c,t)=wϵθ(xt,c,t)+(1w)ϵθ(xt,t)
目前的适配器很难匹配微调的图像提示模型或从零开始训练的模型的性能。主要原因是图像特征不能有效地嵌入到预训练模型中。大多数方法只是简单地将串联的特征输入到冻结的交叉注意力层中,阻止了扩散模型从图像提示中捕获细粒度的特征。为了解决这个问题,提出了一种解耦的交叉注意力策略,通过新增加的交叉注意力层来嵌入图像特征

插入图像特征的一种直接方法是将图像特征和文本特征进行拼接,然后将其输入到交叉注意力层中.然而,我们发现这种方法的有效性不足.相反提出了一种解耦的交叉注意力机制,其中文本特征和图像特征的交叉注意力层是分开的。
Z ′ ′ = Attention ( Q , K ′ , V ′ ) = Softmax ( Q ( K ′ ) ⊤ d ) V ′ \mathbf{Z}''=\text{Attention}(\mathbf{Q},\mathbf{K}',\mathbf{V}')=\text{Softmax}(\frac{\mathbf{Q}(\mathbf{K}')^\top}{\sqrt{d}})\mathbf{V}' Z′′=Attention(Q,K,V)=Softmax(d Q(K))V

Z n e w = S o f t m a x ( Q K ⊤ d ) V + S o f t m a x ( Q ( K ′ ) ⊤ d ) V ′ w h e r e Q = Z W q , K = c t W k , V = c t W v , K ′ = c i W k ′ , V ′ = c i W v ′ \mathbf{Z}^{new}=\mathrm{Softmax}(\frac{\mathbf{Q}\mathbf{K}^{\top}}{\sqrt{d}})\mathbf{V}+\mathrm{Softmax}(\frac{\mathbf{Q}(\mathbf{K}^{\prime})^{\top}}{\sqrt{d}})\mathbf{V}^{\prime}\\\mathrm{where~}\mathbf{Q}=\mathbf{Z}\mathbf{W}_q,\mathbf{K}=c_t\mathbf{W}_k,\mathbf{V}=c_t\mathbf{W}_v,\mathbf{K}^{\prime}=c_i\mathbf{W}_k^{\prime},\mathbf{V}^{\prime}=c_i\mathbf{W}_v^{\prime} Znew=Softmax(d QK)V+Softmax(d Q(K))Vwhere Q=ZWq,K=ctWk,V=ctWv,K=ciWk,V=ciWv

由于冻结了原始的UNet模型,在上述解耦的交叉注意力中,只有W′k和W′v是可训练的.
L s i m p l e = E x 0 , ϵ , c t , c i , t ∥ ϵ − ϵ θ ( x t , c t , c i , t ) ∥ 2 ϵ ^ θ ( x t , c t , c i , t ) = w ϵ θ ( x t , c t , c i , t ) + ( 1 − w ) ϵ θ ( x t , t ) L_{\mathrm{simple}}=\mathbb{E}_{\boldsymbol{x}_0,\boldsymbol{\epsilon},\boldsymbol{c}_t,\boldsymbol{c}_i,t}\|\epsilon-\epsilon_\theta(x_t,c_t,c_i,t)\|^2 \\ \hat{\epsilon}_\theta(x_t,c_t,c_i,t)=w\epsilon_\theta(x_t,c_t,c_i,t)+(1-w)\epsilon_\theta(x_t,t) Lsimple=Ex0,ϵ,ct,ci,tϵϵθ(xt,ct,ci,t)2ϵ^θ(xt,ct,ci,t)=wϵθ(xt,ct,ci,t)+(1w)ϵθ(xt,t)
我们还在训练阶段随机丢弃图像条件,以便在推理阶段实现无分类器指导.

由于文本交叉注意力和图像交叉注意力是分离的,我们还可以在推断阶段调整图像条件的权重
Z n e w = Attention ( Q , K , V ) + λ ⋅ Attention ( Q , K ′ , V ′ ) \mathbf{Z}^{new}=\text{Attention}(\mathbf{Q},\mathbf{K},\mathbf{V})+\lambda\cdot\text{Attention}(\mathbf{Q},\mathbf{K}',\mathbf{V}') Znew=Attention(Q,K,V)+λAttention(Q,K,V)
为了训练IP - Adapter,从两个开源数据集LAION - 2B和COYO - 700M中构建了一个包含约1000万个文本-图像对的多模态数据集

InstantID 2024

image-20240504230014174

利用Textual Inversion、DreamBooth、LoRA等方法进行个性化图像合成已经取得了显著的进展。然而,它们的实际应用受到高存储需求、长时间微调过程以及需要多个参考图像的限制。相反,现有的基于ID嵌入的方法,虽然只需要单一的前向推断,但面临挑战:它们要么需要在众多模型参数之间进行广泛的微调,缺乏与社区预训练模型的兼容性,要么不能保持高的人脸保真度

我InstantID,这是一个的基于扩散模型的解决方案,即插即用模块只使用一张人脸图像就能很好地处理各种风格的图像个性化,同时保证了高保真度。

为了实现这一点,设计了一个新颖的IdentityNet,通过强语义和弱空间条件,将面部和地标图像与文本提示相结合,以引导图像生成.

生成精确保留人类主体错综复杂的身份细节的定制图像

它包含三个关键部分:( 1 )能够捕获鲁棒语义人脸信息的ID嵌入;( 2 )一个轻量级的自适应模块,具有解耦的交叉注意力,便于使用图像作为视觉提示;( 3 )提出了一种基于额外空间控制的编码参考人脸图像细节特征的IdentityNet。

首先采用人脸编码器代替CLIP提取语义人脸特征,并使用可训练的投影层将其投影到文本特征空间.

然后,引入解耦交叉注意力的轻量级自适应模块,以支持图像作为提示。

在IdentityNet中,生成过程完全由人脸嵌入引导,无需任何文本信息.只更新新增加的模块,而预训练的文本到图像模型保持冻结,以确保灵活性.

在训练过程中,只对Image Adapter和Identity Net的参数进行优化,而对预训练的扩散模型的参数保持冻结。我们在具有人类主题的图像-文本对上训练整个InstantID流水线,采用了类似于原始稳定扩散工作中使用的训练目标
L = E z t , t , C , C i , ϵ ∼ N ( 0 , 1 ) [ ∥ ϵ − ϵ θ ( z t , t , C , C i ) ∥ 2 2 ] \mathcal{L}=\mathbb{E}_{z_t,t,C,C_i,\epsilon\sim\mathcal{N}(0,1)}[\|\epsilon-\epsilon_\theta(z_t,t,C,C_i)\|_2^2] L=Ezt,t,C,Ci,ϵN(0,1)[ϵϵθ(zt,t,C,Ci)22]

C i C_{i} Ci为IdentityNet上的任务特定图像条件。值得注意的是,在训练过程中,我们不会随意丢弃文本或图片条件,因为我们已经去掉了IdentityNet中的文本提示条件。

上面四篇工作都是类似的,利用额外控制信息和改进一些模型进行微调使得捕获输入的图像.下面几篇工作是OPenAI与Google的文生图模型,已经作为产品级模型.

GLIDE 2021

GLIDE能够根据自然语言描述生成图像,这意味着用户可以用文本提示来生成相应的视觉内容。

论文比较了两种引导扩散模型的技术——CLIP引导和无分类器引导(classifier-free guidance)。研究发现,无分类器引导在照片真实感和标题相似性方面更受人类评估者的青睐。GLIDE不仅能够进行零样本(zero-shot)图像生成,还能通过图像修复(inpainting)进行细粒度的图像编辑,使得用户可以迭代改进模型样本以匹配更复杂的文本提示。

Ho & Salimans 提出了无分类器引导,一种用于引导扩散模型的技术,它不需要单独的分类器模型来进行训练。对于无分类器指导,在训练过程中,类条件扩散模型θ ( xt | y )中的标签y被一个固定概率的零标签∑所代替。为了用通用文本提示实现无分类器的指导,我们有时在训练过程中用空序列(其中,我们也称之为:)替换文本。
ϵ ^ θ ( x t ∣ c ) = ϵ θ ( x t ∣ ∅ ) + s ⋅ ( ϵ θ ( x t ∣ c ) − ϵ θ ( x t ∣ ∅ ) ) \hat{\epsilon}_\theta(x_t|c)=\epsilon_\theta(x_t|\emptyset)+s\cdot(\epsilon_\theta(x_t|c)-\epsilon_\theta(x_t|\emptyset)) ϵ^θ(xtc)=ϵθ(xt∣∅)+s(ϵθ(xtc)ϵθ(xt∣∅))

DALLE2 2022

image-20240504230111721

像CLIP这样的对比模型已经被证明可以学习到同时捕获语义和风格的图像的鲁棒表示。

为了利用这些表示进行图像生成,文中提出了一个两阶段模型:一个先验生成给定文本描述的CLIP图像嵌入,一个解码器生成以图像嵌入为条件的图像。

我们证明了显式地生成图像表示以最小的损失在照片真实性和字幕相似性中提高了图像的多样性。我们的解码器在图像表示的条件下也可以产生图像的变化,以保留其语义和风格,同时改变图像表示中不存在的非基本细节。此外,CLIP的联合嵌入空间可以在a z中实现语言引导的图像操作

Imagen 2022

我们提出了Imagen,我们的关键发现是,通用的大语言模型(如:T5 ),在纯文本语料上进行预训练,在编码图像合成的文本时取得了惊人的效果:增加Imagen中语言模型的大小比增加图像扩散模型的大小更能提高样本保真度和图像文本对齐度。Imagen在COCO数据集上取得了7.27的最新FID得分,而没有对COCO进行过训练,人类评分员发现Imagen样本处于标准状态

image-20240504235247964

Imagen使用冻结的文本编码器将输入文本编码成文本嵌入。条件扩散模型将文本嵌入映射成一个64×64的图像。Imagen进一步利用文本条件的超分辨率扩散模型对图像进行上采样,先是64×64→256×256,然后是256×256→1024×1024。

基模型采用IPPDMU - Net架构,用于我们的64 × 64文本到图像扩散模型。该网络通过池化嵌入向量对文本嵌入进行条件化,并加入类嵌入条件化方法的扩散时间步嵌入。我们进一步通过在多个分辨率的文本嵌入上添加交叉注意力来限定整个文本嵌入序列。

超分辨率模型:对于64 × 64→256 × 256的超分辨率,采用改编自PPDMU的U - Net模型。为了提高内存效率、推理时间和收敛速度(我们的变体比文献[ 40,58 ]中使用的U - Net快2 - 3倍步数/秒),我们对该U - Net模型进行了多次修改。我们称这种变体为Efficient U-Net

总结一下,关于DDPM的论文本身的数学理论还是挺强的,而相关的CLIP,Adapter作为某种辅助改进既是一种创新型的工作也很有价值,理论性研究起来也没有那么困难,这种工作做起来还是很舒服的.

参考资料

  1. mli/paper-reading: 深度学习经典、新论文逐段精读 (github.com)
  2. The recent rise of diffusion-based models | Maciej Domagała (maciejdomagala.github.io)

如有疑问,欢迎各位交流!

服务器配置
宝塔:宝塔服务器面板,一键全能部署及管理
云服务器:阿里云服务器
Vultr服务器
GPU服务器:Vast.ai

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/6960.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

“给力”用日语怎么说?柯桥成人日语培训

在日语中,给力这个词可以翻译成几个不同的表达方式,具体取决于语境。以下我将给出几个常见的日语翻译以及例句帮助理解: スゴイ 这个词意思为“太棒了”,是表达给力的最常见说法。 例如: これはスゴイ映画だね。这电影太给力了! 最高 意思为“最棒的”,也可以用来表达给力。 例…

连锁店收银系统为什么贵

连锁店收银系统会比单机收银系统价格高一些,主要有三个方面的原因: 复杂的功能需求 连锁店收银系统需要管理多个分店的进销存、库存调拨、门店订货等操作,以及会员管理,商淘云连锁收银系统还提供了连锁线上商城等功能。这些功能的…

“胖猫”事件

1.她自以为手段高明,不过是他心甘情愿罢了。 2. 可惜他在最后一刻,也没怨恨过她。 3.她反复确定用不用还,他反复确定有没有爱。 4. 他才21岁,只想见你一面,有什么错。 5. 希望你学会爱的时候,爱的第一个人是…

csrf攻击(跨站请求伪造)【2】

1.DVWA中csrf漏洞验证low (1)受害者将密码更改为password,显示更改成功 (2)受害者未退出登录状态,打开了新链接(黑客设计好的修改密码为admin123(原本为passwrod)的链接),导致受害者密码被更改&#xff0c…

Python-VBA函数之旅-pow函数

目录 一、pow函数的常见应用场景 二、pow函数使用注意事项 三、如何用好pow函数? 1、pow函数: 1-1、Python: 1-2、VBA: 2、推荐阅读: 个人主页:神奇夜光杯-CSDN博客 一、pow函数的常见应用场景 Py…

【Web】CTFSHOW 中期测评刷题记录(1)

目录 web486 web487 web488 web489 web490 web491 web492 web493 web494 web495 web496 web497 web498 web499 web500 web501 web502 web503 web505 web506 web507 web508 web509 web510 web486 扫目录 初始界面尝试文件包含index.php&am…

COUNT(1)\COUNT(*)\COUNT(列名)到底谁更快

今天来研究一个比较有趣的话题,关于我们平常使用mysql查询数量的到底那种方式查询效率更高的问题 起因 这个问题在我以前的认知里是,按效率从高到低品排序 count(1)>count(列名)>count(*),但是我也注意到过mybatis-plus官方提供的selectCount方法和分页查询时,它的SQL在…

Linux(openEuler、CentOS8)企业内网DHCP服务器搭建(固定Mac获取指定IP)

----本实验环境为openEuler系统<以server方式安装>&#xff08;CentOS8基本一致&#xff0c;可参考本文&#xff09;---- 目录 一、知识点二、实验&#xff08;一&#xff09;为服务器配置网卡和IP&#xff08;二&#xff09;为服务器安装DHCP服务软件&#xff08;三&a…

openGauss学习笔记-273 openGauss性能调优-实际调优案例02-调整I/O相关参数降低日志膨胀率

文章目录 openGauss学习笔记-273 openGauss性能调优-实际调优案例02-调整I/O相关参数降低日志膨胀率273.1 调整参数前的参数值273.2 调整参数后的参数值openGauss学习笔记-273 openGauss性能调优-实际调优案例02-调整I/O相关参数降低日志膨胀率 273.1 调整参数前的参数值 page…

[技术小技巧] 可视化分析:在jupyter中使用d3可视化树形结构

首先在python中定义一个字符串&#xff0c;记录d3.js绘制属性图的js脚本代码模版。其中{{data}}就是将来要被替换的内容。 d3_code_template """ // 创建树状结构数据 var treeData {{data}};// 创建d3树布局 var margin { top: 20, right: 90, bottom: 30,…

leecode每日一练

打家劫舍 我一开始的思路也是dp&#xff0c;但是转移方程想错了&#xff0c;这个题目转移方程应该是dp[i] max(dp[i-2]nums[i],dp[i-1]) class Solution { public:int rob(vector<int>& nums) {int len nums.size();vector<int> dp(len);int ans 0;if(len&g…

音频智能切换器JR-AR42-A

憬锐JR-AR42-A音频自动智能切换器(四切一)&#xff0c;具备四路模拟卡侬立体声音频输入&#xff0c;两路模拟卡侬立体声音频输出&#xff0c;其中输入第1路和输出第1路为断电直通通道。具有输入音频信号幅度判别&#xff0c;可设置门限电平和切换延时时间&#xff0c;可以根据需…

五一反向旅游,景区“AI+视频监控”将持续助力旅游业发展

一、建设背景 每年五一劳动节出去旅游都是人挤人状态&#xff0c;这导致景区的体验感极差。今年“五一反向旅游”的话题冲上了热搜&#xff0c;好多人选择了五一之后再出去旅游&#xff0c;避开拥挤的人群&#xff0c;这个时候景区的监管力度和感知能力就更要跟上去&#xff0…

TCP粘包拆包问题解决之道

文章目录 1. TCP粘包/拆包问题2. TCP粘包/拆包发生的原因3. TCP粘包解决策略 1. TCP粘包/拆包问题 假设客户端分别发送了两个数据包D1和D2&#xff0c;由于服务端一次读取到的字节数是不确定的&#xff0c;故存在以下四种情况。 服务端分两次读取到了两个独立的数据包&#xf…

C++ stack and queue

1. stack模拟实现 CSTL中的栈是一种容器适配器&#xff0c;它是将vector/list进行封装&#xff0c;push/pop等接口直接调用vector/list的接口即可&#xff0c;不需要像C语言那样&#xff0c;从头开始造轮子 namespace byh {template<class T, class Container deque<T&…

智慧隧道建设中,如何提升隧道广播清晰度,解决隧道广播有效发布问题

近年来&#xff0c;我国高速公路智慧隧道建设步伐加快&#xff0c;全国各地高速公路运营单位纷纷加大投资力度&#xff0c;进行智慧隧道建设&#xff0c;提高隧道智能化水平。通过高清视频监控、AI视频识别、雷视融合、全域轨迹、激光雷达、火灾报警、气体检测、亮度检测、自动…

【Scala---04】函数式编程 『 函数 vs 方法 | 函数至简原则 | 函数式编程』

文章目录 1. 函数 vs 方法1.1 方法(1) 定义方法(2) 运算符即方法 1.2 函数(1) 定义函数(2) 匿名函数 1.3 方法转为函数1.4 可变参数&默认参数 2. 函数至简原则3. 函数式编程3.1 函数式编程思想3.3 函数柯里化&闭包3.5 递归 & 尾递归 4. 补充4.1 访问元祖元素4.2 &g…

ROS机器人入门:机器人系统仿真【学习记录】——2

承接上一篇博客&#xff1a; ROS机器人入门&#xff1a;机器人系统仿真【学习记录】——1-CSDN博客 我们先前结束了&#xff08;上一篇博客中&#xff09;&#xff1a; 1. 概述 2. URDF集成Rviz基本流程 3. URDF语法详解 4. URDF优化_xacro 下面让我们继续学习ROS机器人…

【Scala---01】Scala简介与环境部署『 Scala简介 | 函数式编程简介 | Scala VS Java | 安装与部署』

文章目录 1. Scala简介2. 函数式编程简介3. Scala VS Java4. 安装与部署 1. Scala简介 Scala是由于Spark的流行而兴起的。Scala是高级语言&#xff0c;Scala底层使用的是Java&#xff0c;可以看做是对Java的进一步封装&#xff0c;更加简洁&#xff0c;代码量约是Java的一半。…

前端开发攻略---打破Chrome的最小字号限制,设置任意字号大小

目录 1、原因 2、解决方法 1、原因 由于Chrome浏览器的限制&#xff0c;在网页中的字号默认最小为12px&#xff0c;更改为12px以下的字号大小是无效的 2、解决方法 1、在Chrome浏览器中调整字号最小值 优点&#xff1a;快&#xff0c;方便&#xff0c; 缺点&#xff1a;只对自…