File size: 3,020 Bytes
00db68b |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# CogVideoX FUN v1 Report
在CogVideoX-FUN中,我们基于CogVideoX在大约1.2m的数据上进行了训练,支持图片与视频预测,支持像素值从512x512x49、768x768x49、1024x1024x49与不同纵横比的视频生成。另外,我们支持图像到视频的生成与视频到视频的重建。
对比与CogVideoX,CogVideoX FUN还突出了以下功能:
- 引入InPaint模型,实现图生视频功能,可以通过首尾图指定视频生成。
- 基于Token长度的模型训练。达成不同大小多分辨率在同一模型中的实现。
## InPaint模型
我们以[CogVideoX](https://github.com/THUDM/CogVideo/)作为基础结构,参考[EasyAnimate](https://github.com/aigc-apps/EasyAnimate)进行图生视频的模型训练。
在进行视频生成的时候,将**参考视频**使用VAE进行encode,**上图黑色的部分代表需要重建的部分,白色的部分代表首图**,与噪声Latents一起堆叠后输入到Transformer中进行视频生成。
我们对**被Mask的区域**进行3D Resize,直接Resize到需要重建的视频的画布大小。
然后将Latent、Encode后的参考视频、被Mask的区域,concat后输入到DiT中进行噪声预测。获得最终的视频。
CogVideoX FUN的Pipeline结构如下:
<img src="https://pai-aigc-photog.oss-cn-hangzhou.aliyuncs.com/cogvideox_fun/asset/v1/pipeline.jpg" alt="ui" style="zoom:50%;" />
## 基于Token长度的模型训练
我们收集了大约高质量的1.2m数据进行CogVideoX-Fun的训练。
在进行训练时,我们根据不同Token长度,对视频进行缩放后进行训练。整个训练过程分为三个阶段,每个阶段的13312(对应512x512x49的视频),29952(对应768x768x49的视频),53248(对应1024x1024x49的视频)。
以CogVideoX-Fun-2B为例子,其中:
- 13312阶段,Batch size为128,训练步数为7k
- 29952阶段,Batch size为256,训练步数为6.5k。
- 53248阶段,Batch size为128,训练步数为5k。
训练时我们采用高低分辨率结合训练,因此模型支持从512到1280任意分辨率的视频生成,以13312 token长度为例:
- 在512x512分辨率下,视频帧数为49;
- 在768x768分辨率下,视频帧数为21;
- 在1024x1024分辨率下,视频帧数为9;
这些分辨率与对应长度混合训练,模型可以完成不同大小分辨率的视频生成。
## Resize 3D Embedding
在适配CogVideoX-2B到CogVideoX-Fun框架的途中,发现源码是以截断的方式去得到3D Embedding的,这样的方式只能适配单一分辨率,当分辨率发生变化时,Embedding也应当发生变化。
<img src="https://pai-aigc-photog.oss-cn-hangzhou.aliyuncs.com/cogvideox_fun/asset/v1/PE_Interpolation.jpg" alt="ui" style="zoom:50%;" />
参考Pixart-Sigma,上图来自于Pixart-Sigma论文,我们采用Positional Embeddings Interpolation(PE Interpolation)对3D embedding进行Resize,PE Interpolation相比于直接生成不同分辨率的Cos Sin Embedding更易收敛。 |