diffusion model(五)stable diffusion底层原理(latent diffusion model, LDM)

这篇具有很好参考价值的文章主要介绍了diffusion model(五)stable diffusion底层原理(latent diffusion model, LDM)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

LDM: 在隐空间用diffusion model合成高质量的图片!

[论文地址] High-Resolution Image Synthesis with Latent Diffusion Models

[github] https://github.com/compvis/latent-diffusion

系列阅读

  • diffusion model(一)DDPM技术小结 (denoising diffusion probabilistic)
  • diffusion model(二)—— DDIM技术小结
  • diffusion model(三)—— classifier guided diffusion model
  • diffusion model(四)文生图diffusion model(classifier-free guided)
  • diffusion model(五)stable diffusion底层原理(latent diffusion model, LDM

1 背景

近期扩散模型(diffusion model,DM)在图像生成取得了最先进的结果。但是传统的扩散模型是在像素空间(pixel space)进行优化的,高分辨率图像的训练往往需要更大的显存,更多的梯度回传,导致DM模型训练成本高,推理时延长。当下很多工作从优化采样策略12、分层方法3来解决这两个缺点,但效果有限。latent diffusion model提供了一个新的思路:它将扩散过程从传统的像素空间转到了隐空间(DM模型输入参数量大大降低),极大提升了DM的训练效率和推理效率,使得DM模型得以在单张消费级显卡应用,降低了AI图片生成的上手成本。目前火出圈的Dalle24, Stable Diffusion5都用到了LDM技术。下面我们来看LDM是如何做的。

2 方法

2.1 整体架构

LDM主要参考了VQGAN6的思路,其整体架构如下图所示。与传统Diffusion model在像素空间(pixel-based diffusion model)重建不同的是,LDM是在隐空间进行重建。为了得到图片的隐空间表征,LDM需要预选训练一个VAE模型。记原始图像为 x , x ∈ R H × W × 3 x,x\in\mathbb{R}^{H \times W \times 3} x,xRH×W×3通过VAE的编码器 E \mathcal{E} E获得图片的隐空间表示 z , z ∈ R H f × W f × c z,z\in \mathbb{R}^{\frac{H}{f} \times \frac{W}{f} \times c} z,zRfH×fW×c f f f为下采样率。在重建阶段,首先通过DM预测隐空间的表征 z ~ \tilde{z} z~,再将其送入到VAE的解码器中 D \mathcal{D} D重建像素空间的表征 x ~ \tilde{x} x~。本质上LDM是一种二阶段的图片生成方法。

通过在隐空间重建的操作,相较原本的像素空间重建,一个时间步的计算量近似降低了近 f 2 f^2 f2倍。有同学会问通道数不是从 3 → c 3 \rightarrow c 3c了吗,为什么整体计算量没有扩到 c 3 \frac{c}{3} 3c倍,其实这只会增加第一层卷积的计算量,相较整体模型而言较低。

原本DM模型的优化目标
L D M = E x , ϵ ∼ N ( 0 , 1 ) , t [ ∥ ϵ − ϵ θ ( x t , t ) ∥ 2 2 ] L_{DM} = \mathbb{E}_{x, \epsilon \sim \mathcal{N}(0, 1), t} [\parallel \epsilon - \epsilon_\theta(x_t, t) \parallel_2^2] LDM=Ex,ϵN(0,1),t[ϵϵθ(xt,t)22]
LDM的优化目标
L L D M = E E ( x ) , ϵ ∼ N ( 0 , 1 ) , t [ ∥ ϵ − ϵ θ ( z t , t ) ∥ 2 2 ] L_{LDM} = \mathbb{E}_{\mathcal{E}(x), \epsilon \sim \mathcal{N}(0, 1), t} [\parallel \epsilon - \epsilon_\theta(z_t, t) \parallel_2^2] LLDM=EE(x),ϵN(0,1),t[ϵϵθ(zt,t)22]
t t t { 1 , . . . , T } \{1, ..., T\} {1,...,T}以服从均匀分布进行采样

通过上面的描述不难看出LDM就是套了一层VAE的DM!利用VAE搭建起隐空间和像素空间的桥梁。
diffusion model(五)stable diffusion底层原理(latent diffusion model, LDM),diffusion model,stable diffusion,人工智能,计算机视觉

2.2 更多细节

2.2.1 感知压缩的权衡

上文提到LDM先通过VAE的encode将图片从像素空间 x , x ∈ R H × W × 3 x,x\in\mathbb{R}^{H \times W \times 3} x,xRH×W×3变换到隐空间 z , z ∈ R H f × W f × c z,z\in \mathbb{R}^{\frac{H}{f} \times \frac{W}{f} \times c} z,zRfH×fW×c。当下采样率 f f f越大,DM的过程越快,但f越大可能导致丢失过多的高频信号,影响重建结果。因此需要对不同的下采样率进行权衡。论文中分别对 f ∈ { 1 , 2 , 4 , 8 , 16 , 32 } f \in \{1,2,4,8,16,32\} f{1,2,4,8,16,32}进行了试验。基于试验结果,作者建议采样率控制在 4 − 16 4-16 416能够取得效率和质量的均衡。

从下图可以看出,当采样率为4-16时,LDM的训练收益比最大。

diffusion model(五)stable diffusion底层原理(latent diffusion model, LDM),diffusion model,stable diffusion,人工智能,计算机视觉
diffusion model(五)stable diffusion底层原理(latent diffusion model, LDM),diffusion model,stable diffusion,人工智能,计算机视觉

2.2.2 LDM的训练策略与预测

LDM采用了二阶段的训练策略(two-stage)。需要先训练VAE模型再训练DM模型。DM训练时会利用已训练好的VAE的encode将数据从像素空间切换到隐空间。

预测时,在隐空间随机采样一个噪声,用DM进行去噪。最后将DM的预测结果传给VAE的Decode进行解码。

2.2.3 给生成过程引入控制信号

如果说不带控制信号的LDM是对 p ( z ) p(z) p(z)建模的话,那么加上控制信号的建模可以表述成 p ( z ∣ y ) p(z|y) p(zy)。控制信号 y y y可以是文本、图片布局、轮廓图等。当有有一些更为细粒度的生成存在多个控制信号,即对 p ( z ∣ y 1 , ⋯   , y N ) p(z|y_1, \cdots,y_N) p(zy1,,yN)。为了使得生成过程考虑控制信息,作者在原有的Unet backbone上引入了一个交叉注意力机制,来融入控制信号。首先通过一个 domain specific encoder  τ θ \text{domain specific encoder} \space \tau_\theta domain specific encoder τθ y y y投影到为一个中间表征 τ θ ( y ) ∈ R M × d τ \tau_\theta(y) \in \mathbb{R}^{M \times d_\tau} τθ(y)RM×dτ,随后和DM某层的输出进行融合。

假定 φ i ( z t ) \varphi_i(z_t) φi(zt)是隐变量 z z z在Unet在层 i i i时间步为 t t t时的输出,下面需要将 φ i ( z t ) \varphi_i(z_t) φi(zt) τ θ ( y ) \tau_\theta(y) τθ(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 Q = W Q ( i ) ⋅ φ i ( z t ) ; K = W K ( i ) ⋅ τ θ ( y ) ; V = W V ( i ) ⋅ τ θ ( y ) \begin{aligned} \mathrm{Attention}(Q, K, V) &= \mathrm{softmax}(\frac{QK^T}{\sqrt{d}})\cdot V \notag \\ Q = W_Q^{(i)} \cdot \varphi_i(z_t); \quad K &= W_K^{(i)} \cdot \tau_\theta(y); \quad V = W_V^{(i)} \cdot \tau_\theta(y) \end{aligned} Attention(Q,K,V)Q=WQ(i)φi(zt);K=softmax(d QKT)V=WK(i)τθ(y);V=WV(i)τθ(y)
此时模型的优化目标为
L L D M c o n d = E E ( x ) , ϵ ∼ N ( 0 , 1 ) , t [ ∥ ϵ − ϵ θ ( z t , t , τ θ ( y ) ) ∥ 2 2 ] L_{LDM_{cond}} = \mathbb{E}_{\mathcal{E}(x), \epsilon \sim \mathcal{N}(0, 1), t} [\parallel \epsilon - \epsilon_\theta(z_t, t, \tau_\theta(y)) \parallel_2^2] LLDMcond=EE(x),ϵN(0,1),t[ϵϵθ(zt,t,τθ(y))22]

参考文献


  1. On fast sampling of diffusion probabilistic models. ↩︎

  2. Noise estimation for generative diffusion models. ↩︎

  3. Cascaded diffusion models for high fidelity image generation ↩︎

  4. Hierarchical Text-Conditional Image Generation with CLIP Latents,GitHub ↩︎

  5. stable diffusion GitHub ↩︎

  6. Taming transformers for high-resolution image synthesis ↩︎文章来源地址https://www.toymoban.com/news/detail-616721.html

到了这里,关于diffusion model(五)stable diffusion底层原理(latent diffusion model, LDM)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【论文简介】Stable Diffusion的基础论文:2112.High-Resolution Image Synthesis with Latent Diffusion Models

    稳定扩散生成模型(Stable Diffusion)是一种潜在的文本到图像扩散模型,能够在给定任何文本输入的情况下生成照片般逼真的图像 Stable Diffusion 是基于 latent-diffusion 并与 Stability AI and Runway合作实现的 paper: High-Resolution Image Synthesis with Latent Diffusion Models 本论文代码 :https://github.co

    2024年02月08日
    浏览(38)
  • AI绘画Stable Diffusion原理之Autoencoder-Latent

    传送门: stable diffusion:Git|论文 stable-diffusion-webui:Git Google Colab Notebook部署stable-diffusion-webui:Git kaggle Notebook部署stable-diffusion-webui:Git AI绘画,输入一段文本就能生成相关的图像,stable diffusion便是其中一个重要分支。自己对其中的原理比较感兴趣,因此开启这个系列的文章

    2024年02月15日
    浏览(37)
  • 由浅入深理解latent diffusion/stable diffusion(2):扩散生成模型的工作原理

    Diffusion Models专栏文章汇总:入门与实战 前言: 关于如何使用stable diffusion的文章已经够多了,但是由浅入深探索stable diffusion models背后原理,如何在自己的科研中运用stable diffusion预训练模型的博客少之又少。本系列计划写5篇文章,和读者一起遨游diffusion models的世界!本文主

    2024年02月08日
    浏览(54)
  • Latent Diffusion Models

    High-Resolution Image Synthesis with Latent Diffusion Models(CVPR 2022) https://arxiv.org/abs/2112.10752 GitHub - CompVis/latent-diffusion: High-Resolution Image Synthesis with Latent Diffusion Models GitHub - CompVis/stable-diffusion: A latent text-to-image diffusion model 贡献 : 大大减少计算复杂度、提出了cross-attention的方法来实现

    2024年02月02日
    浏览(37)
  • LoRA微调stable diffusion models:原理和实战

    Diffusion Models专栏文章汇总:入门与实战 前言: AIGC大模型(如stable diffusion models)的训练成本已经超过绝大多数人的承受范围,如何利用已有的开源大模型,花费较小的成本微调出属于自己的专有模型?现在微调方法diffusion大模型基本只剩下Dreambooth、textual inversion、LoRA和Hypern

    2024年02月09日
    浏览(54)
  • 【CV】Latent diffusion model 扩散模型体验

    稳定扩散模型(Stable Diffusion Model)是一种用于描述信息传播和创新扩散的数学模型。它基于经典的扩散方程,但引入了长尾分布以捕捉现实中存在的大量异常事件。 在稳定扩散模型中,假设某个创新或信息被一个人采纳后,它会以一定的概率被其他人采纳,并通过社交网络

    2024年02月02日
    浏览(46)
  • 复现问题记录 | Stable Diffusion(LDM) (in python3)(一)

    记录复现LDM遇到的问题 conda env create -f environment.yaml 根据environment.yaml创建一个叫ldm的新环境 其中报错是需要github下载的两个模型无法获取,通过VPN单独下载 根据报错信息显示 代码放在./src文件夹下 注意一下 模型的文件名 ,根据报错和yaml分析,这里应该是用的environment.yam

    2023年04月18日
    浏览(44)
  • 【AI绘图学习笔记】Latent Diffusion Model(上)——论文解读

    gihub代码 论文-Arxiv-High-Resolution Image Synthesis with Latent Diffusion Models 参考视频:【渣渣讲课】试图做一个正常讲解Latent / Stable Diffusion的成年人 中文翻译论文(这篇翻译得很好) 我们来看一些主要的生成模型: 第一个GAN生成对抗网络,可以分为判别器和生成器两个部分,总体思想

    2024年02月07日
    浏览(47)
  • Latent Diffusion(Stable Diffusion) 论文译文

    Latent Diffusion(Stable Diffusion) 论文译文: Latent Diffusion(Stable Diffusion) 论文译文 以下是 附录 的 H、其他定性结果: 最后,我们为我们的景观模型(图12、23、24和25)、我们的类条件ImageNet模型(图26-27)以及我们的CelebA-HQ、FFHQ和LSUN数据集的无条件模型(图28-31)提供了额外

    2024年02月15日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包