学习自https://lilianweng.github.io/posts/2024-04-12-diffusion-video/
文章目录
- 3D UNet和DiT
- VDM
- Imagen Video
- Sora
- 调整图像模型生成视频
- Make-A-Video(对视频数据微调)
- Tune-A-Video
- Gen-1
- 视频 LDM
- SVD稳定视频扩散
- 免训练
- Text2Video-Zero
- ControlVideo
- 参考文献
3D UNet和DiT
VDM
空间上
-
2D卷积扩展为3D卷积,具体操作 3 × 3 3\times3 3×3 替换成 1 × 3 × 3 1\times3\times3 1×3×3
提高计算效率,增强网络非线性和表示能力,优化网络深度和结构
-
空间注意力块考虑像素之间的空间关系,第一个轴用来区分不同的批次或样本
保持空间信息有效性,利用批次处理提高训练和推理的效率
时间上
在空间注意块之后添加时间注意块,在第一轴执行操作。相对位置嵌入用于跟踪帧的顺序,时间注意模块可以捕获良好的时间连贯性。
Imagen Video
-
冻结的文本编码器提供文本嵌入作为条件
-
交错空间和时间超分扩散模型的级联
- SSR(Scene Structure Representation): 指的是对视频中的场景结构进行建模和表示的方法。 场景结构可以理解为视频中不同场景或镜头之间的关系和转换。 SSR的目标是捕捉视频中的场景切换、场景内部的动作和对象交互等信息,以便后续的分析和处理。 - TSR(Temporal Structure Representation): 指的是对视频中的时间结构进行建模和表示的方法。 时间结构涉及到视频中不同时间点或时间段的关系和变化。 TSR的目标是分析和描述视频中的时间序列信息,如动作的持续时间、速度的变化等。 - SSR 通过双线性调整大小(基于双线性插值)进行上采样,而 TSR 通过重复帧或填充空白帧来上采样。
-
对具有共享参数的帧执行空间操作,时间层跨帧混合捕获时间连贯性。
-
应用渐进式蒸馏来加快取样速度,每次蒸馏迭代都可以将所需的取样步骤减少一半。
模型蒸馏:蒸馏技术能够将大型复杂模型的知识和性能转移到更小、更快速的模型中,从而节省计算资源和内存消耗。 主要包括以下几个步骤:大模型准备、目标模型选择(小模型)、大模型软标签生成、目标模型训练、temperature参数控制模型泛化收敛和稳定性、性能评估。
Sora
Sora运用DiT结构,在视频和图像潜在编码时空token上运行,视觉输入为时间token充当transformer的输入标记。
调整图像模型生成视频
可以通过插入时间层“膨胀”预训练的文本到图像的扩散模型,只对视频数据微调新层,或者完全避免额外训练。新模型具有文本-图像对的先验,降低对文本-视频对数据的要求。
Make-A-Video(对视频数据微调)
最终推理目标:
y
^
t
=
SR
h
∘
SR
l
t
∘
↑
F
∘
D
t
∘
P
∘
(
x
^
,
CLIP
text
(
x
)
)
\hat{\mathbf{y}}_t = \text{SR}_h \circ \text{SR}^t_l \circ \uparrow_F \circ D^t \circ P \circ (\hat{\mathbf{x}}, \text{CLIP}_\text{text}(\mathbf{x}))
y^t=SRh∘SRlt∘↑F∘Dt∘P∘(x^,CLIPtext(x))
时空SR层包括伪3D Convo层(左)和伪3D注意力层(右):
Conv
P3D
=
Conv
1D
(
Conv
2D
(
h
)
∘
T
)
∘
T
Attn
P3D
=
flatten
−
1
(
Attn
1D
(
Attn
2D
(
flatten
(
h
)
)
∘
T
)
∘
T
)
\begin{aligned} \text{Conv}_\text{P3D} &= \text{Conv}_\text{1D}(\text{Conv}_\text{2D}(\mathbf{h}) \circ T) \circ T \\ \text{Attn}_\text{P3D} &= \text{flatten}^{-1}(\text{Attn}_\text{1D}(\text{Attn}_\text{2D}(\text{flatten}(\mathbf{h})) \circ T) \circ T) \end{aligned}
ConvP3DAttnP3D=Conv1D(Conv2D(h)∘T)∘T=flatten−1(Attn1D(Attn2D(flatten(h))∘T)∘T)
输入张量 h \mathbf{h} h, ∘ T \circ T ∘T时间和空间维度之间的交换, flatten ( . ) \text{flatten}(.) flatten(.)是要转换的矩阵运算符 h \mathbf{h} h成为 h ’ ∈ R B × C × F × H × W \mathbf{h}’ \in \mathbb{R}^{B \times C \times F \times H \times W} h’∈RB×C×F×H×W, flatten − 1 ( . ) \text{flatten}^{-1}(.) flatten−1(.)反转这一过程。
训练流程:首先仅对图像进行训练(文本对不参与),添加新时态层对未标记的视频数据微调。
Tune-A-Video
给定一个包含 m m m框架 V = { v i ∣ i = 1 , … , m } \mathcal{V} = \{v_i \mid i = 1, \dots, m\} V={vi∣i=1,…,m}和描述性提示 τ \tau τ,基于微编辑和相关的文本提示 τ ∗ \tau^* τ∗生成新视频 V ∗ \mathcal{V}^* V∗。
Tune-A-Video的Unet集成了ST-Attention 时空注意力模块,查询前几帧的相关位置获得时间一致性。对于潜在特征
v
i
v_i
vi,前一帧
v
i
−
1
v_{i-1}
vi−1和第一帧
v
1
v_1
v1得到
Q
=
W
Q
z
v
i
,
K
=
W
K
[
z
v
1
,
z
v
i
−
1
]
,
V
=
W
V
[
z
v
1
,
z
v
i
−
1
]
O
=
softmax
(
Q
K
⊤
d
)
⋅
V
\begin{aligned} &\mathbf{Q} = \mathbf{W}^Q \mathbf{z}_{v_i}, \quad \mathbf{K} = \mathbf{W}^K [\mathbf{z}_{v_1}, \mathbf{z}_{v_{i-1}}], \quad \mathbf{V} = \mathbf{W}^V [\mathbf{z}_{v_1}, \mathbf{z}_{v_{i-1}}] \\ &\mathbf{O} = \text{softmax}\Big(\frac{\mathbf{Q} \mathbf{K}^\top}{\sqrt{d}}\Big) \cdot \mathbf{V} \end{aligned}
Q=WQzvi,K=WK[zv1,zvi−1],V=WV[zv1,zvi−1]O=softmax(dQK⊤)⋅V
微调体现在哪里?
微调期间只有ST-Attn和Cross-Attn中query的投影更新,保留先前的文本到图像知识。ST-Attn提高时空一致性,Cross-Attn优化文本-视频对齐。
Gen-1
分开考虑视频的结构和内容 p ( x ∣ s , c ) p(\mathbf{x} \mid s, c) p(x∣s,c)
- 内容 c c c主要是外观语义信息,嵌入CLIP
- 结构 s s s主要描述几何和动力学,使用深度估计或者其他特定任务的侧面信息。
残差块中的每个2D空间convo层之后添加1D时态convo,2D空间注意块之后添加1D时态注意力块。Training,结构变量s与潜在变量z连接,内容变量c在cross-attn中提供。Inference,
视频 LDM
训练LDM,对模型进行微调,然后生成添加时间维度的视频。时间层
{
l
ϕ
i
∣
i
=
1
,
…
,
L
}
\{l^i_\phi \mid i = \ 1, \dots, L\}
{lϕi∣i= 1,…,L}和空间层
l
θ
i
l^i_\theta
lθi交错,在微调时保持冻结。视频LDM以低fps生成关键帧,通过两个步骤的潜在插帧提高fps。
LDM预训练自编码看不到视频容易产生闪烁的伪影,因此,在解码器中添加了额外的时间层,使用3D卷积够早的时间判别器微调。在时间解码器微调期间,冻结的编码器独立处理视频中的每一帧,并使用视频感知鉴别器跨帧强制执行时间连贯的重建。
SVD稳定视频扩散
主要三个阶段:T2I预训练、视频预训练和视频微调
其他技术:三种不同的字幕模型。删除运动少的剪辑,过多的文本和较低美学价值的帧。
首先生成远距离关键帧,为了保证高质量的时间一致性,使用STUNet通过一次生成视频的持续时间消除对TSR的依赖。
STUNet 膨胀了预训练的文本到图像 U-net,以便能够在时间和空间维度上对视频进行下采样和上采样。基于 Convo 的模块由预先训练的文本到图像层组成,然后是因式分解的时空卷积。在最粗糙的 U-Net 级别,基于注意力的块包含预先训练的文本到图像,然后是时间注意力。只有新添加的层才会进行进一步的训练。
免训练
Text2Video-Zero
通过增强具有两个关键时间一致性的预训练图像扩线模型,实现zero-shot、免训练的视频生成:
- 使用运动动力学对潜在代码序列进行采样,以保持全局场景和背景时间的一致性
- 使用新跨帧注意机制重新编程帧级自注意,保留前景对象的上下文、外观和标识。
x
T
′
1
=
DDIM-backward
(
x
T
1
,
Δ
t
)
where
T
′
=
T
−
Δ
t
W
k
←
a warping operation of
δ
k
=
λ
(
k
−
1
)
δ
x
~
T
′
k
=
W
k
(
x
T
′
1
)
x
T
k
=
DDIM-forward
(
x
~
T
′
k
,
Δ
t
)
for
k
=
2
,
…
,
m
\begin{aligned} \mathbf{x}^1_{T'} &= \text{DDIM-backward}(\mathbf{x}^1_T, \Delta t)\text{ where }T' = T - \Delta t \\ W_k &\gets \text{a warping operation of }\boldsymbol{\delta}^k = \lambda(k-1)\boldsymbol{\delta} \\ \tilde{\mathbf{x}}^k_{T'} &= W_k(\mathbf{x}^1_{T'})\\ \mathbf{x}^k_T &= \text{DDIM-forward}(\tilde{\mathbf{x}}^k_{T'}, \Delta t)\text{ for }k=2, \dots, m \end{aligned}
xT′1Wkx~T′kxTk=DDIM-backward(xT1,Δt) where T′=T−Δt←a warping operation of δk=λ(k−1)δ=Wk(xT′1)=DDIM-forward(x~T′k,Δt) for k=2,…,m
此外,Text2Video-Zero将预训练SD模型中的自注意力层替换为新的跨帧注意力机制,并参考第一帧。其动机是在整个生成的视频中保留有关前景对象的外观、形状和身份的信息。
Cross-Frame-Attn
(
Q
k
,
K
1
:
m
,
V
1
:
m
)
=
Softmax
(
Q
k
(
K
1
)
⊤
c
)
V
1
\text{Cross-Frame-Attn}(\mathbf{Q}^k, \mathbf{K}^{1:m}, \mathbf{V}^{1:m}) = \text{Softmax}\Big( \frac{\mathbf{Q}^k (\mathbf{K}^1)^\top}{\sqrt{c}} \Big) \mathbf{V}^1
Cross-Frame-Attn(Qk,K1:m,V1:m)=Softmax(cQk(K1)⊤)V1
平滑北京和扩散步骤中合并实际和扭曲的潜在代码t
x
ˉ
t
k
=
M
k
⊙
x
t
k
+
(
1
−
M
k
)
⊙
(
α
x
~
t
k
+
(
1
−
α
)
x
t
k
)
for
k
=
1
,
…
,
m
\bar{\mathbf{x}}^k_t = \mathbf{M}^k \odot \mathbf{x}^k_t + (1 − \mathbf{M}^k) \odot (\alpha\tilde{\mathbf{x}}^k_t +(1−\alpha)\mathbf{x}^k_t)\quad\text{for }k=1, \dots, m
xˉtk=Mk⊙xtk+(1−Mk)⊙(αx~tk+(1−α)xtk)for k=1,…,m
这里的
x
t
k
\mathbf{x}^k_t
xtk是实际的潜码,
x
~
t
k
\tilde{\mathbf{x}}^k_t
x~tk是背景上扭曲的潜码,
α
\alpha
α是超参。
ControlVideo
在ControlNet基础上添加了三个新的机制
- 跨帧注意机制
- 交错帧平滑器
- 分层采样器
参考文献
[1] Cicek et al. 2016. “3D U-Net: Learning Dense Volumetric Segmentation from Sparse Annotation.”
[2] Ho & Salimans, et al. “Video Diffusion Models.” 2022 | webpage
[3] Bar-Tal et al. 2024 “Lumiere: A Space-Time Diffusion Model for Video Generation.”
[4] Brooks et al. “Video generation models as world simulators.” OpenAI Blog, 2024.
[5] Zhang et al. 2023 “ControlVideo: Training-free Controllable Text-to-Video Generation.”
[6] Khachatryan et al. 2023 “Text2Video-Zero: Text-to-image diffusion models are zero-shot video generators.”
[7] Ho, et al. 2022 “Imagen Video: High Definition Video Generation with Diffusion Models.”
[8] Singer et al. “Make-A-Video: Text-to-Video Generation without Text-Video Data.” 2022.
[9] Wu et al. “Tune-A-Video: One-Shot Tuning of Image Diffusion Models for Text-to-Video Generation.” ICCV 2023.
[10] Blattmann et al. 2023 “Align your Latents: High-Resolution Video Synthesis with Latent Diffusion Models.”
[11] Blattmann et al. 2023 “Stable Video Diffusion: Scaling Latent Video Diffusion Models to Large Datasets.”
[12] Esser et al. 2023 “Structure and Content-Guided Video Synthesis with Diffusion Models.”
[13] Bar-Tal et al. 2024 “Lumiere: A Space-Time Diffusion Model for Video Generation.”