Stable Diffusion 是一种生成图像模型,属于扩散模型的一种。它利用扩散过程生成图像,从而在图像生成和编辑任务中表现出色。以下是对 Stable Diffusion 的详细解释和图解:
概述
Stable Diffusion 是一种基于扩散过程的图像生成模型。扩散过程包括两个主要步骤:正向扩散和逆向扩散。
- 正向扩散 (Forward Diffusion): 这个过程将原始图像逐渐加噪声,直到变成纯噪声。
- 逆向扩散 (Reverse Diffusion): 从纯噪声开始,逐步去噪,最终生成新的图像。
具体步骤
-
数据准备:
- 使用大量图像数据训练模型。
- 数据集可以包括各种类型的图像,如自然场景、人像、物体等。
-
正向扩散过程:
- 从初始图像 (x_0) 开始,在每一步 (t) 加入一定量的高斯噪声,生成加噪后的图像 (x_t)。
- 这个过程由一个确定的扩散方程描述:
[
q(x_t | x_{t-1}) = \mathcal{N}(x_t; \sqrt{\alpha_t} x_{t-1}, (1 - \alpha_t) \mathbf{I})
]
-
逆向扩散过程:
- 从纯噪声 (x_T) 开始,逐步去噪,生成新的图像 (x_0)。
- 这个过程由一个逆扩散方程描述:
[
p(x_{t-1} | x_t) = \mathcal{N}(x_{t-1}; \mu_\theta(x_t, t), \Sigma_\theta(x_t, t))
]
-
模型训练:
- 使用变分推理训练模型,通过最小化KL散度来优化模型参数。
- 目标是使生成的图像尽可能接近真实图像。
模型结构
Stable Diffusion 的模型结构通常由多个神经网络组成,这些网络负责正向扩散和逆向扩散过程中的计算。模型的核心部分包括:
- 噪声预测网络: 负责预测每一步中的噪声。
- 去噪网络: 负责在逆向扩散过程中去除噪声,生成新的图像。
图解
-
正向扩散过程:
从左到右,图像逐步加噪,最终变成纯噪声。
-
逆向扩散过程: