Stable Diffusion - High-Resolution Image Synthesis with Latent Diffusion Models

Paper name

High-Resolution Image Synthesis with Latent Diffusion Models

Paper Reading Note

Paper URL: https://arxiv.org/abs/2112.10752

Code URL: https://github.com/CompVis/latent-diffusion

TL;DR

  • 2021 年 runway 和慕尼黑路德维希·马克西米利安大学出品的文章,开源社区大名顶顶的文生图模型 stable diffusion 背后的论文。提出 Latent Diffusion Models,基于 latent space 进行 diffusion,降低计算量需求。

Introduction

背景

  • 图像生成对计算需求较大,当前一些主流方法的优缺点对比:
    • 自回归(AR)transformer:对于复杂、自然场景的高分辨率图像合成,目前主要是通过(scaling up likelihood-based)概率模型扩展来实现的,这些模型可能包含数十亿参数,参数量较大
    • GAN 的结果主要局限于有限变异性的数据,对抗学习过程不容易扩展到建模复杂、多模态分布
    • Diffusion 模型由一系列去噪自动编码器构成,作为基于似然的模型,没有 GAN 的模式崩溃和训练不稳定性,并且通过参数共享,可以模拟自然图像高度复杂分布,无需像 AR 模型那样涉及数十亿参数
  • Diffusion 模型现有问题:
    • 训练和评估模型需要在 RGB 图像这样的高维空间中进行重复的函数评估(和梯度计算),例如,训练最强大的 Diffusion 模型通常需要数百个 GPU 天(例如,在论文 Diffusion Models Beat GANs on Image Synthesis 中为150-1000 个 V100 天)。在输入空间的噪声版本上进行重复评估也使推理变得昂贵,因此在单个A100 GPU上生成50k样本大约需要5天

本文方案

  • 提出 Latent Diffusion Models,基于 latent space 进行 diffusion,降低计算量需求
  • 出发点来源于对训练好的像素空间 diffusion 模型进行分析:下图展示了一个训练好的模型的速率-失真关系。学习大致可以分为两个阶段:首先是感知压缩阶段,该阶段去除了高频细节,但仍然学到了很少的语义变化。在第二阶段,实际的生成模型学习数据的语义和概念组成(语义压缩)。本文的目标是首先找到一个在感知上等效但在计算上更合适的空间,在这个空间中我们将训练高分辨率图像合成的扩散模型。
    在这里插入图片描述
  • 本文模型在细节上和指标上优于同时期的 AR 或者 GAN 模型。基于更少的下采样比率实现了更高的效率
    在这里插入图片描述

Methods

  • 为了降低训练扩散模型以实现高分辨率图像合成的计算需求,我们观察到,虽然扩散模型通过对应的损失项进行欠采样,允许忽略感知上不相关的细节,但它们仍然需要在像素空间进行昂贵的函数评估,这导致计算时间和能源资源的巨大需求。我们提出通过引入压缩学习和生成学习阶段的显式分离(见图2)来规避这一缺点。为了实现这一点,我们利用一个自动编码模型,该模型学习了一个在感知上等效于图像空间的空间,但具有显著降低的计算复杂性。

Perceptual Image Compression

  • 主要基于之前的工作进行,由一个自编码器组成,通过 perceptual loss 和 patch-based 对抗损失进行训练。这确保了通过强制局部真实性,重建被限制在图像流形上,并避免了仅依赖于像素空间损失(如L2或L1目标)引入的模糊性。
  • 具体来说
    • 给定一张图片 x ∈ R H × W × 3 x \in \mathbb{R}^{H \times W \times 3} xRH×W×3
    • encoder ε \varepsilon ε 用于将 x 编码到 latent 空间表示: z = ε ( x ) z= \varepsilon(x) z=ε(x)
    • decoder D D D 用于将 latent 空间重建为图片: x ~ = D ( z ) \widetilde{x}= D(z) x =D(z)
    • encoder 下采样率表示为: f = H / h = W / w = 2 m f = H/h = W/w= 2^{m} f=H/h=W/w=2m
  • 为了避免潜在空间的任意高方差,尝试了两种不同的正则化方法。
    • 第一种变体 KL-reg.,对学到的 latent 施加了轻微的KL惩罚,朝向标准正态,类似于VAE
    • 第二种变体 VQ-reg. 则在解码器内使用了一个向量量化层。这个模型可以解释为是一个VQGAN,但量化层被吸收到解码器中。
    • 由于我们后续的扩散模型(DM)被设计为使用我们学到的潜在空间 z = E(x) 的二维结构,我们可以使用相对不过度的压缩率并实现非常好的重建。这与先前的工作 VQGAN/DALL-E 形成对比,其依赖于学到的空间 z 的任意 1D 排序来自回归地建模其分布,从而忽略了 z 的许多固有结构。因此,我们的压缩模型更好地保留了 x 的细节(见下表)。
      精度对比

Latent Diffusion Models

扩散模型(DM):
  • DM 设计用于通过逐渐去噪一个正态分布变量来学习数据分布 p(x) 的概率模型,这对应于学习长度为 T 的固定马尔可夫链的反向过程。在图像合成方面,最成功的模型 DDPM 等基于对 p(x) 变分下界的一种重新加权变体,这反映了去噪得分匹配。这些模型可以解释为一个等权重的去噪自动编码器序列 ϵ ( x t , t ) ; t = 1... T \epsilon(x_{t}, t); t = 1 . . . T ϵ(xt,t);t=1...T ,这些自动编码器经过训练以预测其输入 xt 的去噪变体,其中 xt 是输入 x 的带噪声版本。相应的目标可以简化为:
    L DM = E x , ϵ ∼ N ( 0 , 1 ) , t [ ∥ ϵ − ϵ θ ( x t , t ) ∥ 2 2 ] \mathcal{L}_{\text{DM}} = \mathbb{E}_{x, \epsilon \sim \mathcal{N}(0,1),t}[\| \epsilon - \epsilon_{\theta}(x_t, t) \|_2^2] LDM=Ex,ϵN(0,1),t[ϵϵθ(xt,t)22]
    其中 t 均匀采样自 {1, . . . , T}。
潜在表示的生成建模(Generative Modeling of Latent Representations)
  • 利用我们训练得到的感知压缩模型,其中包括 ε \varepsilon ε D D D,我们现在可以访问一个高效、低维的潜在空间,其中高频、难以察觉的细节被抽象化了。与高维像素空间相比,这个空间更适合基于似然的生成模型,因为它们现在可以

    • (i)专注于数据的重要、语义
    • (ii)在一个更低维、计算效率更高的空间中进行训练。
  • 训练目标表示为
    L LDM : = E E ( x ) , ϵ ∼ N ( 0 , 1 ) , t [ ∥ ϵ − ϵ θ ( z t , t ) ∥ 2 2 ] . \mathcal{L}_{\text{LDM}} := \mathbb{E}_{E(x), \epsilon \sim \mathcal{N}(0,1),t}[\| \epsilon - \epsilon_{\theta}(z_t, t) \|_2^2]. LLDM:=EE(x),ϵN(0,1),t[ϵϵθ(zt,t)22].

  • 我们模型的神经骨架 ϵ ( ◦ , t ) \epsilon (◦, t) ϵ(,t) 实现为一个时态条件(time-conditional) UNet。由于正向过程是固定的,在训练过程中可以有效地从 ε \varepsilon ε 获取 z t z_t zt,并且从 p ( z ) p(z) p(z) 中解码的样本可以通过一次 D D D 的传递转换回图像空间。

Conditioning Mechanisms

condition LDMs

  • 类似于其他类型的生成模型 (CGAN),扩散模型原则上能够建模形式为 p ( z ∣ y ) p(z|y) p(zy) 的条件分布。这可以通过使用条件去噪自动编码器 ϵ ( z t , t , y ) \epsilon (z_t, t, y) ϵ(zt,t,y) 来实现,并为通过输入 y(如文本、语义地图或其他图像到图像翻译任务)控制合成。然而,在图像合成的背景下,将 DMs 的生成能力与超出类别标签或输入图像的模糊变体之外的其他类型的条件结合起来,迄今为止仍是一个未充分探讨的研究领域。我们通过在 DMs 的基础 UNet 骨干上增加交叉注意力机制将 DMs 转化为更灵活的条件图像生成器。
  • 为了预处理来自各种模态的 y(例如语言提示),我们引入了一个领域特定的编码器 τ θ \tau_{\theta} τθ,将 y 投影到一个中间表示 τ θ ( y ) ∈ R M × d τ \tau_{\theta}(y) ∈ \mathbb{R}^{M \times d_\tau} τθ(y)RM×dτ ,然后通过以下的交叉注意力机制实现将 τ θ ( y ) \tau_{\theta}(y) τθ(y) 映射到 UNet 的中间层:
    A t t e n t i o n ( Q , K , V ) = s o f t m a x ( Q K T d ) ⋅ V Attention(Q, K, V) = softmax(\frac{QK^T}{\sqrt{d}})·V Attention(Q,K,V)=softmax(d QKT)V
    其中 Q = W Q ( i ) ⋅ φ i ( z t ) Q = W^{(i)}_Q · \varphi_{i}(zt) Q=WQ(i)φi(zt) K = W K ( i ) ⋅ τ θ ( y ) K = W^{(i)}_K · \tau_{\theta}(y) K=WK(i)τθ(y) V = W V ( i ) ⋅ τ θ ( y ) V = W^{(i)}_V · \tau_{\theta}(y) V=WV(i)τθ(y)。在这里, φ i ( z t ) ∈ R N × d i \varphi_{i}(zt) \in \mathbb{R}^{N \times di} φi(zt)RN×di 代表 UNet 实现 ϵ θ \epsilon_\theta ϵθ 的(flattened)中间表示, W V ( i ) ∈ R d × d i W^{(i)}_V \in \mathbb{R}^{d \times d_i} WV(i)Rd×di W Q ( i ) ∈ R d × d τ W^{(i)}_Q ∈ R^d×dτ WQ(i)Rd×dτ W K ( i ) ∈ R d × d τ W_K^{(i)} \in \mathbb{R}^{d \times d_\tau} WK(i)Rd×dτ 是可学习的投影矩阵。见图 3 进行视觉描述。基于图像条件对,然后通过以下方式学习条件 LDM:
    L LDM : = E ε ( x ) , y , ϵ ∼ N ( 0 , 1 ) , t [ ∥ ϵ − ϵ θ ( z t , t , τ θ ( y ) ) ∥ 2 2 ] \mathcal{L}_{\text{LDM}} := \mathbb{E}_{\varepsilon(x), y, \epsilon \sim \mathcal{N}(0,1),t}[\| \epsilon - \epsilon_{\theta}(z_t, t, \tau_{\theta}(y)) \|_2^2] LLDM:=Eε(x),y,ϵN(0,1),t[ϵϵθ(zt,t,τθ(y))22]
    其中 τ θ \tau_{\theta} τθ ϵ θ \epsilon_{\theta} ϵθ 通过上面的目标函数联合优化。这个条件机制是灵活的,因为 τ θ \tau_{\theta} τθ 可以用领域特定的模型进行初始化。

Experiments

  • 首先,我们将分析我们的模型在训练和推断中与基于像素的扩散模型相比的优势。有趣的是,我们发现在 VQ 正则化的潜在空间中训练的 LDMs 有时能够实现更好的样本质量,即使相较于连续版本,VQ 正则化的第一阶段模型的重建能力(reconstruction capabilities)略微落后,参见上述的表 8。
  • 关于第一阶段正则化方案对 LDM 训练的影响以及它们对分辨率 > 256^2 的泛化能力的视觉比较如下
    在这里插入图片描述
    由潜在空间的方差引起的信噪比(即 V a r ( z ) / σ t 2 Var(z)/\sigma^2_t Var(z)/σt2)对卷积采样的结果有显著影响。例如,当直接在一个KL正则化模型的潜在空间中训练 LDM 时,这个比率非常高,以至于模型在反向去噪过程的早期分配了大量的语义细节。相反,当通过潜在变量的逐分量标准差对潜在空间进行重新缩放时,信噪比降低。我们在上图中说明了这对语义图像合成中卷积采样的影响。请注意,VQ 正则化空间的方差接近1,因此不需要重新缩放。
On Perceptual Compression Tradeoffs
  • 本节分析了我们的LDMs在不同的下采样因子f ∈ {1, 2, 4, 8, 16, 32}(简写为LDM-f,其中LDM-1对应于基于像素的DMs)的行为。为了获得可比较的测试场,我们将计算资源固定为单个NVIDIA A100,并在本节的所有实验中以相同数量的步骤和相同数量的参数对所有模型进行训练。
    在这里插入图片描述

  • ImageNet 数据集上进行了 2M 步类别条件模型训练的样本质量随训练进展的变化如下,LDM-{4-16}在效率和感知上忠实的结果之间取得了良好的平衡:

    • i) 对于LDM-{1,2}来说,小的下采样因子导致训练进展缓慢。作者认为原因是将大部分感知压缩留给扩散模型
    • ii) 过大的 f 值导致在相对较少的训练步骤后保真度停滞。作者认为原因是过强的第一阶段压缩导致信息丢失,从而限制了可实现的质量 在这里插入图片描述
  • 比较了在 CelebAHQ 和 ImageNet 上训练的模型,针对 DDIM 采样器的不同去噪步骤数量,将其与FID分数绘制在一起。LDM-{4-8} 在感知和概念压缩的不合适比率方面优于其他模型
    在这里插入图片描述

Image Generation with Latent Diffusion
  • 在 CelebA-HQ、FFHQ、LSUN-Churches 和 Bedrooms 上训练了 256^2 图像的无条件模型,并评估了它们的 i) 样本质量和 ii) 对数据流形的覆盖,使用 ii) FID 和 ii) 精度与召回指标进行评测。在CelebA-HQ上,我们报告了一个新的FID记录,为5.11,超过了先前基于似然的模型以及GANs
    在这里插入图片描述
  • 生成效果如下
    在这里插入图片描述
Conditional Latent Diffusion
  • 实现方式:对于文本到图像建模,我们在 LAION-400M 上训练了一个具有 1.45B 参数的 KL 正则化的 LDM,该模型以语言提示为条件

    • 使用BERT-tokenizer,并将 τ θ \tau_\theta τθ 实现为一个 transformer,以推断一个潜在特征,该特征通过(多头)交叉注意力映射到 UNet
  • COCO 上的定量分析结果,classifier-free diffusion guidance 极大提升质量。使用 guide 的 LDM-KL-8-G 基本能基本媲美 AR 方法 Make-A-Scene 和 diffusion 方法 GLIDE
    在这里插入图片描述

  • 基于文本作为条件
    在这里插入图片描述

  • 基于检测框和文本作为条件
    在这里插入图片描述

  • 基于语义分割图作为条件
    在这里插入图片描述

超分应用
  • 低分辨率图片作为条件训练,即可进行超分操作
    在这里插入图片描述

在这里插入图片描述

inpainting 应用

在这里插入图片描述
在这里插入图片描述

Thoughts

  • 比较早期的经典工作,实验非常详尽,将 diffusion 开源效果推到新的高度

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

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

相关文章

VRP的分解策略

关键词 vehicle routing, heuristics, decomposition strategies 文章概述 本文讨论了车辆路径规划启发式算法的分解策略。分解策略包括确定子问题的大小、相关性信息、子问题的解决技术以及利用子问题解的方法。选择合适的子问题大小是控制难度和改进潜力的关键因素。相关性…

项目实战:自动驾驶之方向盘操纵

项目介绍 根据汽车前方摄像头捕捉的画面,控制汽车方向盘转动的方向和角度,这是自动驾驶要解决的核心问题。这个项目主要是通过使用深度神经网络解决一个回归问题。不同于分类、识别场景,回归问题中神经网络输出的是一个连续的值。 通过这个项目的学习,可以将神经网络用于通…

如何用 Cargo 管理 Rust 工程系列 丁

以下内容为本人的学习笔记,如需要转载,请声明原文链接微信公众号「ENG八戒」https://mp.weixin.qq.com/s/PP9b5cSNd-7IqgNovcrB0A 优化输出 前面已经对 cargo package 工程编译输出了好多遍,发现编译结果打印的信息都包含了这个 unoptimize…

cdr格式怎么打开?cdr文件查看工具CDR Viewer功能介绍

CDRViewer Pro for Mac是一款专业的矢量图形文件查看器,主要用于打开、浏览和查看CorelDRAW(CDR)文件。以下是该软件的主要功能和特点: CDR文件支持:CDRViewer Pro可以快速加载和显示CorelDRAW(CDR&#x…

SpringCloud系列(五)| 集成OpenFeign实现服务间调用

前面的案例中我们已经搭建好了SpringCloud的基本架构。目前主要就是三个服务。一个Nacos服务,目前作为我们的注册中心,一个用户服务,一个订单服务。上个章节中,我们已经成功的将用户服务和订单服务注册到了Nacos中,并且…

Linux权限(下)

目录 文件访问权限的设置和更改 粘滞位 权限掩码 本期我们接着进行Linux权限的学习。 文件访问权限的设置和更改 在上期我们学习了文件的访问权限,这些访问权限其实是可以更改的。 chmod指令 chmod指令:用于设置访问权限和更改权限。 :向权限范围…

产品调研——AI平台

本文主要记录了对腾讯云-TIONE平台、华为云-ModelArt等主流AI平台的产品调研。 交互式建模 简单点说就是提供了带训练资源的云IDE,使用形态包括Notebook、VsCode等。 腾讯云-TI平台 TI平台将tensorflow、pytorch、spark环境等均集成到一个Notebook容器中&#xf…

【Java 集合】ArrayBlockingQueue

ArrayBlockingQueue, 顾名思义: 基于数组的阻塞队列, 位于 JUC (java.util.concurrent) 下, 是一个线程安全的集合, 其本身具备了 不支持 null 元素: 存入 null 元素会抛出异常固定容量: 在初始化时需要指定一个固定的容量大小。这意味着一旦队列达到最大容量,将不再…

人工智能原理课后习题(考试相关的)

文章目录 问答题知识表示一阶谓词逻辑表示法语义网络表示法 确定推理谓词公式永真和可满足性内容归结演绎推理 不确定推理主观贝叶斯可信度方法证据理论 搜索策略机器学习 问答题 什么是人工智能? 人工智能就是让机器看起来像人类表现出的智能水平一样 人工智能就是…

磁盘及文件系统(上)

这次博客我们将重点理解Ext2文件系统。 首先我们要理解什么是文件系统。 在之前我们一直理解的文件都是一个被打开的文件,而os为了能够管理这样的文件创建了struct_file这样的结构体对象在内核中描述被打开的文件,这个结构体对象中包含了被打开文件的基…

9、ble_mesh基础

node节点,不属于网络的设备称为未配置设备。未配置的设备无法发送或接收网格消息;但是,它会向 Provisioners 宣传其存在。 Provisioner供应,验证,邀请,加入网络成为节点。 一个节点有多个控制或开关&#x…

音视频学习(二十一)——rtmp收流(tcp方式)

前言 本文主要介绍rtmp协议收流流程,在linux上搭建rtmp服务器,通过自研的rtmp收流库发起取流请求,使用ffmpegqt实现视频流的解码与播放。 关于rtmp协议基础介绍可查看:https://blog.csdn.net/www_dong/article/details/13102607…