CogVideo icon indicating copy to clipboard operation
CogVideo copied to clipboard

CogVideoX-5B-I2V生成更長秒數影片問題

Open Labibibidu opened this issue 11 months ago • 13 comments

您好,我想要嘗試使用CogVideoX-5B-I2V模型生成更長的影片(6秒以上),但我修改生成的frame數,例如從49frame變成65frame,生成的影片就都會變類似下圖崩潰的情況。

Image

我看到您們新開發的CogVideoX1.5-5B-I2V模型可以生成到10秒的影片,但對於這領域還不太熟悉看不太懂詳細的Code,所以想要請問這中間是怎麼做到的,是用許多10秒的影片去對模型做finetune嗎,還是對transformer或其他架構有做甚麼調整,又或是使用了其他方法。

非常感謝!!

Labibibidu avatar Jan 21 '25 06:01 Labibibidu

对于1代模型,只能生成6秒,而且,你需要在 num_frames 参数设置成8N + 1 ,对于6秒是49.

zRzRzRzRzRzRzR avatar Jan 21 '25 14:01 zRzRzRzRzRzRzR

這點我理解,但我想要請問的是1代跟1.5代之間是做了什麼處理,讓1.5代模型可以做到生成10秒的影片,謝謝!

Labibibidu avatar Jan 21 '25 15:01 Labibibidu

这两个模型训练的时间长度不一样,模型结构一样的,所以1.5模型10秒模型成本巨大,推理一次要40分钟。
两个模型结构几乎一样

zRzRzRzRzRzRzR avatar Jan 22 '25 01:01 zRzRzRzRzRzRzR

对于1代模型,只能生成6秒,而且,你需要在 num_frames 参数设置成8N + 1 ,对于6秒是49.

请问一下这里为什么是8N + 1,而我看之前版本的代码似乎要求是4N + 1 ,这里做了什么改进吗

Wang-pengfei avatar Jan 24 '25 06:01 Wang-pengfei

1.0是8N + 1。比如49帧 1.5是16N +1 。比如81帧 这在readme有提到。 你提到的4N + 1 应该是将要模型从8N + 1压缩到latent。比如49帧 要 / 4 + 1 得到的13的latent的shape

zRzRzRzRzRzRzR avatar Jan 24 '25 11:01 zRzRzRzRzRzRzR

1.0是8N + 1。比如49帧 1.5是16N +1。比如81帧 这在readme里有提到。 你提到的4N + 1应该要把模型从8N + 1压缩到潜在的。比如49帧/4 + 1 得到13的潜在形状

我想请教一下为什么需要+1。我想把cogvideo用于我的任务中,在我的任务里,我有48帧图像,他们呢代表90度的视角变动,每一帧是均匀转动的,有没有不需要+1的处理方式?

Wang-pengfei avatar Jan 25 '25 06:01 Wang-pengfei

  • 1 是因为VAE的结构是将 8N + 1 的结构编码成 /4 + 1 后的形状。 按照现在代码处理的方式,你准备8N的数据集是能微调的,会pad最后一帧。变成8N + 1。这时候基本不影响微调结果。

zRzRzRzRzRzRzR avatar Jan 25 '25 06:01 zRzRzRzRzRzRzR

如果我强制不pad最后一帧是不可行的对吗

Wang-pengfei avatar Jan 25 '25 06:01 Wang-pengfei

  • 1 是因为VAE的结构是将 8N + 1 的结构编码成 /4 + 1 后的形状。 按照现在代码处理的方式,你准备8N的数据集是能微调的,会pad最后一帧。变成8N + 1。这时候基本不影响微调结果。

我再请教一个问题, cogvideo的VAE可以支持更长视频的编解码吗,比如我一次性编解码48*4帧连续的覆盖360度的视频,但是训练过程中分成4组48进行Unet的训练

Wang-pengfei avatar Jan 25 '25 06:01 Wang-pengfei

这样确实没有试过,工程上这不会报错,算法上,我们没有验证过这样的正确性。

zRzRzRzRzRzRzR avatar Jan 27 '25 05:01 zRzRzRzRzRzRzR

  • 1 是因为VAE的结构是将 8N + 1 的结构编码成 /4 + 1 后的形状。 按照现在代码处理的方式,你准备8N的数据集是能微调的,会pad最后一帧。变成8N + 1。这时候基本不影响微调结果。

https://github.com/THUDM/CogVideo/blob/bbe909d7f73d3cee166653f867a824c1b2151402/finetune/models/cogvideox_i2v/lora_trainer.py#L109-L114 看代码pad的不是首帧吗? @zRzRzRzRzRzRzR

JaywongWang avatar Feb 05 '25 02:02 JaywongWang

1.0是8N + 1。比如49帧 1.5是16N +1 。比如81帧 这在readme有提到。 你提到的4N + 1 应该是将要模型从8N + 1压缩到latent。比如49帧 要 / 4 + 1 得到的13的latent的shape

@zRzRzRzRzRzRzR 另外,1.5版为什么需要16N+1?latent是4倍时间压缩,transformer的patch_size_t是2,算起来应该是8N + 1,可以解释一下为什么是16N + 1吗?

JaywongWang avatar Feb 05 '25 02:02 JaywongWang

Referencing the question I had here: https://github.com/THUDM/CogVideo/issues/748#issuecomment-3002049635 as it is along the same lines. Can the 1.0 model generate 3 second videos instead of 6?

nnsriram27 avatar Jun 24 '25 22:06 nnsriram27