stable-diffusion
开源文生图里程碑,Latent Diffusion 技术让 AI 图像生成在消费级 GPU 上成为可
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
开源文生图里程碑,Latent Diffusion 技术让 AI 图像生成在消费级 GPU 上成为可
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
2015年,当Ludwig Rombach(罗宾·隆巴赫)在慕尼黑工业大学的计算机视觉实验室里开始研究如何让机器"看懂"图像时,他或许想不到,七年后这项技术会以「Stable Diffusion」的名义,成为全球数千万用户手中的"魔法画笔"。2022年8月,CompVis实验室联合Stability AI和Runway,将团队潜心研发的Latent Diffusion Model(潜在扩散模型)开源发布——这是历史上第一个能在消费级GPU上运行的高质量文生图AI模型。
在此之前,OpenAI的DALL·E 2和Google的Imagen已经展示了AI画图的惊人潜力,但它们都依赖庞大的计算资源,普通用户根本无法触及。Stable Diffusion的出现彻底改变了这一局面:它把扩散模型的工作空间从像素空间压缩到了"潜在空间"(latent space),从而将算力需求降低了数十倍。8600万下载量、GitHub 73,044颗星,这个数字本身就是对它历史地位的最佳注解。
图1:Stable Diffusion生成的AI画作示例
Stable Diffusion本质上是一个条件生成模型(Conditional Generative Model)。当用户输入一段文字描述(比如"一只穿着宇航服的猫在火星上弹吉他"),模型会经历以下三个核心步骤:
第一步:文字编码(Text Encoding)
模型首先使用CLIP ViT-L/14(OpenAI开发的多模态Transformer模型)将文字转换为数学向量。这个向量不是简单的关键词匹配,而是捕捉了语义层面的关联——"宇航服"和"太空"有关,"猫"和"动物"有关,整个描述被编码成一个1024维的向量,传递给扩散模型作为"生成指令"。
值得注意的是,这里的CLIP编码器是冻结的(Frozen)——训练Stable Diffusion时不会更新CLIP的权重。这避免了对大规模图文对数据的依赖,直接借助了OpenAI在4亿图文对上训练的成果。
第二步:潜在空间扩散(Latent Diffusion)
这是Stable Diffusion最核心的创新。传统扩散模型(如DALL·E 2使用的模型)在像素空间直接进行"加噪→去噪"操作。以512×512的RGB图像为例,每次迭代都要处理 512×512×3 = 786,432 个数值,计算量惊人。
Stable Diffusion引入了**变分自编码器(VAE, Variational Autoencoder)**来解决这个问题:
这种"压缩-生成-解压"的两阶段范式,是LDM论文的核心贡献,也正是Stable Diffusion能在16GB显存的消费级GPU上跑起来的关键原因。
图2:Stable Diffusion v1各版本的评估分数对比
第三步:图像增强(Guidance & Sampling)
为了提高生成质量,Stable Diffusion使用了Classifier-Free Guidance(无分类器引导)技术。简单来说,模型同时训练"有条件生成"和"无条件生成"两种能力,然后在推理时将两者的差异放大。这让用户可以通过调整"引导强度"参数(通常设为7-12)来控制生成图像对文字描述的忠实程度。
在采样算法上,仓库代码支持DDPM、DDIM和DPM-Solver等多种采样器。其中DDIM在保持质量的同时将采样步数从50+步减少到20-30步,大幅加快了生成速度。
Stable Diffusion v1是一个精心调优的模型配置:
v1.4版本在训练中将10%的文本条件随机丢弃,这种"Classifier-Free Guidance"技巧显著提升了模型的文本-图像对齐能力。
图3:不同文本条件下的Stable Diffusion采样结果
stable-diffusion/
├── main.py # PyTorch Lightning训练入口
├── setup.py # pip install包定义
├── environment.yaml # Conda环境配置
├── configs/ # YAML超参数配置
│ ├── stable-diffusion/ # SD专用配置
│ ├── autoencoder/ # VAE配置
│ └── latent-diffusion/ # LDM基础配置
├── ldm/ # 核心扩散模型代码
│ ├── models/
│ │ ├── diffusion/ # DDPM/DDIM/DPM-Sampler实现
│ │ └── autoencoder.py # VAE模型
│ ├── modules/
│ │ ├── attention.py # 注意力机制(QKV实现)
│ │ ├── diffusionmodules/ # 扩散模块U-Net
│ │ └── encoders/ # 文本/图像编码器
│ └── data/ # 数据集加载
├── scripts/ # 推理脚本
│ ├── txt2img.py # 文生图入口
│ ├── img2img.py # 图生图(Image-to-Image)
│ └── inpaint.py # 局部重绘
└── assets/ # 示例图像资源
训练框架:项目使用PyTorch Lightning作为训练框架,相比原生PyTorch,Lightning自动处理了多GPU分布式训练、混合精度训练(AMP)、学习率调度、checkpoint管理等繁琐细节。main.py中的Trainer类封装了几乎所有分布式训练的复杂性。
扩散采样器(ldm/models/diffusion/):代码实现了三种采样器——经典DDPM采样(步数50-1000步)、DDIM加速采样(20-50步)、DPM-Solver最新求解器(10-20步即可生成高质量图像)。
UNet架构(ldm/modules/diffusionmodules/):采用跨步卷积(strided convolutions)进行下采样,配合自注意力(self-attention)和交叉注意力(cross-attention)机制。交叉注意力层负责接收来自CLIP文本编码器的条件信息。
Streamlit Web界面:项目包含Streamlit界面支持,用户可通过简单的Web界面调节参数、输入文字描述并生成图像。通过pip安装streamlit>=0.73.1即可启动。
| 组件 | 技术 | 说明 |
|---|---|---|
| 生成模型 | Latent Diffusion Model | 潜在空间扩散,核心生成引擎 |
| 文本编码 | CLIP ViT-L/14 | OpenAI冻结文本编码器 |
| 变分自编码器 | VAE(VQ-VAE变体) | 图像压缩与重建 |
| 注意力机制 | Multi-head Cross-Attention | UNet中注入文本条件 |
| 采样算法 | DDIM / DPM-Solver | 快速高质量采样 |
| 安全过滤 | Safety Checker | NSFW内容检测 |
| 训练框架 | PyTorch Lightning | 分布式训练封装 |
Stable Diffusion的训练数据来自LAION-5B——一个包含从互联网上抓取的58亿图文对的数据库。这些数据中不可避免地包含了受版权保护的艺术家作品、照片和商标图案。2023年初,多位艺术家对Stability AI提起集体诉讼,指控其未经授权使用版权作品进行训练。
从技术角度,Stable Diffusion确实"记住"了某些训练数据的特征——在特定提示词下,模型可能生成与某位艺术家风格高度相似的图像,尽管没有直接复制像素。
开源发布后,Stable Diffusion被广泛用于生成深度伪造(Deepfake)图像、虚假新闻图片和NSFW内容。虽然项目内置了StableDiffusionSafetyChecker,但其检测能力有限。这促使研究社区和立法机构加速讨论AI生成内容的治理框架。
Stable Diffusion的意义远超技术本身。它的开源发布代表了AI发展史上的一个转折点:基础模型的能力第一次以可及的方式向公众开放。
在此之前,文生图模型的进展主要发生在闭源实验室:DALL·E 2需要排队申请,Imagen从不公开,Midjourney需要付费订阅。Stable Diffusion的开源打破了这一格局——任何有台好一点电脑的人都可以本地运行一个曾经需要数据中心级算力才能训练的模型。
这种"民主化"带来了连锁反应:
从GitHub趋势看,Stable Diffusion仓库至今仍保持活跃维护(最近更新于2026年5月),issue和PR持续增长。它不仅是 Diffusion Model 领域最具影响力的开源实现,更成为了一个活跃的AI开源社区的起点。
图4:Stable Diffusion文生图能力的多样性展示
CompVis/stable-diffusion是Latent Diffusion Model(潜在扩散模型)的官方PyTorch实现,也是AIGC(AI生成内容)浪潮中最具里程碑意义的开源项目之一。它以消费级GPU可运行的算力门槛,实现了与闭源商业系统相当的图像生成质量,将文生图技术真正推向了大众。
对于AI爱好者,它是体验AI创作魅力的最佳起点;对于AI开发者,它是理解扩散模型原理、构建AI应用的基础框架。尽管存在版权争议、安全风险和技术局限,但它的开源精神和深远影响已足以在AI发展史上留下浓墨重彩的一笔。