Stable Diffusion 模型原理与本地部署实战
背景介绍
Stable Diffusion(简称 SD)是一种基于潜在扩散模型(Latent Diffusion Models, LDMs)的文图生成模型。该模型在 CVPR 2022 上被收录,其核心设计灵感来源于扩散过程模型,并结合了自注意力机制。
与传统扩散模型直接在像素空间操作不同,SD 通过一系列扩散步骤在低维潜在表示空间中生成图像。这种设计显著降低了计算复杂度,使得在消费级显卡上运行成为可能。

核心原理
1. 感知压缩与自编码器
为了降低训练和采样成本,SD 引入了预训练的自编码模型(VAE)。
- 编码器 (Encoder):将输入图像压缩为低维潜在表示(latent representation)。
- 解码器 (Decoder):将潜在表示还原为原始像素空间的图像。
这一步骤被称为'感知压缩',因为它保留了图像的重要特征,同时忽略了高频噪声信息。
2. 潜在扩散过程
扩散模型可视为一种时序去噪自编码器。目标函数旨在预测输入图像中的噪声。在潜在空间中,这一过程由时间条件化的 UNet 结构实现。

这里,$x_t$ 是模型预测的下一个时间步的图像,$x_{t-1}$ 是当前时间步的输入图像,$ε_t$ 是从均匀分布中采样得到的噪音。
在潜在扩散模型中,引入了预训练的感知压缩模型。这个感知压缩模型包括一个编码器 E 和一个解码器 D。相应的目标函数可以被表述如下:

在这里,$z_t$ 是模型预测的下一个时间步的潜在表示,$E_φ$ 是编码器,$D_φ$ 是解码器,$φ$ 是编码器和解码器的参数。
3. 条件机制
通过引入条件变量 $c$(如文本描述),利用 Cross-Attention 机制控制图像生成。这使得模型能够根据文本提示词生成符合语义的图像。
本地部署实战
环境准备
建议使用配备 NVIDIA 显卡的设备,显存建议 6GB 以上。确保系统能访问 GitHub 并安装 Git 工具。
推荐使用 Conda 管理 Python 环境:
conda create -n sd python=3.10.9
conda activate sd
获取代码
拉取官方 WebUI 仓库:
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
进入项目目录后,Windows 用户直接运行 webui-user.bat 进行初始化安装。Linux 用户则使用 。














