分享
图解 :Stable Diffusion
输入“/”快速插入内容
图解 :Stable Diffusion
飞书用户2749
2024年4月8日修改
Stable Diffusion的组成部分
Stable Diffusion
是由几个组件和模型共同组成的,不是一个单一模型。
当我们深入了解的时候,我们首先可以看到一个文本理解组件,它将文本信息转化为数字表示,用于捕获文本中的信息。
50%
50%
刚才我们是从更高层面看的整个模型,接下来本文会深入讲一下机器学习的细节。
其中的文本
编码器
是一个特殊的Transformer语言模型,其实就是
CLIP模型
的文本编码器。文本编码器接受输入文本,输出代表每个单词或
token
的向量。然后将这些信息提供给图像生成器。
50%
50%
图像生成要经过两个阶段:
1.
图像信息生成器
💾
•
这个组件是Stable Diffusion技术的秘密武器。它的实现是Stable Diffusion暴打前人模型获得更好的性能的关键。
•
这个组件通过多个步骤来生成图像信息。步骤 这个是Stable Diffusion的参数,通常默认为50或100。
图像信息生成器
完全在图像信息空间(或潜空间)中运行。我们稍后会详细讨论这意味着什么。这个特性使Stable Diffusion比以前在
像素空间
中工作的扩散模型更快。在技术是线上,这个组件由一个
U-Net神经网络
和一个调
度算法
组成。
“扩散”
一词描述了在这个组件中发生的事情。信息一步步被处理,最后生成高质量的图像(生成这一步是由下一个组件图像解码器进行的)。
50%
50%
2.
图像解码器
图像解码器
用信息生成器中获取的信息 画出图像。它只在整个画图过程结束时运行一次,产生最终的图像。
通过这个,我们可以看到组成
Stable Diffusion
的
三个主要组件
(每个组件都有自己的神经网络):
50%
50%
💾
•
ClipText
:用于文本编码。
◦
输入:文本。
◦
输出:77个标记嵌入向量,每个向量有768个维度。
•
UNet+调度器
:在信息(潜在)空间中逐步处理扩散信息。
◦
输入:文本嵌入和由噪声组成的起始多维数组(结构化数字列表,也称为张量)。
◦
输出:处理后的信息张量。
•
自动编码器-解码器
使用处理后的信息数组绘制最终图像。
◦
输入:处理后的信息数组(维度:(4,64,64))
◦
输出:生成的图像(维度:(3, 512, 512),即(红色/绿色/蓝色,宽度,高度))
所以什么是“扩散”?