短视频生成

AI 文生视频:从 Diffusion 到 Sora 的技术演进

2025-04-22 wangjun 20 min read

文生视频为什么难?

文生图已经成熟,但视频多了一个 时间维度:不仅要保证每一帧清晰,还要保证帧与帧之间连续、物理合理、语义一致。一张图是 2D 采样,一段视频就是 3D 时空采样,计算量与模型复杂度都指数级上升。

从图像 Diffusion 说起

视频生成的主流派别继承自图像生成:扩散模型(Diffusion)。其核心思想分两步:

  1. 前向过程:逐步给图像加噪声,直到变成纯高斯噪声
  2. 反向过程:训练神经网络学会逐步去噪,从噪声中"重构"出图像
训练目标(简化)
L = E[ || ε - ε_θ(x_t, t, text) ||² ]

x_t: 加了 t 步噪声的图像
ε:   真实噪声
ε_θ: 网络预测的噪声(受文本条件引导)

文本条件通常通过 CLIP 编码器注入,让生成过程"听懂"提示词。

从 2D 到 3D:视频扩散模型

最直接的扩展是把视频当作 (帧, 高, 宽, 通道) 的 3D 张量来处理,U-Net 的卷积核从 2D 变成 3D:

# 伪代码:3D U-Net 中的时序注意力
# 在空间卷积之后,沿时间轴做 self-attention
for each frame batch:
    x = spatial_conv(x)          # 空间特征
    x = temporal_attention(x)    # 时序一致性
    x = text_cross_attention(x)  # 文本引导

早期的 Video Diffusion Models(2022)就是这样训练出 16 帧短视频的。

Sora 的突破:时空 Patch

Sora 的关键不是视频 U-Net,而是把视频当作 时空 Patch 序列,用 Transformer(DiT 架构)来建模:

  1. 把视频压缩成低维潜空间(VAE),切成时空 Patch,展平成 token 序列
  2. 这些 token 和文本 token 一起送入 DiT(Diffusion Transformer)
  3. 自注意力机制在 token 之间自由交互,天然支持任意分辨率与时长的视频

Patch 化让视频生成摆脱了固定尺寸的限制,也解释了为什么 Sora 能生成 60 秒长镜头且保持镜头内物体一致性。

可控性与工程化

单纯文生视频难以满足精确控制,业界普遍采用组合方案:

  • 首尾帧控制:给定第一帧和最后一帧,模型"脑补"中间过程
  • 镜头语言:用 camera pose(推拉摇移)控制运镜
  • 帧插值:先生成关键帧,再用插帧模型补齐(如 RIFE)
  • LoRA 微调:用少量素材微调角色或风格,保证一致性

算力现实与落地

文生视频的训练与推理都极度消耗 GPU。落地时常用策略:

# 推理优化三板斧
1. 蒸馏:用大模型输出训练小模型(SD-Turbo 思路)
2. 步数压缩:DDIM / LCM 用 4-8 步代替 50 步
3. 帧率裁剪:先生成 8fps 关键帧,再插值到 24fps
文生视频的终点不是"生成视频",而是"可控地生成想要的视频"。Patch 化与 DiT 架构是这一目标的关键转折。