CogVideo icon indicating copy to clipboard operation
CogVideo copied to clipboard

训练后convert_weight_sat2hf保存的ckpt再直接用diffusers载入,出视频会变糊?

Open GallenShao opened this issue 1 year ago • 7 comments

System Info / 系統信息

5b模型有这个问题,2b好像没有

Information / 问题信息

  • [ ] The official example scripts / 官方的示例脚本
  • [X] My own modified scripts / 我自己修改的脚本和任务

Reproduction / 复现过程

  1. 全量训练
  2. 用convert_weight_sat2hf脚本转换ckpt
  3. 用pipe = CogVideoXPipeline.from_pretrained(model_path, torch_dtype=torch.bfloat16).to("cuda")载入模型并推理即可复现
  4. 改成以下载入方式效果正常: transformer = CogVideoXTransformer3DModel.from_pretrained(f'{model_path}/transformer', torch_dtype=torch.bfloat16, use_safetensors=False) pipe = CogVideoXPipeline.from_pretrained('THUDM/CogVideoX-5b', transformer=transformer, torch_dtype=torch.bfloat16, use_safetensors=False).to("cuda")

根据表现,疑似vae在保存过程中丢失精度?

Expected behavior / 期待表现

期望convert_weight_sat2hf转换后直接用CogVideoXPipeline.from_pretrained载入即可使用

GallenShao avatar Sep 03 '24 10:09 GallenShao

请问你是如何用convert_weight_sat2hf脚本转换ckpt的,我2b是可以转的,5b会报错。我似乎该修改某些层的通道配置?但我不知道在哪里修改 image

peki12345 avatar Sep 04 '24 01:09 peki12345

image 我这里稍微改了下

GallenShao avatar Sep 04 '24 03:09 GallenShao

请问你是如何用convert_weight_sat2hf脚本转换ckpt的,我2b是可以转的,5b会报错。我似乎该修改某些层的通道配置?但我不知道在哪里修改 image

这个我们之后更新,转换脚本已经升级了,适配了diffusers 0.30.1

zRzRzRzRzRzRzR avatar Sep 04 '24 11:09 zRzRzRzRzRzRzR

请问你是如何用convert_weight_sat2hf脚本转换ckpt的,我2b是可以转的,5b会报错。我似乎该修改某些层的通道配置?但我不知道在哪里修改 image

这个我们之后更新,转换脚本已经升级了,适配了diffusers 0.30.1

期待更新!

peki12345 avatar Sep 05 '24 01:09 peki12345

image 我这里稍微改了下

感谢,我用你的修改成功转好了模型,同样遇到了视频变模糊的问题。但我认为这个不是vae导致的,5b模型的vae和2b模型应该没有不同,我更倾向于transformer finetune崩了,但具体原因不清楚,loss也很正常...

peki12345 avatar Sep 05 '24 01:09 peki12345

image 我这里稍微改了下

感谢,我用你的修改成功转好了模型,同样遇到了视频变模糊的问题。但我认为这个不是vae导致的,5b模型的vae和2b模型应该没有不同,我更倾向于transformer finetune崩了,但具体原因不清楚,loss也很正常...

但正如我提到的,换了一种载入方式后,正常了。。。是否是vae也只是我的猜测,我没做进一步实验,其实可以试试分别载入各个部分做个对照看

GallenShao avatar Sep 05 '24 06:09 GallenShao

使用现在的代码呢?vae应该是不会动的啊

zRzRzRzRzRzRzR avatar Sep 14 '24 10:09 zRzRzRzRzRzRzR

System Info / 系統信息

5b模型有这个问题,2b好像没有

Information / 问题信息

  • [ ] The official example scripts / 官方的示例脚本
  • [x] My own modified scripts / 我自己修改的脚本和任务

Reproduction / 复现过程

  1. 全量训练
  2. 用convert_weight_sat2hf脚本转换ckpt
  3. 用pipe = CogVideoXPipeline.from_pretrained(model_path, torch_dtype=torch.bfloat16).to("cuda")载入模型并推理即可复现
  4. 改成以下载入方式效果正常: transformer = CogVideoXTransformer3DModel.from_pretrained(f'{model_path}/transformer', torch_dtype=torch.bfloat16, use_safetensors=False) pipe = CogVideoXPipeline.from_pretrained('THUDM/CogVideoX-5b', transformer=transformer, torch_dtype=torch.bfloat16, use_safetensors=False).to("cuda")

根据表现,疑似vae在保存过程中丢失精度?

Expected behavior / 期待表现

期望convert_weight_sat2hf转换后直接用CogVideoXPipeline.from_pretrained载入即可使用

transformer = CogVideoXTransformer3DModel.from_pretrained(f'{model_path}/transformer', torch_dtype=torch.bfloat16, use_safetensors=False) pipe = CogVideoXPipeline.from_pretrained('THUDM/CogVideoX-5b', transformer=transformer, torch_dtype=torch.bfloat16, use_safetensors=False).to("cuda") 这个命令加载不起来吧, 保存的文件格式safetensors?

linwenzhao1 avatar Jan 11 '25 03:01 linwenzhao1