Stable Diffusion是潜扩散模型的一个杰出代表,是目前多模态LLM的基础。
这里系统梳理Stable Diffusion模型的理论基础DDPM,并重点推导其扩散公式。
所用示例参考和修改自网络资料。
1 去噪扩散概率模型
DDPM(Denoising Diffusion Probabilistic Models)是Stable Diffusion的理论基础,定义一个前向扩散过程和一个反向去噪过程。
1.1 前向扩散过程-加噪
DDPM是一个马尔可夫链过程,逐步向原始数据添加高斯噪声,直到完全变为纯噪声
。
其中是预设的噪声方差表,随时间t增加。
这里可以通过重参数化技巧,直接从计算出第t步的
,而无需逐步迭代。
令,
那么:
经过一系列递归代入和推理,可以得到:
其中。
具体推理和迭代过程参考如下链接
https://blog.csdn.net/liliang199/article/details/156341403
这就是前向扩散的核心公式:
当T足够大时,,
就几乎是纯高斯噪声。
1.2 反向去噪过程-生成
这是SD扩散模型需要学习的部分。
简单说,就是如果能逆转上述过程,即,就可以从噪声
中逐步还原出数据
。
1)学习目标:
因为反向转移难以直接计算,所以这里学习一个参数化的模型
来近似。
2)关键推导:
当足够小时,真实的反向过程也是一个高斯分布。
依据贝叶斯公式,过程如下
由于是马尔可夫链,上式简化为
其中每一项都是高斯分布,并且都已知。
代入高斯分布的概率密度函数,经过复杂的推导过程,可以得到如下结论。
其中:
这里的是在前向过程中从
生成
时加入的噪声。
3)模型训练目标
我们发现这个分布的均值依赖于未知的
和噪声
。
由于在训练时我们有,前向公式
因此,可以表示为
。
代入 表达式,经过化简,最终
可以表示为仅包含
和其包含噪声
的函数。
因此,我们用一个神经网络来预测这个噪声
。
模型的均值就设为:
方差可以固定为或
。
通过最小化模型分布与真实后验分布q的 KL 散度,推导出简洁的训练目标,即损失函数。
其中,
,
,
。
1.3. 采样-生成图像
训练好噪声预测器后,采样过程从随机噪声
开始,执行以下循环:
其中是方差(对应
)。从
迭代到
,最终得到
。
2 Stable Diffusion 的核心创新
直接在像素空间(如512x512x3)进行扩散计算量巨大,Stable Diffusion采用如下机制。
2.1 在潜空间进行扩散
首先,使用一个预训练好的VAE 编码器将图像
压缩到一个更低维的潜变量
。通常维度从数百万像素降低到约 64x64x4,极大减少了计算负担。
然后,整个 DDPM 的前向和反向过程都在这个潜空间中进行,而不是在原始像素空间
中。
最后,生成过程结束时,使用VAE 解码器将潜变量
解码回像素空间图像
。
2.2 条件引导机制
为了实现"文生图",需要将文本提示(如"一只可爱的猫")作为条件注入到去噪过程中。
具体做法是,用一个 CLIP 文本编码器(如 BERT 或 CLIP 的文本编码器)将文本提示编码成特征向量。
在UNet噪声预测器中,通过交叉注意力机制将文本特征注入到模型的中间层。
此时,噪声预测器变为条件型:。
训练目标变为:
其中是文本编码器
。
3 Stable Diffusion总结
Stable Diffusion 模型的理论基础与公式推导可以概括为如下几方面。
3.1 理论基础
建立在去噪扩散概率模型之上,通过定义一个可学习的马尔可夫链来逆转逐步加噪的过程,核心是训练一个噪声预测网络。
3.2 核心公式推导
前向:
反向真实后验:
模型参数化:用预测
,从而得到
。
训练目标:简化的均方误差。
3.3 Stable Diffusion 的创新
将高维像素空间的扩散转移至由 VAE 编码的低维、信息密集的潜空间,大幅提升效率。
通过交叉注意力机制,将文本、图像等条件信息无缝集成到扩散模型的 U-Net 噪声预测器中,实现了高度可控的生成。
这种结合使得 Stable Diffusion 能够在消费级 GPU 上高效生成高质量、符合复杂语义描述的图像,成为扩散模型发展的里程碑。
reference
一文读懂Stable Diffusion 论文原理+代码超详细解读
https://zhuanlan.zhihu.com/p/640545463
Stable Diffusion扩散模型推导公式的基础知识
https://blog.csdn.net/qq_23022733/article/details/137350492
DDPM前向加噪过程详细推导