跳到主要内容

扩散模型 (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. 视频生成

  • 文生视频
  • 图生视频
  • 视频编辑

与其他生成模型对比

特性扩散模型GANVAE
生成质量极高中等
训练稳定性
多样性可能模式坍塌
采样速度慢(可加速)
可控性中等

挑战与趋势

当前挑战

  1. 采样速度: 仍需多步采样
  2. 一致性: 多次生成结果不同
  3. 细节控制: 精确控制仍有困难
  4. 版权问题: 训练数据版权争议

未来趋势

  1. 单步生成: 一致性模型等
  2. 更高分辨率: 4K、8K 图像
  3. 长视频生成: 分钟级视频
  4. 3D 生成: 3D 模型和场景