视频生成底层逻辑:Spatio-Temporal DiT (时空扩散 Transformer)

5 阅读3分钟

视频生成不是简单的“多画几张图”,而是要在三维空间(高度、宽度、时间)内维持像素的连贯性

1. 核心变革:Space-Time Patches (时空切片)

在 DiT 中,我们将一张图切成一个个方块。在视频 DiT 中,我们处理的是一个视频序列(Frames)

  • 三维切块:模型不再只切 2D 的 Patch,而是切 Tubelets(小管子)
    • 假设一个视频有 16 帧,每帧 64×6464 \times 64
    • 模型会切出 2×2×22 \times 2 \times 2 的时空块(即 2 帧时间长度,2x2 的空间大小)。
  • 物理意义:每一个 Token 现在不仅包含了“哪里有颜色”,还包含了“这个颜色在两帧之间是怎么动的”。这让 Transformer 能够跨越时间去理解物体的运动轨迹。

2. 维度的升华:从 2D 到 3D 的架构适配

为了处理视频,DiT 的内部组件经历了“升维”改造:

A. 位置编码:3D RoPE (旋转位置编码)

CLIP 的绝对位置编码在视频中几乎无法使用,因为视频长度是变动的。

  • 实现:将旋转编码拆分为 RoPEspaceRoPE_{space}RoPEtimeRoPE_{time}
  • 作用:它让模型知道“第 1 帧的左上角”和“第 10 帧的左上角”是同一个位置。如果没有 3D RoPE,视频里的物体会像瞬移一样乱跳。

B. 扩展的注意力机制 (Temporal Attention)

视频模型通常采用两种注意力组合方案:

  1. Full Spatio-Temporal Attention:所有帧的所有 Patch 互相看。效果最好,但计算量随视频长度成平方级爆炸
  2. Factorized Attention (分解注意力):先做空间自注意力(修饰每一帧的画质),再做时间自注意力(对齐每一帧的动作)。这是目前平衡画质与长度的主流方案。

3. VAE 的进化:Causal VAE (因果变分自编码器)

在文生图中,VAE 是一张张压缩的。在视频中,为了节省空间并保持连贯,引入了 Causal VAE

  • 时间压缩:它不仅压缩长宽,还压缩时间维度。比如把 8 帧视频压缩成 1 个潜空间特征。
  • 因果性:解码当前帧时,只参考之前的帧,不参考未来的帧。这模拟了现实世界的物理逻辑,保证了视频生成的实时性和逻辑性。

4. 训练与推理:从“降噪点”到“降噪流”

训练阶段 (Predicting Noise in Video)

  1. 加噪:给一段完整的视频潜向量序列同时加噪。
  2. 回归:DiT 预测整个视频序列中的噪声场。
  3. 约束:除了 MSE Loss,通常还会加入运动平滑度损失,防止画面闪烁(Flickering)。

推理阶段 (Autoregressive vs. One-shot)

  • 短视频 (One-shot):直接一次性降噪生成 2-5 秒的视频。
  • 长视频 (Autoregressive):生成前 2 秒,然后将其作为条件,接力生成后 2 秒。这是 Sora 能够生成 60 秒长视频的秘密——时空潜空间的接力采样

📘 文生图 vs. 文生视频 技术规格对比

维度文生图 (DiT)文生视频 (ST-DiT)
基础 Token2D Patch (方块)3D Tubelet (时空管)
位置编码2D RoPE / 绝对编码3D RoPE (分拆空间与时间)
注意力核心空间全局关联时空因果关联 / 运动一致性
VAE 作用空间压缩空间 + 时间 联合压缩 (Causal VAE)
核心挑战逻辑构图、语义对齐时间一致性 (Consistency)、物理常识

💡 核心难点:为什么视频生成这么难?

  1. 算力黑洞:视频的 Token 数量是图像的数十倍,Attention 的计算复杂度是 O(N2)O(N^2),显存压力极大。
  2. 物理模拟:模型必须在没有任何物理引擎的情况下,通过看视频学会“杯子摔碎了不能还原”、“水往低处流”等物理规律。
  3. 语义对齐:Prompt 需要描述“动作”而不只是“物体”。例如“一个人在跑步”,模型需要精准控制腿部肌肉的周期性形变。