Stable Diffusion 超详细讲解

在这里插入图片描述

文章目录
    • Diffusion Model
      • Diffusion Model 概览
      • 正向扩散过程
      • 逆向扩散过程
      • 训练
      • 采样
      • 扩散速度问题
    • Stable Diffusion
      • 潜在空间
      • Latent Diffusion
      • 调节机制
      • 训练
      • 采样
    • 架构对比
      • 纯扩散模型
      • Stable Diffusion (潜在扩散模型)
    • 总结

Diffusion Model

Stable Diffusion 脱胎于 Diffusion 模型。因此在搞懂 Stable Diffusion 之前,先搞懂 Diffusion Model 模型非常有必要。这一部分我会带大家大致过一遍 Diffusion Model。如果你想了解 Diffusion Model 的全部细节,可以阅读我之前的文章:《Diffusion Model 深入剖析》

Diffusion Model 概览

在这里插入图片描述

图1. 扩散模型原理概要

Diffusion Model的训练可以分为两部分:

  1. 正向扩散过程 → 为图像添加噪声。
  2. 反向扩散过程 → 去除图像中的噪声。
正向扩散过程

正向扩散过程将高斯噪声逐步添加到输入图像中。我们使用以下闭合公式(推导过程详见《Diffusion Model 深入剖析》)更快地完成噪声添加,从而直接获得特定时间步长 t t t 的噪声图像:
x t = α t ˉ x 0 + 1 − α ˉ t ε x_t=\sqrt{\bar{\alpha_t}}x_0+\sqrt{1-\bar{\alpha}_t}\varepsilon xt​=αt​ˉ​ ​x0​+1−αˉt​ ​ε

逆向扩散过程

由于逆向扩散过程不可直接计算(计算代价太高),我们通过训练神经网络 p θ ( x t − 1 ∣ x t ) p_\theta(x_{t-1}|x_t) pθ​(xt−1​∣xt​) 来近似。

训练目标(损失函数)如下:
L simple = E t , x 0 , ε [ ∣ ∣ ε t − ε θ ( x t , t ) ∣ ∣ 2 ] x t = α t ˉ x 0 + 1 − α ˉ t ε L_{\text{simple}} = \mathbb{E}_{t,x_0,\varepsilon}\Big[||\varepsilon_t-\varepsilon_\theta(x_t,t)||^2\Big]\\ x_t=\sqrt{\bar{\alpha_t}}x_0+\sqrt{1-\bar{\alpha}_t}\varepsilon Lsimple​=Et,x0​,ε​[∣∣εt​−εθ​(xt​,t)∣∣2]xt​=αt​ˉ​ ​x0​+1−αˉt​ ​ε

训练

每一轮训练过程如下:

  • 为每个训练样本(图像)选择一个随机时间步长 t t t。
  • 将高斯噪声(对应于 t t t)应用于每个图像。
  • 将时间步长转换为嵌入(向量)。

在这里插入图片描述

图2. 训练数据集

下面详细解释一下训练步骤是如何工作的:

在这里插入图片描述

图3. 训练步骤图解

采样

采样意味着从高斯噪声图中绘制出图像。下图展示了我们如何使用经过训练的 U-Net 生成图像:

在这里插入图片描述

图4. 采样过程图解

扩散速度问题

如你所见,扩散(采样)过程迭代地将全尺寸图像提供给 U-Net 来获得最终结果。当总扩散步数 T T T 和图像很大时,这种纯扩散模型会非常慢。

为了解决这个问题,Stable Diffusion 应运而生。

Stable Diffusion

Stable Diffusion 一开始的名称是“潜在扩散模型”(Latent Diffusion Model)。顾名思义,Stable Diffusion 发生在潜在空间中。这就是它比纯扩散模型更快的原因。

潜在空间

在这里插入图片描述

图5. 潜在空间

我们首先训练一个自动编码器来学习如何将图像数据压缩成低维表示。

  • 通过使用经过训练的编码器 E E E,我们可以将全尺寸图像编码为低维潜在数据(压缩数据)。
  • 通过使用经过训练的解码器 D D D,我们可以将潜在数据解码回图像。
Latent Diffusion

将图像编码为潜在数据后,将在潜在空间中进行正向和反向扩散过程。

在这里插入图片描述

图6. Stable Diffusion 模型概述

  1. 正向扩散过程 → 向潜在数据添加噪声。
  2. 逆向扩散过程 → 从潜在数据中去除噪声。
调节机制

在这里插入图片描述

图7. 调节机制概述

Stable Diffusion 真正强大之处在于它可以根据文本提示生成图像。这是通过接受调节输入修改内部扩散模型来实现的。

在这里插入图片描述

图8. 调节机制细节

通过使用交叉注意机制增强其去噪 U-Net,将内部扩散模型转变为条件图像生成器。

上图中的开关用于在不同类型的调节输入之间进行控制:

  • 对于文本输入,首先使用语言模型 τ θ \tau_\theta τθ​(例如 BERT、CLIP)将文本转换为嵌入(向量),然后通过(多头)注意力 A t t e n t i o n ( Q , K , V ) Attention(Q, K, V) Attention(Q,K,V) 映射到 U-Net 层。
  • 对于其他空间对齐的输入(例如语义映射、图像、修复),可以使用连接来完成调节。
训练

Stable Diffusion 的训练目标(损失函数)与纯扩散模型中的目标非常相似。 唯一的变化是:

  • 输入潜在数据 z t z_t zt​ 而不是图像 x t x_t xt​。
  • 向 U-Net 添加了条件输入 τ θ ( y ) \tau_\theta(y) τθ​(y)。

所以 Stable Diffusion 的损失函数是这样的:
L L D T = E t , z 0 , ε , y [ ∥ ε − ε θ ( z t , t , τ θ ( y ) ) ∥ 2 ] L_{LDT} = \mathbb{E}_{t,z_0,\varepsilon,y}\Big[\Vert \varepsilon-\varepsilon_\theta\big(z_t,t,\tau_\theta(y)\big)\Vert^2\Big] LLDT​=Et,z0​,ε,y​[∥ε−εθ​(zt​,t,τθ​(y))∥2]
其中 z t = α ˉ t z 0 + 1 − α ˉ t ε z_t = \sqrt{\bar\alpha_t}z_0 + \sqrt{1-\bar\alpha_t}\varepsilon zt​=αˉt​ ​z0​+1−αˉt​ ​ε, z 0 = E ( x 0 ) z_0 = E(x_0) z0​=E(x0​) ; τ θ ( y ) \tau_\theta(y) τθ​(y) 是输入调节。

采样

在这里插入图片描述

图9. Stable Diffusion 采样过程(去噪)

由于潜在数据的大小比原始图像小得多,因此去噪过程会快得多。

架构对比

最后,让我们比较一下纯扩散模型和 Stable Diffusion(潜在扩散模型)的整体架构。

纯扩散模型

在这里插入图片描述

图10. 纯扩散模型架构

Stable Diffusion (潜在扩散模型)

在这里插入图片描述

图11. Stable Diffusion 架构

总结

  • Stable Diffusion(潜在扩散模型)在潜在空间中进行扩散过程,因此它比纯扩散模型快得多。
  • 扩散模型核心被修改为接受条件输入,如文本、图像、语义图等。

关于AI绘画技术储备

学好 AI绘画 不论是就业还是做副业赚钱都不错,但要学会 AI绘画 还是要有一个学习规划。最后大家分享一份全套的 AI绘画 学习资料,给那些想学习 AI绘画 的小伙伴们一点帮助!

👉[[CSDN大礼包:《StableDiffusion安装包&AI绘画入门学习资料》免费分享]]安全链接,放心点击

对于0基础小白入门:

如果你是零基础小白,想快速入门AI绘画是可以考虑的。

一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以找到适合自己的学习方案

包括:stable diffusion安装包、stable diffusion0基础入门全套PDF,视频学习教程。带你从零基础系统性的学好AI绘画!

零基础AI绘画学习资源介绍

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

(全套教程文末领取哈)
在这里插入图片描述

👉AI绘画必备工具👈

在这里插入图片描述

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

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
在这里插入图片描述
温馨提示:篇幅有限,已打包文件夹,获取方式在:文末

👉大厂AIGC实战案例👈

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
在这里插入图片描述

👉12000+AI关键词大合集👈

在这里插入图片描述
这份完整版的学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

  • 9
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值