跳转至

09 - 视频生成与时空扩散

⚠️ 时效性说明:本章涉及前沿模型/价格/榜单等信息,可能随版本快速变化;请以论文原文、官方发布页和 API 文档为准。

学习时间: 6小时 重要性: ⭐⭐⭐⭐⭐ 2024-2025年最热门的AI研究方向之一


🎯 学习目标

完成本章后,你将能够: - 理解视频生成的核心挑战(时间一致性、运动建模、长时依赖) - 深入分析Sora的技术架构与创新 - 掌握开源视频生成模型(CogVideoX、Open-Sora、SVD、Wan 2.1) - 了解视频编辑与控制技术 - 了解3D生成与音频驱动视频技术 - 理解视频生成模型的部署与推理优化


1. 视频生成核心挑战

1.1 为什么视频生成比图像生成难?

挑战 说明 量级
数据维度 视频=图像×时间,维度爆炸 16帧512×512 ≈ 1.2亿像素
时间一致性 帧间内容和风格必须连贯 全局约束
运动建模 物体运动、摄像机运动需真实 物理约束
长时依赖 长视频需保持全局叙事一致 数百帧
计算成本 训练/推理资源是图像的10-100倍 数千GPU天
数据质量 高质量视频-文本配对数据稀缺 数据瓶颈

1.2 视频生成技术路线

Text Only
视频生成技术
├── 自回归方法: VideoGPT, TATS
│   └── 逐帧/逐token生成,易累积误差
├── GAN方法: StyleGAN-V, MoCoGAN
│   └── 训练不稳定,时间一致性差
├── 扩散方法 (主流) ★
│   ├── 2D U-Net + 时间层: VDM, AnimateDiff
│   ├── 3D U-Net: SVD, ModelScope
│   ├── 3D DiT: Sora, CogVideoX, Open-Sora
│   └── 混合方法: Wan 2.1
└── Token Prediction: VideoPoet, Emu Video

2. Sora技术深度分析

2.1 概述

Sora(OpenAI, 2024, "Video generation models as world simulators")是第一个展示了长达60秒高质量视频生成能力的模型,引发了视频生成领域的技术革命。

2.2 核心架构:Spacetime Patch

Sora将视频视为时空patch序列,类似ViT处理图像的方式:

Text Only
输入视频: T帧 × H × W × 3
[3D VAE Encoder] → T'×H'×W'×C 时空潜变量
[Spacetime Patchify] → N个tokens (N = T'/pt × H'/ph × W'/pw)
[DiT Transformer ×深度] + 文本条件(T5)
[Unpatchify] → T'×H'×W'×C
[3D VAE Decoder] → T帧 × H × W × 3 视频

关键设计: - 3D Patch\((p_t, p_h, p_w)\) 的时空patch而非2D patch - 将时间维度和空间维度统一处理 - 天然支持不同分辨率和时长的视频

2.3 可变分辨率与时长

Sora不将视频缩放到统一尺寸,而是原生分辨率训练

  • 使用NaViT(Native Resolution ViT)技术
  • 将不同分辨率/时长的视频打包成同一batch
  • 保留原始宽高比,避免裁剪/缩放引入的偏差
\[\text{Token数} = \frac{T}{p_t} \times \frac{H}{p_h} \times \frac{W}{p_w}\]

不同视频产生不同长度的token序列,通过packing和masking统一处理。

2.4 Scaling能力

Sora验证了视频生成的Scaling Laws

Text Only
模型规模 ↑  →  生成质量 ↑
├── 更高的视觉保真度
├── 更准确的物理模拟(光影、反射、流体)
├── 更长的时间一致性
└── 涌现能力(3D一致性、模拟简单物理交互)

涌现能力(Emergent Properties): - 没有显式3D监督,但生成的视频具有3D空间一致性 - 没有物理引擎,但能模拟简单的物理交互(球弹跳、水流) - 多角度/多视角一致性

2.5 训练数据与方法

  • 数据:海量的视频-文本配对数据(估计数亿级)
  • 文本标注:使用GPT-4V等大模型为视频生成详细文字描述(re-captioning)
  • 视频压缩:3D因果VAE + 时空factorized encoder
  • 条件:T5-XXL文本嵌入,可能配合CLIP

3. 开源视频生成模型

3.1 CogVideoX

CogVideoX(Tsinghua & Zhipu AI, 2024, "CogVideoX: Text-to-Video Diffusion Models with An Expert Transformer")是目前开源效果最好的视频生成模型之一。

技术架构

Text Only
文本 → T5-XXL → 文本嵌入
视频 → 3D因果VAE → 时空潜变量 → Patchify
        Expert Transformer (3D Full Attention)
        - 时空联合注意力(非分离式)
        - Expert Adaptive LayerNorm
        - 3D RoPE位置编码
        Unpatchify → 3D因果VAE Decoder → 视频

核心创新

  1. 3D因果VAE
  2. 时间维度使用因果卷积(只看过去帧,不看未来帧)
  3. 空间8×、时间4×压缩
  4. 兼容图像输入(单帧视频)

  5. Expert Transformer

  6. 时空联合全注意力(而非分离为空间/时间注意力)
  7. 使用Expert Adaptive LayerNorm实现文本条件注入
  8. 3D RoPE编码时空位置

  9. 版本

  10. CogVideoX-2B / 5B
  11. 支持6秒 480p视频生成(49帧 @ 8fps)
Python
from diffusers import CogVideoXPipeline
import torch

pipe = CogVideoXPipeline.from_pretrained(
    "THUDM/CogVideoX-5b",
    torch_dtype=torch.bfloat16,
)
pipe.to("cuda")  # 移至GPU/CPU
pipe.enable_model_cpu_offload()  # 节省显存
pipe.vae.enable_tiling()

prompt = "A golden retriever playing in the snow, cinematic, slow motion"
video = pipe(
    prompt=prompt,
    num_videos_per_prompt=1,
    num_inference_steps=50,
    num_frames=49,
    guidance_scale=6.0,
).frames[0]

# 保存视频
from diffusers.utils import export_to_video
export_to_video(video, "cogvideox_output.mp4", fps=8)

3.2 Open-Sora

Open-Sora(HPC-AI Tech, 2024)是对Sora架构的开源复现:

关键特性: - STDiT(Spatial-Temporal DiT)架构:分离式时空注意力 - 支持长达16秒、720p的视频生成 - 支持文本到视频、图像到视频 - 渐进式训练:先低分辨率短视频,再高分辨率长视频

架构

Text Only
                    ┌─────────────────┐
                    │   STDiT Block    │
                    │                  │
Video tokens ──→   │ Spatial Attn     │ ──→ output
                    │       ↓          │
Text condition ──→ │ Cross Attn       │
                    │       ↓          │
Time embedding ──→ │ Temporal Attn    │
                    │       ↓          │
                    │ FFN + AdaLN      │
                    └─────────────────┘
                    (重复 ×N 层)

3.3 Stable Video Diffusion(SVD)

SVD(Stability AI, 2024, "Stable Video Diffusion: Scaling Latent Video Diffusion Models to Large Datasets")是图像到视频的标杆模型。

特点: - 基于SD 2.1图像模型微调 - 插入时间卷积层和时间注意力层 - 输入:初始帧图像 → 输出:14-25帧视频 - 高质量运动生成,时间一致性强

Python
from diffusers import StableVideoDiffusionPipeline
from diffusers.utils import load_image, export_to_video
import torch

pipe = StableVideoDiffusionPipeline.from_pretrained(
    "stabilityai/stable-video-diffusion-img2vid-xt",
    torch_dtype=torch.float16,
)
pipe.to("cuda")

# 图像到视频
image = load_image("input_image.png").resize((1024, 576))
frames = pipe(
    image,
    decode_chunk_size=8,
    num_frames=25,
).frames[0]
export_to_video(frames, "svd_output.mp4", fps=7)

3.4 Wan 2.1

Wan 2.1(Alibaba, 2025)是阿里巴巴推出的最新开源视频生成模型。

技术亮点: - 基于DiT架构,支持文本到视频和图像到视频 - Wan-VAE:高质量3D因果VAE,空间8×时间4×压缩,支持任意分辨率 - 多语言支持(中英文) - 提供1.3B和14B两种规模 - 支持720p视频生成,时长可达5秒以上 - 支持首帧+尾帧的视频插值生成


4. 视频编辑与控制

4.1 MotionCtrl

MotionCtrl(Wang et al., 2024)通过摄像机轨迹和物体轨迹控制视频生成:

  • 摄像机运动控制:平移、旋转、缩放、跟踪
  • 物体运动控制:指定物体运动轨迹
  • 将运动信号作为额外条件注入扩散模型

4.2 DragAnything

DragAnything(Wu et al., 2024)实现了基于拖拽的视频运动控制:

  • 用户在关键帧上拖拽指定运动轨迹
  • 模型学习entity representation作为运动载体
  • 支持任意物体的精细运动控制

4.3 AnimateDiff

AnimateDiff(Guo et al., 2024)是将图像模型升级为视频模型的即插即用方案:

Text Only
预训练SD模型(冻结)
插入 Motion Module (可训练时间注意力层)
训练Motion Module学习运动先验
推理:任意SD模型 + Motion Module → 视频生成

5. 3D生成

5.1 从2D扩散到3D

扩散模型正在从2D图像/视频扩展到3D内容生成:

技术路线 代表工作 方法
SDS优化 DreamFusion (2023) 用2D扩散模型的梯度优化NeRF
Zero-shot 3D Zero-1-to-3 (2024) 单图预测新视角
3DGS + 扩散 DreamGaussian (2024) 高斯点云+SDS + Mesh提取
直接3D Instant3D, LRM (2024) 前馈网络直接预测3D

5.2 DreamGaussian

DreamGaussian(Tang et al., 2024, "DreamGaussian: Generative Gaussian Splatting for Efficient 3D Content Creation")结合3D高斯溅射(3DGS)和扩散模型:

流程

Text Only
输入图像
[1] 初始化3D高斯点云
[2] SDS损失优化(使用2D扩散模型提供梯度)
[3] 密集化 + 裁剪高斯
[4] 提取Mesh + UV纹理
[5] 多视角纹理精化
输出: 带纹理的3D模型 (~2分钟)

相比DreamFusion需要数小时,DreamGaussian将3D生成时间压缩到约2分钟。

5.3 Zero-1-to-3

Zero-1-to-3(Liu et al., 2024)利用预训练扩散模型实现单图to 3D:

\[p(x_{novel} | x_{input}, \Delta\theta, \Delta\phi) = \text{Diffusion}(x_{input}, R, T)\]

给定输入图像和目标视角的相对旋转/平移,生成该视角的图像,连续生成多视角后可重建3D。


6. 音频驱动视频生成

6.1 EMO

EMO(Tian et al., 2024, "EMO: Emote Portrait Alive")实现了音频驱动的说话人头像生成:

  • 输入:一张人像照片 + 音频
  • 输出:嘴型同步的说话视频
  • 使用参考注意力保持身份一致性
  • 不需要3DMM等中间表示

6.2 Hallo

Hallo(Xu et al., 2024)改进了音频驱动视频的时间一致性:

  • 分层音频特征驱动面部不同区域
  • 嘴唇区域使用细粒度音频特征
  • 头部/身体使用粗粒度音频特征
  • 时间注意力保证帧间平滑

应用场景: - 虚拟主播、数字人 - 有声读物视频生成 - 在线教育内容制作


7. 部署与推理优化

7.1 视频生成的推理挑战

瓶颈 原因 量级
显存 3D注意力的KV cache极大 24-80GB
时间 token序列长、步数多 数分钟/视频
一致性 长视频需要保持全局一致 工程难题

7.2 优化技术

模型层面

Python
# 1. 模型CPU Offload — 将不活跃层卸载到CPU
pipe.enable_model_cpu_offload()

# 2. VAE Tiling — 分块编解码降低VAE显存
pipe.vae.enable_tiling()

# 3. VAE Slicing — 沿batch维度切片处理
pipe.vae.enable_slicing()

# 4. 注意力优化
pipe.enable_xformers_memory_efficient_attention()
# 或使用 torch.nn.functional.scaled_dot_product_attention (PyTorch 2.0+)

系统层面: - Temporal Tiling:长视频切分为重叠片段生成,拼接时做平滑过渡 - DiT并行推理:Sequence Parallelism,将长序列分到多张GPU - KV Cache优化:稀疏注意力、窗口注意力减少KV存储 - 量化:INT8/FP8量化DiT权重,减少50%显存

推理框架

Text Only
显存优化: model_cpu_offload + VAE tiling
     +
速度优化: TensorRT / torch.compile + 少步采样 (DPM-Solver)
     +
并行优化: Sequence Parallelism 跨GPU
     =
RTX 4090: ~2分钟/5秒480p视频 (CogVideoX-5B)
A100 80G: ~30秒/5秒480p视频


📋 面试要点

高频面试题

  1. Sora的核心技术创新是什么?
  2. Spacetime Patch:将视频视为3D时空patch序列,统一处理
  3. Native Resolution训练:不裁剪/缩放,保留原始宽高比
  4. 大规模DiT + Scaling:验证了视频Transformer的Scaling Laws
  5. 涌现能力:无显式3D/物理监督下的3D一致性和物理模拟

  6. CogVideoX的3D因果VAE有什么特点?

  7. 时间维度使用因果卷积(只看过去帧),保证自回归兼容性
  8. 空间8×时间4×压缩,平衡质量和效率
  9. 兼容图像输入(视频长度=1时退化为图像VAE)
  10. 联合训练图像和视频数据提升质量

  11. 视频生成中时间一致性怎么保证?

  12. 3D全注意力(CogVideoX):所有帧完全交互,一致性最强但计算最大
  13. 分离式时空注意力(Open-Sora):先空间注意力后时间注意力,效率更高
  14. 时间卷积+注意力(SVD):局部时间建模+全局时间注意力
  15. Temporal Tiling:长视频分片生成时的重叠区域平滑

  16. 3D生成中SDS损失是什么原理?

  17. Score Distillation Sampling:用预训练2D扩散模型的梯度优化3D表示
  18. 将3D渲染的2D图像视为扩散过程的中间状态
  19. 用扩散模型的去噪方向作为梯度更新3D参数
  20. 优点:不需要3D训练数据;缺点:过饱和、Janus problem

  21. 当前视频生成的主要技术瓶颈?

  22. 长视频一致性(>30秒仍困难)
  23. 物理真实性(流体、碰撞等复杂物理)
  24. 训练数据质量(视频-文本对齐标注成本高)
  25. 推理效率(real-time还很远)
  26. 可控性(精确控制运动、摄像机、编辑)

✏️ 练习

练习1:CogVideoX推理

使用CogVideoX-2B在本地生成一个5秒视频,记录推理时间、显存占用、生成质量。

练习2:SVD图像到视频

选取一张高质量风景照,使用SVD生成动态视频,尝试不同的motion_bucket_id参数观察运动幅度变化。

练习3:视频生成对比

对同一prompt,分别使用CogVideoX和Open-Sora生成视频,从时间一致性、运动自然度、画质三个维度对比。

练习4:论文研读

  • 精读Sora技术报告,画出完整技术架构图
  • 精读CogVideoX论文的3D因果VAE设计
  • 研读DreamGaussian论文,理解SDS优化在3DGS上的应用

参考文献

  1. OpenAI, 2024. "Video generation models as world simulators" — Sora技术报告
  2. Yang et al., 2024. "CogVideoX: Text-to-Video Diffusion Models with An Expert Transformer" — CogVideoX
  3. Zheng et al., 2024. "Open-Sora: Democratizing Efficient Video Production for All" — Open-Sora
  4. Blattmann et al., 2024. "Stable Video Diffusion: Scaling Latent Video Diffusion Models to Large Datasets" — SVD
  5. Wan Team, 2025. "Wan 2.1: Open and Advanced Large-Scale Video Generative Models" — Wan 2.1
  6. Wang et al., 2024. "MotionCtrl: A Unified and Flexible Motion Controller for Video Generation" — MotionCtrl
  7. Wu et al., 2024. "DragAnything: Motion Control for Anything using Entity Representation" — DragAnything
  8. Guo et al., 2024. "AnimateDiff: Animate Your Personalized Text-to-Image Diffusion Models without Specific Tuning" — AnimateDiff
  9. Tang et al., 2024. "DreamGaussian: Generative Gaussian Splatting for Efficient 3D Content Creation" — DreamGaussian
  10. Liu et al., 2024. "Zero-1-to-3: Zero-shot One Image to 3D Object" — Zero-1-to-3
  11. Tian et al., 2024. "EMO: Emote Portrait Alive" — EMO
  12. Xu et al., 2024. "Hallo: Hierarchical Audio-Driven Visual Synthesis for Portrait Image Animation" — Hallo

下一章实战: 05-实战项目/04-视频生成实战 — 动手实现视频生成完整流程