全网最全Stable Diffusion原理快速上手,模型结构、关键组件、训练预测方式!!!!

这篇具有很好参考价值的文章主要介绍了全网最全Stable Diffusion原理快速上手,模型结构、关键组件、训练预测方式!!!!。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

手把手教你入门绘图超强的AI绘画程序,用户只需要输入一段图片的文字描述,即可生成精美的绘画。给大家带来了全新保姆级教程资料包(文末可获取)

【AIGC】Stable Diffusion的建模思想、训练预测方式快速

在这篇博客中,将会用机器学习入门级描述,来介绍Stable Diffusion的关键原理。目前,网络上的使用教程非常多,本篇中不会介绍如何部署、使用或者微调SD模型。也会尽量精简语言,无公式推导,旨在理解思想。让有机器学习基础的朋友,可以快速了解SD模型的重要部分。如有理解错误,请不吝指正。

大纲

  1. 关键概念
  2. 模型结构及关键组件
  3. 训练和预测方式

关键概念

名词解释

Stable Diffusion
之所以叫Stable,是因为金主公司叫StabilityAI。

其基础模型是Latent Diffusion Model(LDM),也是本文主要介绍的部分。

模型任务

  1. text-2-img:输入文本描述、输出图像
  2. img-2-img:输入图片及其他文本描述,输出图像

总的来说,不论是输入是文字还是图片,都可以称为是“condition”,用于指引图像生成的“方向”。因此,SD模型的任务,可以统称为是cond-2-img任务。
stable diffusion基础模型训练,stable diffusion,ai绘画,深度学习,AI作画,人工智能

模型结构与关键组件

模型结构
LDM论文结构图,初看时会有点懵,但稍微理解后还是非常清晰准确的。先初步介绍几个大的模块。建议把这张图截图固定在屏幕上,再继续浏览下面的内容。
stable diffusion基础模型训练,stable diffusion,ai绘画,深度学习,AI作画,人工智能

整体输入输出
上图中最左侧的x xx和x ~ \widetilde{x}

是模型的输入与输出,形如[ W , H , C ] [W, H, C][W,H,C]的三维张量,代表一张图像的宽、高和通道数。

需要注意,这里的输入x xx,并不是模型img-2-img中的输入图像,而是模型训练时的原始图像输入。img-2-img的输入图像,是上图中最右侧的Conditioning模块中的images。

像素空间与隐空间
所谓空间,可以理解为数据的表示形式,通常有着不同的坐标轴。

  • 像素空间(Pixel Space),上图左侧,红框部分。通常是人眼可以识别的图像内容。
  • 隐空间(Latent Space),上图中央,绿框部分。通常是人眼无法识别的内容,但包含的信息量与像素空间相近。

像素空间到隐空间

输入的图像x xx,经过Encoder(图中蓝色的E \mathcal{E}E),转换为另一种shape的张量z zz,即称为隐空间。

从压缩角度理解:图像经过转换后,产生的新张量是人眼无法识别的。但其包含的信息量相差不大,数据尺寸却大幅缩小,因此可以看做是一种图像数据压缩方式。

隐空间到像素空间

经过模型处理后的隐向量输出z zz(特指绿框左下角的z zz),经过Decoder(图中蓝色的D \mathcal{D}D),转换回像素空间。

隐空间Diffusion操作
对应图中绿色Latent Space框的上半部分,包括以下三步:

  1. 图像经过Encoder压缩后,得到隐向量表示z = E ( x ) z=\mathcal{E}(x)z=E(x)隐向量
  2. 从1~1000的均匀分布中,随机采样一个整数T TT,称为扩散步数
  3. 对向量z zz加T TT次高斯噪声,满足分布N ( 0 , β t ) N(0, \beta_t)N(0,β t ),得到z T
    z_Tz T ​ 向量
    在这个操作中,有一些有趣的特性:

噪声收敛

加噪声次数足够多时,理论上会得到一组符合高斯分布的噪声。利用这个特性,在预测阶段我们就不需要执行Diffusion操作,只需要采样一组高斯分布的噪声,即代表了z T z_Tz T 。

高斯噪声可加性

当我们需要得到任意时刻的z T· 时,可以直接从z 0 以及一系列β t \beta_tβ

计算得到,只需要采样一次噪声。这部分的具体公式推导,可以参考由浅入深了解Diffusion Model - 知乎 (zhihu.com)。

条件Conditioning

对应图中最右边灰白色框,输入类型包括text、images等。在Conditioning模块中,会执行以下步骤:

  1. 这些“附加信息”会通过对应的编码器τ θ \tau_\thetaτ θ ,转换成向量表示
  2. 转换后的向量,会输入给U-Net,作为其中Attention模块的K、V输入,辅助噪声的预测

在这个模块中,有几个有趣的问题:

为什么需要Conditioning

由于“噪声收敛”特性,当噪声加得比较多时,z T z_Tz
T 已经趋近于一个“纯噪声”了,但训练过程需要比对输入图像x xx和输出图像x ~ \widetilde{x}
的相似度。如何从一个“纯噪声”,还原回与输入图像相似的图像,就必须要给模型提供额外的信息指引,这就是Conditioning的作用。

关键组件

VAE(Variational Auto Encoders)
在LDM中,如何将原始图片“压缩”转换至隐空间,经过处理再转换回来,即使用VAE的Encoder和Decoder。这个模块是预训练好的,在LDM训练时固定住参数。

原理

  1. 原始张量输入,经过非常简单的网络结构,转换成较小的张量
  2. 在Latent张量上,加一点点噪声扰动
  3. 用对称的简单网络结构,还原回原始大小
  4. 对比输入前后的张量是否相似

特点

  1. 网络计算复杂度比较低
  2. Encoder和Decoder可以分开使用
  3. 无监督训练,不需要标注输入的label
  4. 有了噪声扰动之后,Latent Space的距离具有实际物理含义,可以实现例如“(满杯水+空杯子)/ 2 = 半杯水”的操作
    stable diffusion基础模型训练,stable diffusion,ai绘画,深度学习,AI作画,人工智能

CLIP
文本信息如何转换成张量,靠的是CLIP模块。这个模块是预训练好的,在LDM训练时固定住参数。

训练方式

图像以及它的描述文本,经过各自的Encoder转换为向量表示,希望转换后的向量距离相近。经过训练后,文本描述可以映射到向量空间的一个点,其代表的物理含义与原始图像相近。
stable diffusion基础模型训练,stable diffusion,ai绘画,深度学习,AI作画,人工智能

假设无预训练

开个脑洞,假如没有这个模块,直接将文本token化后,去Embedding Table中查表作为文本张量,理论上也是可以训练的,只不过收敛速度会慢很多。

因此,这里使用一个预训练text-2-embedding模块,主要目的是加速训练。CLIP的训练数据集,也选择了和LDM的数据集的同一个(LAION-5B的子集),语义更一致。

模型标识解释

我们经常会看到类似“ViT-L/14”的模型名,表示一种CLIP的结构。具体的,ViT表示Vision Transformer,L表示Large(此外还有Base、Huge),14表示训练时把图像划分成14*14个子图序列输入给Transformer。
stable diffusion基础模型训练,stable diffusion,ai绘画,深度学习,AI作画,人工智能

U-Net
作为LDM的核心组件,U-Net是模型训练过程中,唯一需要参数更新的部分。在这个结构中,输入是带有噪声的隐向量z t 、当前的时间戳t tt,文本等Conditioning的张量表示E EE,输出是z t中的噪声预测。

模型结构

U-Net大致上可以分为三块:降采样层、中间层、上采样层。之所以叫U-Net,是因为它的模型结构类似字母U。
stable diffusion基础模型训练,stable diffusion,ai绘画,深度学习,AI作画,人工智能

降采样层

  1. 时间戳t tt转换为向量形式。用的是“Attention is All you
    Need”论文的Transformer方法,通过sin和cos函数再经过两个Linear进行变换
  2. 初始化输入X = c o n v ( c o n c a t ( z t , E ) ) X = conv(concat(z_t,
    E))X=conv(concat(z t ,E)),其中c o n v convconv是卷积,E EE是Conditioning
  3. 重复以下步骤(a~c)多次,将输入尺寸降至目标尺寸(如上图的4 × 4 4\times44×4)
  4. 重复以下两步多次,训练多个ResBlock和SpatialTransformer层,输入值X XX的尺寸不变
  5. 输入上一层的输出X XX和时间戳向量,给ResBlock
  6. ResBlock的输出,与E EE一起输入给SpatialTransformer,在这里考虑到text等信息 重复多次3~4步,
  7. 通过卷积或Avg-Pooling进行降采样,缩小X XX的尺寸
    stable diffusion基础模型训练,stable diffusion,ai绘画,深度学习,AI作画,人工智能
    stable diffusion基础模型训练,stable diffusion,ai绘画,深度学习,AI作画,人工智能

中间层

很简单,ResBlock + SpatialTransformer + ResBlock,输入X XX尺寸不变。

上采样层

大部分步骤与降采样层一致,只有以下两点不同

  1. 输入X XX需要拼上对应降采样层的输出,称为skip connection,对应U-Net结构图中横向的箭头
    把降采样步骤,换成使用卷积或插值(interpolate)方式来上采样,使得X XX的尺寸增大 输出
  2. 上采样层的输出,会经过normalization + SiLU + conv,得到U-Net的最终

输出

即噪声的预测值,尺寸保持与输入zt 一致。

训练方式

模型更新方式
LDM模型需要训练的部分,只有U-Net的参数。训练的方式,可以简单总结为:

  1. 输入一张图片x xx,以及它的文本描述等Conditioning,一个随机的整数T TT步
  2. 经过Encoder压缩、Diffusion加噪声,得到z T 隐向量
  3. 结合Conditioning,使用U-Net,进行T TT次去噪,得到预测值z 0 向量
  4. 使用Decoder还原回x ~ ,计算x 与x ~ 之间的差距(KL散度),得到模型更新的loss

模型预测方式

  1. 随机一个高斯噪声,作为z T 向量
  2. 输入text等Conditioning,使用U-Net进行指定次数T TT的去噪操作
  3. 使用Decoder还原回x ~ ,得到图像输出

训练、预测过程,在论文中的伪代码为下图所示。
stable diffusion基础模型训练,stable diffusion,ai绘画,深度学习,AI作画,人工智能

AI绘画所有方向的学习路线思维导图

这里为大家提供了总的路线图。它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。如果下面这个学习路线能帮助大家将AI利用到自身工作上去,那么我的使命也就完成了:
stable diffusion基础模型训练,stable diffusion,ai绘画,深度学习,AI作画,人工智能

👉stable diffusion新手0基础入门PDF👈

stable diffusion基础模型训练,stable diffusion,ai绘画,深度学习,AI作画,人工智能

👉AI绘画必备工具👈

温馨提示:篇幅有限,已打包文件夹,获取方式在:文末
stable diffusion基础模型训练,stable diffusion,ai绘画,深度学习,AI作画,人工智能

👉AI绘画基础+速成+进阶使用教程👈

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
stable diffusion基础模型训练,stable diffusion,ai绘画,深度学习,AI作画,人工智能

👉12000+AI关键词大合集👈

stable diffusion基础模型训练,stable diffusion,ai绘画,深度学习,AI作画,人工智能

这份完整版的AI绘画资料我已经打包好,戳下方蓝色字体,即可免费领取!

CSDN大礼包:《全套AI绘画基础学习资源包》免费分享文章来源地址https://www.toymoban.com/news/detail-836460.html

到了这里,关于全网最全Stable Diffusion原理快速上手,模型结构、关键组件、训练预测方式!!!!的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 全网最全stable diffusion图生图教程!!!小白必收藏!!!!

    全网最全stable diffusion图生图教程!!!小白必收藏!!!!

    手把手教你入门绘图超强的AI绘画程序Stable Diffusion,用户只需要输入一段图片的文字描述,即可生成精美的绘画。给大家带来了全新Stable Diffusion保姆级教程资料包(文末可获取) 1.1 传统意义上的喂参考图 我们都知道,模型在运算时是根据我们提供的提示内容来确定绘图方向

    2024年01月16日
    浏览(7)
  • AI绘画:快速上手stable diffusion

    AI绘画:快速上手stable diffusion

    点击↑上方↑蓝色“ 编了个程 ”关注我~ 这是Yasin的第 89 篇原创文章 最近随着Chat GPT的大火,AI绘画也火了起来。尤其是midjourney(以下简称mj),能够通过文本生成AI图片,还能指定各种风格,简直是我们这种又菜又爱玩的福音。 下面是我用mj随便画的一些图: mj上手

    2023年04月22日
    浏览(5)
  • 【 stable diffusion LORA模型训练最全最详细教程】

    【 stable diffusion LORA模型训练最全最详细教程】

    个人网站:https://tianfeng.space/ 其实想写LORA模型训练很久了,一直没时间,总结一下现在主流的两种LORA模型训练方式,分别是朱尼酱的赛博丹炉和秋叶大佬的训练脚本,训练效果应该是赛博丹炉更好,我个人更推荐朱尼酱的赛博丹炉,界面炫酷,操作简单,作者也是花了很多

    2024年02月09日
    浏览(18)
  • 【stable diffusion 小白最全详细使用教程+大模型资源】

    【stable diffusion 小白最全详细使用教程+大模型资源】

    个人网站 :界面图片更清晰,创作不易,麻烦点个赞!!!!感谢 进阶版: https://blog.csdn.net/weixin_62403633/article/details/130748157?spm=1001.2014.3001.5501 模型最终版: https://blog.csdn.net/weixin_62403633/article/details/131089616?spm=1001.2014.3001.5501 稳定扩散算法(stable diffusion)可以应用于图像处理

    2024年02月08日
    浏览(8)
  • AI作画,国风油画风随心定制~ Stable Diffusion模型使用,三步就上手

    AI作画,国风油画风随心定制~ Stable Diffusion模型使用,三步就上手

    最近, AIGC (即 AI Generated Content ,是指利用人工智能技术来生成内容)真的是火出了天际。除了被挤到服务器满负荷的 chatGPT ,另一个也颇受瞩目的领域当属 AI 作画了。利用开源的一类“扩散( diffusion )”模型,你可以随时用AI进行绘画创作。除了常见的网页版注册-输入文

    2023年04月09日
    浏览(5)
  • 当下最强的 AI art 生成模型 Stable Diffusion 最全面介绍

    当下最强的 AI art 生成模型 Stable Diffusion 最全面介绍

    目录 模型生成效果展示(prompt 全公开) 如何注册 Stable Diffusion 使用 SD(dreamstudio.ai )的收费标注如何 SD 提供哪些参数可以设置 如何使用种子来改进一张作品 我用 SD 创作的图片著作权如何归属,可以拿来商用吗? Stable Diffusion 背后的研发团队 SD 是如何训练出来的? SD 是开

    2024年02月03日
    浏览(5)
  • Stable Diffusion模型原理

    Stable Diffusion模型原理

    在Stable Diffusion诞生之前,计算机视觉和机器学习方面最重要的突破是 GAN(Generative Adversarial Networks 生成对抗网络)。GAN让超越训练数据已有内容成为可能,从而打开了一个全新领域——现在称之为生成建模。 然而,在经历了一段蓬勃发展后,GAN开始暴露出一些瓶颈和弊病,

    2024年02月03日
    浏览(14)
  • 智源AI日报(2022-08-26):当下最强的 AI art 生成模型 Stable Diffusion 最全面介绍

    【智源AI日报】每天速读5分钟,AI要事不错过! 欢迎点击这里,关注并订阅智源AI日报。 盘点 | 当下最强的 AI art 生成模型 Stable Diffusion 最全面介绍  看点:程序员漫画家西乔撰文,包括:关于SD的模型效果展示、注册方式、参数设置、收费标准、版权问题、改进方法以及SD研

    2024年02月10日
    浏览(5)
  • 【扩散模型】11、Stable Diffusion | 使用 Diffusers 库来看看 Stable Diffusion 的结构

    【扩散模型】11、Stable Diffusion | 使用 Diffusers 库来看看 Stable Diffusion 的结构

    参考:HuggingFace 参考:https://jalammar.github.io/illustrated-stable-diffusion/ Stable Diffusion 这个模型架构是由 Stability AI 公司推于2022年8月由 CompVis、Stability AI 和 LAION 的研究人员在 Latent Diffusion Model 的基础上创建并推出的。 其原型是(Latent Diffusion Model),一般的扩散模型都需要直接在像

    2024年01月16日
    浏览(15)
  • 【扩散模型】12、Stable Diffusion | 使用 Diffusers 库来看看 Stable Diffusion 的结构

    【扩散模型】12、Stable Diffusion | 使用 Diffusers 库来看看 Stable Diffusion 的结构

    参考:HuggingFace 参考:https://jalammar.github.io/illustrated-stable-diffusion/ Stable Diffusion 这个模型架构是由 Stability AI 公司推于2022年8月由 CompVis、Stability AI 和 LAION 的研究人员在 Latent Diffusion Model 的基础上创建并推出的。 其原型是(Latent Diffusion Model),一般的扩散模型都需要直接在像

    2024年01月18日
    浏览(14)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包