Stable Diffusion详解

文章目录


前言

Stable Diffusion在图像生成方面取得了很大的成功,其核心原理是LDM(Latent Diffusion Models),在论文《High-Resolution Image Synthesis with Latent Diffusion Models》中被提出,使用潜在扩散模型进行高分辨率图像生成,发表在CVPR2022上。LDM作者和VQGAN的作者相同。接下来对LDM这篇论文进行详细介绍。

一、LDM原理

Diffusion Model(DM)的训练和推理速度太慢,需要占用大量的计算资源。因此LDM想解决的就是在不降低DM的图像生成能力的基础上降低计算量。

论文中总结到,对于基于最大似然的模型,训练可以分为两部分,先是进行感知压缩(perceptual compression),然后进行语义压缩(semantic compression)。(图像感知指的是图像的细节,图像语义指的是图像的主体是什么)。对于DM来说,在进行图像生成的时候,在前面的步骤中先是进行图像的语义生成,也就是确定图像的内容大概是什么东西,接下来的很多步骤都是进行图像的感知生成,也就是负责图像的细节生成。由于DM是在像素层面进行生成,所以计算量很大,并且DM的很多计算量都集中在图像的感知(细节)生成方面。

基于此LDM的目标就是想让DM只负责图像语义方面,而图像的感知(细节)方面交给其他的模型去负责。也就是让DM在潜在空间上去训练和推理。

二、模型结构

LDM的模型结构如上图所示。其主体是由自编码器部分(粉色)、DM部分(绿色)以及条件机制(灰色)三部分组成。在进行图像生成时,首先使用DM进行扩散获得具有语义信息的特征图,然后使用自编码器的解码器进行图像的感知生成获得最终的图片。

这样做有三个好处:1.DM在低维潜在空间进行扩散,计算量减少。2.利用了DM中的UNet模型的归纳偏置,这使得模型可以获得图像的空间结构,不用像之前VQVAE,VQGAN对于输入图像的极致压缩而失去了图像原有的空间结构。3.获得了一个通用的压缩模型,其潜在空间可以用于训练多个生成模型。接下里对LDM的三个部分分别进行介绍。
图像感知压缩

图像感知压缩模型(粉色部分)是基于之前的VQGAN工作,由自编码器组成,在训练时结合了感知损失和对抗损失,避免了只使用L1或L2损失引入的模糊现象。

对于输入的图像,编码器将其进行编码变换到潜在空间,然后解码器在潜在空间重构图像。为了避免高方差分布的潜在空间,LDM引入了两种正则化。一种是KL正则化,一种是VQ正则化。(在VQGAN中通过将潜在空间进行离散化避免高方差,而LDM的潜在空间是连续的。)

VQGAN在潜在空间进行自回归建模生成采样的时候,是使用的Transformer模型,相当于采样的是一维的序列,没有图片的空间结构。而LDM在潜在空间进行采样时,是由DM生成的具有归纳偏置的二维分布,具有空间特征结构。因此,LDM生成的图像更好的保留了细节部分。

同时,VQGAN由于使用的是Transformer进行建模采样,受Transformer自身特性影响,其序列长度是一维的且不会很长,这就导致最后将一维序列Reshape成二维特征图的时候特征图尺寸不会很大,所以其采样是高度压缩的,自然生成的图像失去了很多细节。而LDM使用DM生成的本身就是具有归纳偏置的二维特征采样,所以具有生成效果好。
DM

DM模型就是使用经典的DDPM模型,只不过扩散和采样从图像的像素空间转移到了潜在空间。对于DDPM的详细介绍可以看一下这篇博文:
DDPM详解

通过在潜在空间训练DM,可以使DM集中于图片中重要的语义信息减少计算量。

条件机制

在进行条件生成时是在DM的UNet中使用cross-attention机制实现。为了对不同的模态进行处理,使用不同利用的专业编码器 τ θ \tau_\theta τθ(上图灰色部分)对条件进行编码获得 τ θ ( y ) \tau_\theta(y) τθ(y),然后将其输入到UNet中的cross-attention作交叉注意力计算。在进行条件生成的时候,LDM中的DM训练可以表示为下述公式:

三、模型训练与推理

LDM的训练与VQGAN一样是分为两部分。首先是先训练感知自编码器(粉色部分),接着在潜在空间上训练DM。

在进行推理的时候,先使用DM在潜在空间进行采样获得特征图,然后将其给解码器进行最终的图片生成。

总结

LDM通过在潜在空间进行DM训练采样,在没有降低图像生成质量的情况下大大提高了训练和推理速度,同时基于cross-attention条件机制,LDM与当时的SOTA方法相比取得了很好的结果。

相关推荐
程序小旭1 小时前
机器视觉基础—双目相机
计算机视觉·双目相机
qzhqbb1 小时前
基于统计方法的语言模型
人工智能·语言模型·easyui
冷眼看人间恩怨2 小时前
【话题讨论】AI大模型重塑软件开发:定义、应用、优势与挑战
人工智能·ai编程·软件开发
2401_883041082 小时前
新锐品牌电商代运营公司都有哪些?
大数据·人工智能
AI极客菌3 小时前
Controlnet作者新作IC-light V2:基于FLUX训练,支持处理风格化图像,细节远高于SD1.5。
人工智能·计算机视觉·ai作画·stable diffusion·aigc·flux·人工智能作画
阿_旭3 小时前
一文读懂| 自注意力与交叉注意力机制在计算机视觉中作用与基本原理
人工智能·深度学习·计算机视觉·cross-attention·self-attention
王哈哈^_^3 小时前
【数据集】【YOLO】【目标检测】交通事故识别数据集 8939 张,YOLO道路事故目标检测实战训练教程!
前端·人工智能·深度学习·yolo·目标检测·计算机视觉·pyqt
Power20246664 小时前
NLP论文速读|LongReward:基于AI反馈来提升长上下文大语言模型
人工智能·深度学习·机器学习·自然语言处理·nlp
数据猎手小k4 小时前
AIDOVECL数据集:包含超过15000张AI生成的车辆图像数据集,目的解决旨在解决眼水平分类和定位问题。
人工智能·分类·数据挖掘
好奇龙猫4 小时前
【学习AI-相关路程-mnist手写数字分类-win-硬件:windows-自我学习AI-实验步骤-全连接神经网络(BPnetwork)-操作流程(3) 】
人工智能·算法