短视频生成
AI 文生视频:从 Diffusion 到 Sora 的技术演进
▶
文生视频为什么难?
文生图已经成熟,但视频多了一个 时间维度:不仅要保证每一帧清晰,还要保证帧与帧之间连续、物理合理、语义一致。一张图是 2D 采样,一段视频就是 3D 时空采样,计算量与模型复杂度都指数级上升。
从图像 Diffusion 说起
视频生成的主流派别继承自图像生成:扩散模型(Diffusion)。其核心思想分两步:
- 前向过程:逐步给图像加噪声,直到变成纯高斯噪声
- 反向过程:训练神经网络学会逐步去噪,从噪声中"重构"出图像
训练目标(简化)
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 架构)来建模:
- 把视频压缩成低维潜空间(VAE),切成时空 Patch,展平成 token 序列
- 这些 token 和文本 token 一起送入 DiT(Diffusion Transformer)
- 自注意力机制在 token 之间自由交互,天然支持任意分辨率与时长的视频
Patch 化让视频生成摆脱了固定尺寸的限制,也解释了为什么 Sora 能生成 60 秒长镜头且保持镜头内物体一致性。
可控性与工程化
单纯文生视频难以满足精确控制,业界普遍采用组合方案:
- 首尾帧控制:给定第一帧和最后一帧,模型"脑补"中间过程
- 镜头语言:用 camera pose(推拉摇移)控制运镜
- 帧插值:先生成关键帧,再用插帧模型补齐(如 RIFE)
- LoRA 微调:用少量素材微调角色或风格,保证一致性
算力现实与落地
文生视频的训练与推理都极度消耗 GPU。落地时常用策略:
# 推理优化三板斧
1. 蒸馏:用大模型输出训练小模型(SD-Turbo 思路)
2. 步数压缩:DDIM / LCM 用 4-8 步代替 50 步
3. 帧率裁剪:先生成 8fps 关键帧,再插值到 24fps
文生视频的终点不是"生成视频",而是"可控地生成想要的视频"。Patch 化与 DiT 架构是这一目标的关键转折。