参考英文文献:The Illustrated Stable Diffusion – Jay Alammar – Visualizing machine learning one concept at a time.
在这个Stable Diffusion模型的架构图中,VAE(变分自编码器)模型对应的是图中的 E 和 D 部分。
具体来说:
- E(Encoder): 这是VAE的编码器部分。它接收输入图像 x0,并将其编码为潜在空间表示 z0。
- D(Decoder): 这是VAE的解码器部分。它接收潜在空间表示 z0,并将其解码回图像空间,重构出输入图像。
在Stable Diffusion的工作流程中:
- 训练阶段,VAE用于将高维图像数据压缩到低维潜在空间。
- 生成阶段,扩散模型在这个低维潜在空间中工作,生成新的潜在表示。
- 最后,VAE的解码器 D 用于将生成的潜在表示转换回可视化的图像。
- ,
τ_θ(tau theta)通常是指文本编码器,它用于将输入的文本提示编码成模型可以理解的向量表示。
- CLIP(Contrastive Language-Image Pre-training)是由 OpenAI 开发的模型,用于连接文本和图像。
- 在 Stable Diffusion 中,CLIP 的文本编码器部分被用作 τ_θ(tau theta),即用来将文本提示转换为模型可理解的向量表示。
- UNet的作用:
- UNet是一个神经网络模型,专门用于预测和去除图像中的噪声。
- 在每个步骤中,UNet接收当前的噪声图像,并预测应该去除多少噪声。
- Scheduler的作用:
- Scheduler控制整个去噪过程的节奏和强度。
- 它决定在每个步骤中应该去除多少噪声,以及如何调整这个过程。
- 配合过程: a. 初始化:从完全随机的噪声开始。 b. 迭代过程(重复50次):
- UNet分析当前的噪声图像,预测应该去除的噪声。
- Scheduler根据当前步骤和UNet的预测,计算实际应该去除的噪声量。
- 将计算出的噪声从当前图像中减去,得到稍微清晰一点的图像。
- 在早期步骤,Scheduler可能会让UNet去除较多噪声,以快速形成图像的大致轮廓。
- 在后期步骤,Scheduler可能会减缓去噪速度,让UNet更专注于细节的优化。
- 文本引导:
- 文本编码的信息会输入到UNet中,影响它对噪声的预测。
- 这使得去噪过程能够朝着符合文本描述的方向进行。
- 适应性调整:
- Scheduler可以根据去噪的进展动态调整过程,确保生成的图像既符合文本描述,又保持高质量。
这个过程是逐步进行的。每一步都添加了更多相关信息。为了直观地了解这个过程,我们可以检查随机潜变量数组,看看它是如何转化为视觉噪音的。在这种情况下,视觉检查是通过图像解码器进行的。
扩散发生在多个步骤中,每个步骤在一个输入潜变量数组上操作,并生成另一个潜变量数组,更好地反映输入文本以及模型从训练中捕获的所有图像信息。