扩散模型 (Diffusion Model)
扩散模型(Diffusion Model)是一类基于随机扩散过程的生成模型,通过学习逐步去噪的过程来生成高质量的图像、音频和视频。
核心原理
前向扩散过程
逐步向数据添加高斯噪声,直到变成纯噪声:
x_0 → x_1 → x_2 → ... → x_T ≈ 纯噪声
- x_0:原始图像
- x_T:纯噪声
- 每步添加少量噪声
反向去噪过程
学习从噪声逐步恢复原始数据:
x_T → x_{T-1} → ... → x_1 → x_0
- 神经网络预测每步的噪声
- 从噪声中减去预测的噪声
- 迭代直到生成清晰图像
数学表达
前向过程: 在每一步 t,向图像添加高斯噪声,噪声量由参数 β_t 控制。
反向过程: 神经网络学习预测每一步的噪声,然后从带噪图像中减去预测的噪声,逐步恢复清晰图像。
关键技术
1. 噪声预测网络
通常使用 U-Net 架构:
- 编码器-解码器结构
- 跳跃连接保留细节
- 时间步嵌入
- 注意力机制
2. 条件生成
通过条件信息引导生成:
- 文本条件: 根据文字描述生成图像
- 图像条件: 图像编辑、风格迁移
- 类别条件: 生成特定类别的图像
3. 采样加速
原始扩散需要数百步采样,加速方法:
- DDIM: 确定性采样,减少步数
- DPM-Solver: 高阶求解器
- 一致性模型: 单步生成
重要模型
Stable Diffusion
- 开发者: Stability AI
- 特点: 开源、Latent Diffusion
- 应用: 文生图、图像编辑
DALL-E 3
- 开发者: OpenAI
- 特点: 强大的语义理解
- 应用: 高质量文生图
Midjourney
- 特点: 艺术风格突出
- 应用: 艺术创作、概念设计
FLUX
- 开发者: Black Forest Labs
- 特点: 最新架构、高质量
- 应用: 文生图、商业应用
Sora
- 开发者: OpenAI
- 特点: 视频生成
- 应用: 文生视频
架构演进
DDPM(2020)
- 首个成功的扩散模型
- 证明了扩散模型的可行性
- 需要大量采样步数
Latent Diffusion(2022)
关键创新:在潜空间进行扩散
图像 → VAE编码器 → 潜空间 → 扩散/去噪 → VAE解码器 → 图像
优势:
- 计算效率大幅提升
- 保持生成质量
- Stable Diffusion 的基础
DiT(Diffusion Transformer,2023)
用 Transformer 替换 U-Net:
- 更好的扩展性
- 更强的生成能力
- Sora 和 FLUX 的基础
控制技术
ControlNet
添加额外的控制条件:
- 边缘控制: Canny Edge
- 姿态控制: OpenPose
- 深度控制: Depth Map
- 分割控制: Segmentation
IP-Adapter
图像提示适配:
- 参考图像风格
- 保持人物一致性
- 场景迁移
LoRA 微调
低秩适应:
- 训练特定风格
- 学习特定人物
- 少量参数微调
应用场景
1. 文生图
from openai import OpenAI
client = OpenAI(api_key="your-api-key", base_url="https://api.weelinking.com/v1")
response = client.images.generate(
model="dall-e-3",
prompt="一只可爱的猫咪在阳光下打盹",
size="1024x1024",
quality="hd"
)
2. 图像编辑
- Inpainting:局部重绘
- Outpainting:图像扩展
- 风格迁移
3. 视频生成
- 文生视频
- 图生视频
- 视频编辑
与其他生成模型对比
| 特性 | 扩散模型 | GAN | VAE |
|---|---|---|---|
| 生成质量 | 极高 | 高 | 中等 |
| 训练稳定性 | 高 | 低 | 高 |
| 多样性 | 高 | 可能模式坍塌 | 高 |
| 采样速度 | 慢(可加速) | 快 | 快 |
| 可控性 | 强 | 弱 | 中等 |
挑战与趋势
当前挑战
- 采样速度: 仍需多步采样
- 一致性: 多次生成结果不同
- 细节控制: 精确控制仍有困难
- 版权问题: 训练数据版权争议
未来趋势
- 单步生成: 一致性模型等
- 更高分辨率: 4K、8K 图像
- 长视频生成: 分钟级视频
- 3D 生成: 3D 模型和场景