106人参与 • 2024-07-31 • Photoshop
stable diffusion是计算机视觉领域的一个生成式大模型,可以用于文生图,图生图,图像inpainting,controlnet控制生成,图像超分等丰富的任务。
总结:不管是文生图还是图生图,核心模型都是图像优化模块,图像优化模块的输入都是文字+图片,输出都是一张经过优化后的图片。只不过文生图任务中图像优化模块的输入是一张随机生成的噪声图。模型对文字的编码采用clip text encoder模型,对于图片的编码采用vae encoder。
图像优化模块 是由一个u-net网络和一个schedule算法共同组成
假设我们已经有了一张图像,生成产生一些噪声加入到图像中,然后就可以将该图像视作一个训练样例。使用相同的操作可以生成大量训练样本来训练图像生成模型中的核心组件。基于上述数据集,我们就可以训练出一个性能极佳的噪声预测器,经过训练的噪声预测器可以对一幅添加噪声的图像进行去噪,也可以预测添加的噪声量。
语义信息对图片生成的控制:注意力机制
在sd模型的训练中,每个训练样本都会对应一个标签,我们将对应标签通过clip text encoder输出text embeddings,并将text embeddings以cross attention的形式与u-net结构耦合,使得每次输入的图片信息与文字信息进行融合训练,如下图所示:
传统深度学习时代火爆的生成式模型有gan,vae,flow-based model等模型。
sd模型的工作原理分为以下几个关键步骤:
如下图所示,扩散过程发生在图像信息生成器中,将初始纯噪声潜变量输入到unet网络中并与语义控制向量结合,该过程重复30-50次以不断从纯噪声潜变量中去除噪声变量并不断地将语义信息注入到潜在向量中,可以获得具有丰富语义信息的潜在空间向量(图右下深粉色方块)。采样器负责协调整个去噪过程,并根据设计模式在去噪的不同阶段动态调整unet去噪强度。为了更好地理解这一点,图内显示了通过将初始纯噪声向量和最终去噪潜在向量输入到图像解码器中输出图像的差异。从图中可以看出,纯噪声向量的解码图像由于缺乏任何有用信息也是纯噪声,而去噪潜向量经过50次迭代后的解码图像是有效的并且包含语义信息。
stable diffusion模型整体上是一个end-to-end模型,主要由vae(变分自编码器,variational auto-encoder),u-net以及clip text encoder三个核心组件构成。
这是原论文采样图,没画训练过程。最左边是像素空间的编码器解码器,最右边是clip把文本变成文本向量,中间上面的就是加噪,下面就是unet预测噪声,然后不停的采样解码得到输出图像。
在stable diffusion中,vae(变分自编码器,variational auto-encoder)是基于encoder-decoder架构的生成模型。vae的encoder(编码器)结构能将输入图像转换为低维latent特征,并作为u-net的输入。vae的decoder(解码器)结构能将低维latent特征重建还原成像素级图像。
stable diffusion中vae的核心作用:图像压缩和图像重建
stable diffusion中vae的高阶作用:细节微调
vae模型除了能进行图像压缩和图像重建的工作外,如果我们在sd系列模型中切换不同微调训练版本的vae模型,能够发现生成图片的细节与整体颜色也会随之改变(更改生成图像的颜色表现,类似于色彩滤镜)。
stable diffusion中vae模型的完整结构
stable diffusion中vae的训练过程与损失函数
stable diffusion u-net的完整结构图:(图中包含stable diffusion u-net的十四个基本模块)
您想发表意见!!点此发布评论
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论