it编程 > 平面设计 > Photoshop

Stable Diffusion(SD)核心基础知识——(文生图、图生图)

106人参与 2024-07-31 Photoshop


stable diffusion是计算机视觉领域的一个生成式大模型,可以用于文生图,图生图,图像inpainting,controlnet控制生成,图像超分等丰富的任务。

一、stable diffusion核心基础原理

(一)stable diffusion模型工作流程

  1. 文生图(txt2img)
    文生图任务是指将一段文本输入到sd模型中,经过一定的迭代次数,sd模型输出一张符合输入文本描述的图片。

在这里插入图片描述

  1. 图生图(img2img)
    图生图任务在输入本文的基础上,再输入一张图片,sd模型将根据文本的提示,将输入图片进行重绘以更加符合文本的描述。

在这里插入图片描述总结:不管是文生图还是图生图,核心模型都是图像优化模块,图像优化模块的输入都是文字+图片,输出都是一张经过优化后的图片。只不过文生图任务中图像优化模块的输入是一张随机生成的噪声图。模型对文字的编码采用clip text encoder模型,对于图片的编码采用vae encoder。

图像优化模块 是由一个u-net网络和一个schedule算法共同组成

(二)stable diffusion模型核心基础原理

  1. sd模型属于扩散模型
  1. sd模型是基于latent的扩散模型

(三)stable diffusion的训练过程

假设我们已经有了一张图像,生成产生一些噪声加入到图像中,然后就可以将该图像视作一个训练样例。使用相同的操作可以生成大量训练样本来训练图像生成模型中的核心组件。基于上述数据集,我们就可以训练出一个性能极佳的噪声预测器,经过训练的噪声预测器可以对一幅添加噪声的图像进行去噪,也可以预测添加的噪声量。

语义信息对图片生成的控制:注意力机制
在sd模型的训练中,每个训练样本都会对应一个标签,我们将对应标签通过clip text encoder输出text embeddings,并将text embeddings以cross attention的形式与u-net结构耦合,使得每次输入的图片信息与文字信息进行融合训练,如下图所示:
在这里插入图片描述

(四)其他主流生成式模型

传统深度学习时代火爆的生成式模型有gan,vae,flow-based model等模型。
在这里插入图片描述

二、stable diffusion核心网络结构

(一)sd模型整体架构

sd模型的工作原理分为以下几个关键步骤:

如下图所示,扩散过程发生在图像信息生成器中,将初始纯噪声潜变量输入到unet网络中并与语义控制向量结合,该过程重复30-50次以不断从纯噪声潜变量中去除噪声变量并不断地将语义信息注入到潜在向量中,可以获得具有丰富语义信息的潜在空间向量(图右下深粉色方块)。采样器负责协调整个去噪过程,并根据设计模式在去噪的不同阶段动态调整unet去噪强度。为了更好地理解这一点,图内显示了通过将初始纯噪声向量和最终去噪潜在向量输入到图像解码器中输出图像的差异。从图中可以看出,纯噪声向量的解码图像由于缺乏任何有用信息也是纯噪声,而去噪潜向量经过50次迭代后的解码图像是有效的并且包含语义信息。
在这里插入图片描述

stable diffusion模型整体上是一个end-to-end模型,主要由vae(变分自编码器,variational auto-encoder),u-net以及clip text encoder三个核心组件构成。
在这里插入图片描述这是原论文采样图,没画训练过程。最左边是像素空间的编码器解码器,最右边是clip把文本变成文本向量,中间上面的就是加噪,下面就是unet预测噪声,然后不停的采样解码得到输出图像。

(二)vae模型

在stable diffusion中,vae(变分自编码器,variational auto-encoder)是基于encoder-decoder架构的生成模型。vae的encoder(编码器)结构能将输入图像转换为低维latent特征,并作为u-net的输入。vae的decoder(解码器)结构能将低维latent特征重建还原成像素级图像。

  1. stable diffusion中vae的核心作用:图像压缩和图像重建
    在这里插入图片描述

  2. stable diffusion中vae的高阶作用:细节微调
    vae模型除了能进行图像压缩和图像重建的工作外,如果我们在sd系列模型中切换不同微调训练版本的vae模型,能够发现生成图片的细节与整体颜色也会随之改变(更改生成图像的颜色表现,类似于色彩滤镜)。

  3. stable diffusion中vae模型的完整结构
    在这里插入图片描述

  4. stable diffusion中vae的训练过程与损失函数

    • l1回归损失:衡量预测值与真实值之间的差异;
    • 感知损失:比较原始图像和生成图像在传统深度学习模型(vgg、resnet、vit等)不同层中的特征图之间的相似度,而不直接进行像素级别的对比;
    • patchgan的判别器损失:使用patchgan的判别器来对vae模型进行对抗训练,通过优化判别器损失,来提升生成图像的局部真实性(纹理和细节)与清晰度;
    • kl正则化进行优化训练:通过引入正则化损失项,来调整latent特征使其零中心化并保持小的方差,进而防止latent空间的任意缩放。

(三)u-net模型

stable diffusion u-net的完整结构图:(图中包含stable diffusion u-net的十四个基本模块)
在这里插入图片描述

(四)clip text encoder模型

参考:
深入浅出完整解析stable diffusion(sd)核心基础知识

(0)
打赏 微信扫一扫 微信扫一扫

您想发表意见!!点此发布评论

推荐阅读

Stable Diffusion 常用放大算法详解

07-31

完整指南:如何使用 Stable Diffusion API

07-31

AI绘画Stable Diffusion 生成模特产品场景图,AI赋能电商真的太酷了!

07-31

从入门到精通:AI绘画与修图实战指南

07-31

unity 接入百度API——AI作画

07-31

还没用过这5个AI绘画工具吗 ?特别好用

07-31

猜你喜欢

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论