ControlVideo: Adding Conditional Control for One Shot Text-to-Video Editing(为one shot文本到图像编辑添加条件控制)
视频编辑任务:编辑后的视频应忠实地保留源视频的内容,保持生成帧之间的时间一致性,并与目标提示保持一致。
motivation: 现有的方法仍然难以忠实和充分地控制输出,同时保持时间一致性
contribution:
ControlVideo将Canny边缘图、HED边界和所有帧的深度图等视觉条件作为附加输入,从而放大源视频的指导。
微调diffusion model和ControlNet中的attention模块,增强忠实度和时间一致性。(self-attention转换为key-frame attention,将所有帧与选定帧对齐。temporal-attention模块作为扩散模型中的额外分支,随后是零卷积层,以在fine-tuning之前保留输出。)
系统性的研究
训练采样框架
视频编辑任务:给定原始视频帧
X
0
=
{
x
0
i
}
i
=
1
N
X_{0}=\{x_0^i\}_{i=1}^N
X0={x0i}i=1N,
N
N
N表示视频帧数,源prompt
p
s
p_{s}
ps,目标prompt
p
t
p_{t}
pt,目标是生成视频
Y
0
=
{
y
0
i
}
i
=
1
N
Y_{0}=\{y_0^i\}_{i=1}^N
Y0={y0i}i=1N,与目标prompt
p
t
p_{t}
pt对齐,同时忠实的保留原视频
X
0
X_{0}
X0的内容,并且保持所生成的帧之间的时间一致性。
finetune目标:
min
ϕ
E
t
,
ϵ
∼
N
(
0
,
I
)
∣
∣
ϵ
−
ϵ
ϕ
(
X
t
,
p
s
,
c
,
t
)
∣
∣
2
.
\min\limits_{\phi}\mathbb{E}_{t,\epsilon\sim\mathcal{N}(\mathbf{0},\mathbf{I})}||\epsilon-\epsilon_\phi(X_t,p_s,c,t)||^2.
ϕminEt,ϵ∼N(0,I)∣∣ϵ−ϵϕ(Xt,ps,c,t)∣∣2.
推理starting from
Y
T
=
X
T
Y_T=X_T
YT=XT,使用目标prompt
p
t
p_{t}
pt。
key Components(关键组件)
在ResNet中对2D卷积层进行膨胀来采用伪3D卷积层来处理视频输入,用1×3×3的核替换3×3核。
Adding Controls(添加控件)
添加额外的视觉条件,利用ControlNet处理视觉条件,不同控制类型包含不同程度源视频信息,可加权求和不同控制特征灵活组合多个控制,利用不同控制类型的优势
Key-frame Attention(关键帧Attention,重点)
解决的问题:T2I扩散模型中使用的空间自注意机制单独更新每一帧,导致时间不一致的视频输出。
解决方式:利用关键帧在整个视频中传播编辑以及视频编辑的最新进展。将stable diffusion和ControlNet中原有的spatial self-attention转化为key-frame attention,将所有帧向选定的帧对齐。
v
i
v^i
vi表示第
i
i
i帧,
k
∈
[
1
,
N
]
k\in[1,N]
k∈[1,N]表示选定的关键帧,key frame attention定义如下:
Q
=
W
Q
v
i
,
K
=
W
K
v
k
,
V
=
W
V
v
k
,
Q=W^Q v^i,K=W^K v^k,V=W^V v^k,
Q=WQvi,K=WKvk,V=WVvk,
W
Q
,
W
K
,
W
V
W^Q,W^K,W^V
WQ,WK,WV表示投影层,使用不同的关键帧选择没有显著差异,采用原始的spatial self-attention权重作为初始化。
Temporal Attention(时间注意力)
为了提高编辑视频的忠实性和时间一致性,我们在扩散模型中加入了Temporal Attention模块作为额外的分支。
使用原始的spatial self-attention权重作为初始化。
在主要的UNet中结合了Temporal Attention和key-frame attention,除了UNet的中间块。