Seedance 2.0 双分支扩散变换器架构解析
Seedance 2.0 是面向高保真视频生成任务设计的新型双分支扩散变换器(Dual-Branch Diffusion Transformer),其核心创新在于解耦时空建模路径:一条分支专注帧内空间语义重建,另一条分支显式建模跨帧时序动态。该架构摒弃了传统单流 Transformer 对时空维度的粗粒度联合编码,转而通过协同门控机制实现分支间细粒度特征对齐。
双分支协同机制
空间分支采用分层 ViT 结构,以 16×16 patch 嵌入输入,逐级下采样并保留局部细节;时间分支则将同一空间位置在多帧中的 token 沿时间轴堆叠,经轻量级时序注意力模块处理。两分支输出通过 Cross-Gating Fusion(CGF)模块融合,其门控权重由共享的上下文感知投影器动态生成。
关键组件实现
class CrossGatingFusion(nn.Module):
def __init__(self, dim):
super().__init__()
self.proj_s = nn.Linear(dim, dim) # 空间分支门控投影
self.proj_t = nn.Linear(dim, dim) # 时间分支门控投影
self.sigmoid = nn.Sigmoid()
def forward(self, x_s, x_t):
# x_s: [B, T, H*W, D], x_t: [B, T, H*W, D]
gate_s = self.sigmoid(self.proj_s(x_t)) # 用时间特征调控空间分支
gate_t = self.sigmoid(self.proj_t(x_s)) # 用空间特征调控时间分支
return x_s * gate_s + x_t * gate_t # 加权融合
架构性能对比
| 模型 | FVD↓ | PSNR↑ | 参数量(M) |
|---|---|---|---|
| VideoDiffusion | 142.3 | 28.7 | 1240 |
| Seedance 1.0 | 118.9 | 30.2 | 985 |
| Seedance 2.0 | 96.4 | 32.6 | 1052 |
训练流程要点
- 采用渐进式分支解冻策略:前 5K 步仅更新空间分支,后 10K 步联合微调
- 时间分支使用相对时间嵌入(Relative Temporal Embedding),支持任意长度推理

