【他山之石】Stable Diffusion 万字长文详解稳定扩散模型-腾讯云开发者社区-腾讯云 (tencent.com)
Stable Diffusion 这个模型架构是由 Stability AI 公司推于2022年8月由 CompVis、Stability AI 和 LAION 的研究人员在 Latent Diffusion Model 的基础上创建并推出的。
其实 Stable Diffusion 本身并不是一个模型,而是一个由多个模块和模型组成的系统架构,它由三大核心部件组成,每个组件都是一个神经网络系统,也称为三大基础模型:
1. CLIPText 用于文本编码,使文本数字化:
2. U-Net + Scheduler 用于逐步处理/扩散被转化到潜空间中的信息:
3. AutoEncoder Decoder (主要是一个VAE:Variational AutoEncoder )使用处理后的信息矩阵解码绘制出最终图像,把潜空间的运算结果解码成实际图片维度:
实际上我们经常说的“Diffusion 扩散”过程并不是 Diffusion 模型的生图过程,而它的反向过程,即反扩散过程,才是真正的生图过程,下面会详细讲解。
生图的过程发生在图中粉红色的部分,即图像信息创建器(Image Information Creator)组件中。这部分同时包含了两个输入,见下图:①从文本编码器( CLIPText模型)输出过来的 Token embeddings 矩阵(图中蓝色网格),和②随机的初始化图像信息矩阵,即潜空间的噪点图(图中透明网格),然后经过图像信息创建器(Image Information Creator)处理后输出③处理过的潜空间图像信息矩阵(图中粉色网格),最终交给图像解码器来绘制成图像。
U-Net的内部结构,主要由残差网络(ResNet)组成
现在让我们加入文本 embedding 向量。此时,在 U-Net 内部可以看到(下图):
于是,最终生成的图像就是我们通过提示词可以控制的图像了。