Stable Diffusion的原理

这篇具有很好参考价值的文章主要介绍了Stable Diffusion的原理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

CSDN-markdown语法之怎样使用LaTeX语法编写数学公式

参考视频:【diffusion】扩散模型详解!原理+代码!

用一颗桃树为你讲清楚 知识点:AI绘图原理 Diffusion扩散模型
Windows深度学习环境搭建:Windows深度学习环境搭建

绘图的过程:逆向降噪的过程
例如将一个掉满花瓣的草地复原成原来没有掉落花瓣的样子就是逆向降噪。
花瓣掉落在一个干净的地面就是加噪的过程。
Stable Diffusion的原理
模型先给出一个模糊的图片,然后逐渐使得这个图片更加清晰

1、为什么要加噪点
答:给图片降维
相同大小下学习更多图片
相同数量下需要更少算力

2、如何降噪
VAE、U-Net、Clip
prompt–>picture:
首先需要一个模型库(这里的模型可以对图片进行降噪)
其次能识别语义:每个词都AI看来都是一个数字,使用Transformer对文字进行降维,Stable Diffusion的原理
AI模型通过学习将文字的坐标和模型中能画的图片的坐标对应起来,之后进行迭代,图片就会变得清楚,

理论指导实操

最终的目的是使用DALLE·2
DALLE不是基于GAN的
Diffusion Model取代了GAN

先学Diffusion Model
Diffusion Model(扩散模型):
能做的:去噪、文本生成图片
Stable Diffusion的原理
本质上是在解决:
GAN会取巧,在训练时太难,模型在训练不容易收敛
DM用了一种更加简单的方法诠释了生成模型如何学习以及生成,其实感觉更简单

前向过程(扩散过程):加噪音

Stable Diffusion的原理

时刻数:2000
加噪的量应该是越来越多的,试想在第100步往第101步上加噪音的时候,第100步对应的图片上面附带的噪音已经很多了,这时必须多加一点噪声才合理,不然只添加一点噪音基本是没有对图片有太大的改变的,而在第一步往第二步上加的时候,只加一小部分噪音,这个噪音对原图的的改变已经相对比较大的了

理解第一个公式:

Stable Diffusion的原理
xt和xt-1在整个序列过程中状态最为相似的,xt和xt-1之间的关系使用红色框出的公式表示。
随着t的增大,βt 越大,αt越小(且αt介于0到1之间), α t \sqrt {α_t} αt 值越小 1 − α t \sqrt {1-α_t} 1αt 越大,如果不清楚这个变化,请看 x \sqrt {x} x 的函数图像(单调上升)
以上的分析可以看出随着加噪的进一步推进,前一时刻的状态所占的比例越来越小,噪声所占的比例越来越大

z t z_t zt是符合高斯分布

x t − 1 = α t − 1 x t − 2 + 1 − α t − 1 z 2 (1) x_{t-1}=\sqrt {α_{t-1}}x_{t-2}+\sqrt {1-α_{t-1}}z_2\tag{1} xt1=αt1 xt2+1αt1 z2(1)
带入下式:
x t = α t x t − 1 + 1 − α t z 1 (2) x_{t}=\sqrt {α_t}x_{t-1}+\sqrt {1-α_{t}}z_1\tag{2} xt=αt xt1+1αt z1(2)

x t x_{t} xt= α t \sqrt {α_t} αt ( α t − 1 \sqrt {α_{t-1}} αt1 x t − 2 x_{t-2} xt2+ 1 − α t − 1 \sqrt {1-α_{t-1}} 1αt1 z 2 z_2 z2)+ 1 − α t \sqrt {1-α_{t}} 1αt z 1 z_1 z1
= α t \sqrt {α_t} αt α t − 1 \sqrt {α_{t-1}} αt1 x t − 2 x_{t-2} xt2+ α t \sqrt {α_t} αt 1 − α t − 1 \sqrt {1-α_{t-1}} 1αt1 z 2 z_2 z2+ 1 − α t \sqrt {1-α_{t}} 1αt z 1 z_1 z1
= α t α t − 1 \sqrt {α_tα_{t-1}} αtαt1 x t − 2 x_{t-2} xt2+ α t ( 1 − α t − 1 ) \sqrt {α_t(1-α_{t-1})} αt(1αt1) z 2 z_2 z2+ 1 − α t \sqrt {1-α_{t}} 1αt z 1 z_1 z1
= α t α t − 1 \sqrt {α_tα_{t-1}} αtαt1 x t − 2 x_{t-2} xt2+( α t ( 1 − α t − 1 ) \sqrt {α_t(1-α_{t-1})} αt(1αt1) z 2 z_2 z2+ 1 − α t \sqrt {1-α_{t}} 1αt z 1 z_1 z1)
化简得:
其中每次加入的噪声 z 1 z_1 z1 z 2 z_2 z2都是服从高斯分布的,即 z 1 , z 2 z_1,z_2 z1z2,… ~ N ( 0 , I ) N(0,I) N(0,I),可以证明
1 − α t \sqrt {1-α_{t}} 1αt z 1 z_1 z1服从N(0, 1 − α t {1-α_{t}} 1αt)
α t ( 1 − α t − 1 ) \sqrt {α_t(1-α_{t-1})} αt(1αt1) z 2 z_2 z2服从N(0, α t ( 1 − α t − 1 ) {α_t(1-α_{t-1})} αt(1αt1))
可以证明
1 − α t \sqrt {1-α_{t}} 1αt z 1 z_1 z1+ α t ( 1 − α t − 1 ) \sqrt {α_t(1-α_{t-1})} αt(1αt1) z 2 z_2 z2服从N(0, 1 − α t α t − 1 1-{α_t}α_{t-1} 1αtαt1)
因此上式可写为
x t = α t α t − 1 x t − 2 + 1 − α t α t − 1 z 2 ˉ (3) x_{t}=\sqrt {α_tα_{t-1}}x_{t-2}+\sqrt {1-{α_t}α_{t-1}}\bar{z_2}\tag{3} xt=αtαt1 xt2+1αtαt1 z2ˉ(3)
其中 z 2 ˉ \bar{z_2} z2ˉ服从N(0, 1 − α t α t − 1 1-{α_t}α_{t-1} 1αtαt1)分布

由此类推:
x t = α t α t − 1 α t − 2 x t − 3 + 1 − α t α t − 1 α t − 2 z 3 ˉ (4) x_{t}=\sqrt {α_tα_{t-1}α_{t-2}}x_{t-3}+ \sqrt {1-{α_t}α_{t-1}α_{t-2}} \bar{z_3}\tag{4} xt=αtαt1αt2 xt3+1αtαt1αt2 z3ˉ(4)
因此:
x t = α t α t − 1 α t − 2 . . . α 1 x 0 + 1 − α t α t − 1 α t − 2 . . . α 1 z t ˉ (5) x_{t}=\sqrt {α_tα_{t-1}α_{t-2}...α_{1}}x_{0}+ \sqrt {1-{α_t}α_{t-1}α_{t-2}...α_{1}} \bar{z_t}\tag{5} xt=αtαt1αt2...α1 x0+1αtαt1αt2...α1 ztˉ(5)
简写为
x t = α ˉ t x 0 + 1 − α ˉ t z t ˉ (6) x_{t}=\sqrt {\barα_t}x_{0}+ \sqrt {1-{\barα_t}} \bar{z_t}\tag{6} xt=αˉt x0+1αˉt ztˉ(6)
其中
α ˉ t = α t α t − 1 α t − 2 . . . α 1 (7) {\barα_t}={α_tα_{t-1}α_{t-2}...α_{1}}\tag{7} αˉt=αtαt1αt2...α1(7)
z t ˉ 服从 N ( 0 , 1 − α t α t − 1 α t − 2 . . . α 1 I ) (8) \bar{z_t}服从N(0,{1-{α_t}α_{t-1}α_{t-2}...α_{1}I})\tag{8} ztˉ服从N(0,1αtαt1αt2...α1I)(8)
由(6)式可知,想要求第 t 个 x t x_t xt 只需要初始状态 x 0 x_0 x0 以及要求第几步即 t t t 值即可

(6)式是第一个最核心的公式

去噪

目的是

补充知识:

1.高斯分布又称正态分布,
2. N ( 0 , σ 1 2 I ) + N ( 0 , σ 2 2 I ) N(0,\sigma_1^2 I)+N(0,\sigma_2^2I) N(0,σ12I)+N(0,σ22I) ~ N ( 0 , ( σ 1 2 + σ 2 2 ) I ) ) N(0,(\sigma_1^2+\sigma_2^2) I)) N(0,(σ12+σ22)I)
3.经典贝叶斯公式:
P ( A , B ) = P ( B ∣ A ) ∗ P ( A ) = P ( A ∣ B ) ∗ P ( B ) P(A,B)=P(B|A)*P(A)=P(A|B)*P(B) P(A,B)=P(BA)P(A)=P(AB)P(B)
多元情况贝叶斯公式推广:
P ( A ∣ B , C ) = P ( A , B , C ) P ( B , C ) = P ( C , B , A ) P ( B , C ) = P ( C ∣ B , A ) P ( B , A ) P ( B , C ) = P ( C ∣ B , A ) P ( B ∣ A ) P ( A ) P ( C ∣ B ) ∗ P ( B ) P(A|B,C) = \frac {P(A,B,C)}{P(B,C)} = \frac {P(C,B,A)}{P(B,C)} = \frac {P(C|B,A)P(B,A)}{P(B,C)} = \frac {P(C|B,A)P(B|A)P(A)}{P(C|B)*P(B)} P(AB,C)=P(B,C)P(A,B,C)=P(B,C)P(C,B,A)=P(B,C)P(CB,A)P(B,A)=P(CB)P(B)P(CB,A)P(BA)P(A)
P(A)称为先验概率(prior), 事件A发生的概率有多大
P(B)称为证据(evidence),即无论事件如何,事件B(或evidence)的可能性有多大
P(A|B)称为后验概率(posterior),这是我们需要结合先验概率和证据计算之后才能知道的。
P(B|A)称为似然(likelihood),在事件A发生的情况下,事件B(或evidence)的概率有多大
4.U-Net:
为什么使用U-net?

后向过程:去噪

推导过程:
Stable Diffusion的原理

CPU的核心:是指计算机处理器中独立运算的处理单元,可以同时执行不同的指令,它们的数量称为CPU的核心数。例如,四核CPU就有四个独立的核心,八核CPU就有八个独立的核心。线程是指CPU处理器中可以独立运行的最小单位,一个线程是CPU处理器上的一个单独的执行序列。每个线程都可以同时执行一个独立的指令序列。线程数是指CPU能够同时处理的线程数量。例如,如果CPU具有8个线程,则在执行任务时,可以同时处理8个线程。
一个处理器核心只能同时执行一个指令序列,因此,多核处理器可以同时处理多个指令序列,提高计算机的处理能力。而线程数则决定了CPU可以同时处理多少个任务。因此,CPU的核心数和线程数越多,计算机的处理能力越强大,可以同时运行更多的程序和应用程序,提高了计算机的效率和性能。

CPU的线程数:CPU的线程数表示CPU可以同时执行的任务数量。线程数与核数的联系分两种:CPU支持超线程技术,那么线程数=核心数*2;不支持超线程,线程数=核心数。

主频:手机和笔记本CPU作用相似,主要不同的是手机cpu主流是ARM架构,电脑cpu是X86的架构。CPU主频指的是CPU中央处理器在工作状况下的频率,通过频率的大小来显示着CPU主频的高低,CPU主频在衡量一个CPU性能方面的一个衡量标准,CPU主频对于一个中央处理器来说是有很大影响的。CPU主频主频越高,这就说明它的性能越好,对于数据的处理速度也会有所提升。就好比一个CPU一个小时的工作时间内,如果它的主频是2GHz的话,那么它就会比1GHz的CPU主频速度要快一倍;两个不同频率的CPU的在达到相同的工作质量,CPU主频高的那款CPU会比CPU主频低的那款CPU所耗时少一半。

显存

显卡

内存

硬盘

固态

机箱:塔式机箱

CPU的核心:>=12个核心
机箱:
CPU:高频优先
内存:
系统盘:
数据盘:4T
GPU:N卡 3090 * 2
显存:12G 以上
CUDA环境:
操作系统:windows server 2022
主板平台:

CPU我们需要注意它的核心数、主频和功耗

内存我们要注意它的容量和频率

硬盘我们要注意它的带宽、IOPS、容量以及协议

GPU我们要注意它的CUDA Cores、Tensor Cores、显存、浮点计算能力以及GPU-GPU带宽

cpu:Intel酷睿 i9 12900K
主板:微星MAG B660M MORTAR DDR4
内存:64GB 三星DDR4-RECC
固态硬盘:2TB 三星980 NVMe M.2
显卡:双卡 Nvidia RTX 3090Ti
操作系统(厂家安装):Ubuntu 20.04 LTS 64位 服务器版

预算问题

预算问题是我们在深度学习服务器选择时绕不开的问题。那么,在我们预算有限情况下,该如何进行配置选择呢?请谨记以下原则:

GPU >SSD >内存 >CPU

CPU主频 > CPU核心文章来源地址https://www.toymoban.com/news/detail-490888.html

到了这里,关于Stable Diffusion的原理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Stable Diffusion的原理

    CSDN-markdown语法之怎样使用LaTeX语法编写数学公式 参考视频:【diffusion】扩散模型详解!原理+代码! 用一颗桃树为你讲清楚 知识点:AI绘图原理 Diffusion扩散模型 Windows深度学习环境搭建:Windows深度学习环境搭建 绘图的过程:逆向降噪的过程 例如将一个掉满花瓣的草地复原成

    2024年02月09日
    浏览(64)
  • stable diffusion原理

    隐空间是压缩数据的一个表示。数据压缩的目的是学习数据中较重要的信息。以编码器-解码器网络为例,首先使用全卷积神经网(FCN)络学习图片特征,我们将特征提取中对数据的降维看作一种有损压缩。但是由于解码器需要重建(reconstruct)数据,所以模型必须学习如何储存所有

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

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

    2024年02月03日
    浏览(68)
  • Stable Diffusion原理说明

    本文参考:深入浅出讲解Stable Diffusion原理,新手也能看明白 - 知乎 目录 1、Stable Diffusion能做什么? 2、扩散模型(Diffusion model) (1)前向扩散(Forward Diffusion) (2)反向扩散(Reverse Diffusion) (3)如何训练  3、Stable Diffusion Model (1)潜在扩散模型(Latent diffusion model) (

    2024年02月11日
    浏览(43)
  • Stable Diffusion从原理到应用-数学原理

    在第一眼看到Stable Diffusion Web UI界面的时候,是不是被满屏的参数设置搞蒙了,反正无脑拷贝教程上的设置就好,不过一旦想自己生成一些有创意的图片或自己训练一个模型好像就玩不转了,还是得研究那些参数啊。如果你恰好学过随机过程、线性代数辣么这里用到的数学原

    2024年02月12日
    浏览(53)
  • AI 绘画Stable Diffusion 研究(七) 一文读懂 Stable Diffusion 工作原理

    大家好,我是风雨无阻。 本文适合人群: 想要了解AI绘图基本原理的朋友。 对Stable Diffusion AI绘图感兴趣的朋友。 本期内容: Stable Diffusion 能做什么 什么是扩散模型 扩散模型实现原理 Stable Diffusion 潜扩散模型 Stable Diffusion文本如何影响图片生成 Stable Diffusion Cross-attention 技术

    2024年02月13日
    浏览(61)
  • Stable Diffusion的数学原理

    Stable Diffusion是一种深度学习模型,用于生成和操作图像。它主要基于变分自编码器(Variational Autoencoders, VAEs)和扩散模型(Diffusion Models)的结合。下面是这些关键概念的详细解释: 变分自编码器是一种生成模型,用于学习输入数据的潜在表示。VAE包括两部分:编码器和解码

    2024年02月03日
    浏览(33)
  • stable diffusion简介和原理

    Stable Diffusion中文的意思是稳定扩散,本质上是基于AI的图像扩散生成模型。 Stable Diffusion是一个引人注目的深度学习模型,它使用潜在扩散过程来生成图像,允许模型在生成图像时考虑到文本的描述。这个模型的出现引起了广泛的关注和讨论,不仅因为它在技术上的创新,还

    2024年02月08日
    浏览(45)
  • Stable Diffusion——stable diffusion基础原理详解与安装秋叶整合包进行出图测试

    在2022年,人工智能创作内容(AIGC)成为了AI领域的热门话题之一。在ChatGPT问世之前,AI绘画以其独特的创意和便捷的创作工具迅速走红,引起了广泛关注。随着一系列以Stable Diffusion、Midjourney、NovelAI等为代表的文本生成图像的跨模态应用相继涌现与Stable Diffusion的开源,Stab

    2024年02月21日
    浏览(45)
  • Stable Diffusion背后原理(Latent Diffusion Models)

    2023年第一篇博客,大家新年好呀~ 这次来关注一下Stable Diffusion背后的原理,即 High-Resolution Image Synthesis with Latent Diffusion Models 这篇论文。 之前关注的那些工作只能工作到 256 × 256 256 times 256 256 × 256 像素(resize成这个后才输入模型),甚至更低。 然而这篇 Latent Diffusion Models 可以

    2024年01月18日
    浏览(38)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包