

两阶段训练
1)自回归预测模型
-
假设我要生成1000帧,取关键帧间隔为10,一次生成10帧
-
先生成帧0,10,20 ... , 100 (无条件生成)
-
然后将上面的帧100作为条件生成:100,110,... ,200(条件生成)
-
-
通过掩码设置,使得模型可以在无条件生成与条件生成之间切换
- 在一次生成中,对于
,结合对应原视频: -
- 对每一帧都增加一个掩码,加到通道维度
-
- 使用掩码之后就可以融合条件生成与非条件生成:
-
- 对于当前这一帧,如果M=0,那么这一帧的
;如果M=1,那么这一帧的 ,相当于将这一帧的 替换成清晰的帧(类似sr3将清晰帧concat到latent上)
-
- 在一次生成中,对于
-
训练的时候:
- 输入一个视频
,encode后得到 ,将 加上噪声 得到加噪版本: - 对于
的每一帧,生成一个掩码(每一帧的掩码全是1或者全是0,生成的掩码有两种情况:- 0,0,...,0 : 每一帧的
都不做改变 - 1,0,...,0:将第0帧的
替换成 ,当作条件 - 不会出现:0,1...,只有可能是1在前:111...0000
- 0,0,...,0 : 每一帧的
- 输入一个视频
2)层次生成
- 由第一步生成了:0,10,20,... 1000
- 取0,10作为条件,使用插帧模型生成:0,1,2,3,...,10
- 训练的时候掩码设置变成:1,0,0,...,0,0,1(将首尾替换成清晰的帧,作为条件)
3)条件扰动
- 之前是替换成
,可能 作为不加噪的版本跟加噪之后的版本(即使是加一步噪声)分布有很大不同?(论文参考的Cascaded diffusion models for high fidelity image generation.)所以现在替换成 ,s是一个比较小的值。