Skip to content

视频生成模型:Sora/CogVideo

视频生成是生成式 AI 的前沿方向,Sora 和 CogVideo 分别代表了闭源和开源视频生成模型的最高水平,通过扩散模型和 Transformer 架构实现了从文本描述生成高质量视频的能力。

视频生成模型示意

Sora:OpenAI 的视频生成模型

Sora 是 OpenAI 推出的文本到视频生成模型,能够生成长达 1 分钟的高质量视频:

核心技术

  1. 时空 Patch(Spacetime Patch):将视频压缩到潜空间后,切分为时空 Patch 作为 Transformer 输入
  2. 扩散 Transformer(DiT):用 Transformer 替代 U-Net 执行去噪过程
  3. 视频压缩网络:将视频编码到时空潜空间,类似 VAE 但处理 3D 数据
python
# Sora 的时空 Patch 化概念
class SpacetimePatchEmbedding(nn.Module):
    """视频的时空 Patch 嵌入"""
    def __init__(self, patch_size_t=2, patch_size_h=4, patch_size_w=4, embed_dim=768):
        super().__init__()
        self.proj = nn.Conv3d(
            in_channels=4,  # 潜空间通道
            out_channels=embed_dim,
            kernel_size=(patch_size_t, patch_size_h, patch_size_w),
            stride=(patch_size_t, patch_size_h, patch_size_w)
        )

    def forward(self, latent_video):
        # latent_video: [B, C, T, H, W]
        patches = self.proj(latent_video)  # [B, embed_dim, T/Pt, H/Ph, W/Pw]
        patches = patches.flatten(2).transpose(1, 2)  # [B, num_patches, embed_dim]
        return patches

Sora 的能力

  • 长视频生成:最长 60 秒,1080p 分辨率
  • 物理模拟:模拟简单的物理交互(碰撞、流体)
  • 视频扩展:对已有视频进行时间或空间扩展
  • 视频编辑:基于文本指令编辑视频内容

Sora 的世界模型解读

Sora 被一些研究者解读为"世界模型"的雏形——通过生成视频隐式学习了物理世界的规律。但 Sora 仍存在物理理解错误(如物体穿透、重力方向错误),距离真正的世界模型还有差距。

CogVideo:开源视频生成

CogVideo 是智谱 AI 推出的开源视频生成模型系列:

CogVideoX

CogVideoX 的核心架构包括:

  • 3D RoPE 位置编码:在时间、高度、宽度三个维度使用旋转位置编码
  • 3D 全注意力:在时空 Patch 上计算全注意力
  • 文本-视频联合训练:使用 T5 编码文本条件
模型分辨率帧数参数量
CogVideoX-2B480×72049 帧2B
CogVideoX-5B480×72049 帧5B

CogVideoX 训练策略

python
# CogVideoX 的 3D 注意力示意
class SpacetimeAttention(nn.Module):
    def __init__(self, dim, num_heads):
        super().__init__()
        self.qkv = nn.Linear(dim, 3 * dim)
        self.proj = nn.Linear(dim, dim)
        self.num_heads = num_heads
        # 3D RoPE
        self.rope_t = RotaryEmbedding(dim // num_heads)
        self.rope_h = RotaryEmbedding(dim // num_heads)
        self.rope_w = RotaryEmbedding(dim // num_heads)

    def forward(self, x, t_pos, h_pos, w_pos):
        q, k, v = self.qkv(x).chunk(3, dim=-1)
        # 应用 3D RoPE
        q = apply_3d_rope(q, t_pos, h_pos, w_pos, self.rope_t, self.rope_h, self.rope_w)
        k = apply_3d_rope(k, t_pos, h_pos, w_pos, self.rope_t, self.rope_h, self.rope_w)
        # 标准注意力
        attn = F.scaled_dot_product_attention(q, k, v)
        return self.proj(attn)

视频生成评估

视频生成质量的评估维度:

  • 视觉质量:帧的清晰度、色彩、细节
  • 时序一致性:帧间过渡是否自然流畅
  • 文本对齐:生成内容是否符合文本描述
  • 物理合理性:是否符合物理规律
  • 运动多样性:运动模式是否多样自然

评估挑战

视频生成缺乏统一的自动评估指标。FID/IS 仅评估单帧质量,无法衡量时序一致性。人工评估仍是金标准,但成本高、效率低。

相关资源

最近更新