|
# CogVideoX-5B |
|
|
|
<p style="text-align: center;"> |
|
<div align="center"> |
|
<img src=https://github.com/THUDM/CogVideo/raw/main/resources/logo.svg width="50%"/> |
|
</div> |
|
<p align="center"> |
|
<a href="https://huggingface.co/THUDM/CogVideoX-5b/blob/main/README.md">📄 Read in English</a> | |
|
<a href="https://huggingface.co/spaces/THUDM/CogVideoX-5B">🤗 Huggingface Space</a> | |
|
<a href="https://github.com/THUDM/CogVideo">🌐 Github </a> | |
|
<a href="https://arxiv.org/pdf/2408.06072">📜 arxiv </a> |
|
</p> |
|
|
|
## 作品案例 |
|
|
|
## 模型介绍 |
|
|
|
CogVideoX是 [清影](https://chatglm.cn/video) 同源的开源版本视频生成模型。下表展示目前我们提供的视频生成模型列表,以及相关基础信息。 |
|
|
|
<table style="border-collapse: collapse; width: 100%;"> |
|
<tr> |
|
<th style="text-align: center;">模型名</th> |
|
<th style="text-align: center;">CogVideoX-2B</th> |
|
<th style="text-align: center;">CogVideoX-5B (当前仓库)</th> |
|
</tr> |
|
<tr> |
|
<td style="text-align: center;">模型介绍</td> |
|
<td style="text-align: center;">入门级模型,兼顾兼容性。运行,二次开发成本低。</td> |
|
<td style="text-align: center;">视频生成质量更高,视觉效果更好的更大尺寸模型。</td> |
|
</tr> |
|
<tr> |
|
<td style="text-align: center;">推理精度</td> |
|
<td style="text-align: center;">FP16, FP32<br><b>不支持 BF16</b> </td> |
|
<td style="text-align: center;">BF16, FP32<br><b>不支持 FP16</b> </td> |
|
</tr> |
|
<tr> |
|
<td style="text-align: center;">推理速度<br>(Step = 50)</td> |
|
<td style="text-align: center;">FP16: ~90* s</td> |
|
<td style="text-align: center;">BF16: ~200* s</td> |
|
</tr> |
|
<tr> |
|
<td style="text-align: center;">单GPU显存消耗<br></td> |
|
<td style="text-align: center;">18GB using <a href="https://github.com/THUDM/SwissArmyTransformer">SAT</a><br><b>12GB* using diffusers</b><br></td> |
|
<td style="text-align: center;">26GB using <a href="https://github.com/THUDM/SwissArmyTransformer">SAT</a><br><b>21GB* using diffusers</b><br></td> |
|
</tr> |
|
<tr> |
|
<td style="text-align: center;">多GPU推理显存消耗</td> |
|
<td style="text-align: center;"><b>10GB* using diffusers</b><br></td> |
|
<td style="text-align: center;"><b>15GB* using diffusers</b><br></td> |
|
</tr> |
|
<tr> |
|
<td style="text-align: center;">微调显存消耗(每卡)</td> |
|
<td style="text-align: center;">47 GB (bs=1, LORA)<br> 61 GB (bs=2, LORA)<br> 62GB (bs=1, SFT)</td> |
|
<td style="text-align: center;">63 GB (bs=1, LORA)<br> 80 GB (bs=2, LORA)<br> 75GB (bs=1, SFT)<br></td> |
|
</tr> |
|
<tr> |
|
<td style="text-align: center;">提示词语言</td> |
|
<td colspan="2" style="text-align: center;">English*</td> |
|
</tr> |
|
<tr> |
|
<td style="text-align: center;">提示词长度上限</td> |
|
<td colspan="2" style="text-align: center;">226 Tokens</td> |
|
</tr> |
|
<tr> |
|
<td style="text-align: center;">视频长度</td> |
|
<td colspan="2" style="text-align: center;">6 秒</td> |
|
</tr> |
|
<tr> |
|
<td style="text-align: center;">帧率</td> |
|
<td colspan="2" style="text-align: center;">8 帧 / 秒 </td> |
|
</tr> |
|
<tr> |
|
<td style="text-align: center;">视频分辨率</td> |
|
<td colspan="2" style="text-align: center;">720 * 480,不支持其他分辨率(含微调)</td> |
|
</tr> |
|
<tr> |
|
<td style="text-align: center;">位置编码</td> |
|
<td style="text-align: center;">3d_sincos_pos_embed</td> |
|
<td style="text-align: center;">3d_rope_pos_embed<br></td> |
|
</tr> |
|
</table> |
|
|
|
**数据解释** |
|
|
|
+ 使用 diffusers 库进行测试时,启用了 `enable_model_cpu_offload()` 选项 和 `pipe.vae.enable_tiling()` 优化,该方案未测试在非 |
|
**NVIDIA A100 / H100** 外的实际显存占用,通常,该方案可以适配于所有 **NVIDIA 安培架构** |
|
以上的设备。若关闭优化,显存占用会成倍增加,峰值显存约为表格的3倍。 |
|
+ 多GPU推理时,需要关闭 `enable_model_cpu_offload()` 优化。 |
|
+ 推理速度测试同样采用了上述显存优化方案,不采用显存优化的情况下,推理速度提升约10%。 |
|
+ 模型仅支持英语输入,其他语言可以通过大模型润色时翻译为英语。 |
|
|
|
**提醒** |
|
|
|
+ 使用 [SAT](https://github.com/THUDM/SwissArmyTransformer) 推理和微调SAT版本模型。欢迎前往我们的github查看。 |
|
|
|
## 快速上手 🤗 |
|
|
|
本模型已经支持使用 huggingface 的 diffusers 库进行部署,你可以按照以下步骤进行部署。 |
|
|
|
**我们推荐您进入我们的 [github](https://github.com/THUDM/CogVideo) 并查看相关的提示词优化和转换,以获得更好的体验。** |
|
|
|
1. 安装对应的依赖 |
|
|
|
```shell |
|
pip install --upgrade opencv-python transformers accelerate diffusers |
|
``` |
|
|
|
2. 运行代码 |
|
|
|
```python |
|
import gc |
|
import torch |
|
from diffusers import CogVideoXPipeline |
|
from diffusers.utils import export_to_video |
|
|
|
prompt = "A panda, dressed in a small, red jacket and a tiny hat, sits on a wooden stool in a serene bamboo forest. The panda's fluffy paws strum a miniature acoustic guitar, producing soft, melodic tunes. Nearby, a few other pandas gather, watching curiously and some clapping in rhythm. Sunlight filters through the tall bamboo, casting a gentle glow on the scene. The panda's face is expressive, showing concentration and joy as it plays. The background includes a small, flowing stream and vibrant green foliage, enhancing the peaceful and magical atmosphere of this unique musical performance." |
|
|
|
pipe = CogVideoXPipeline.from_pretrained( |
|
"THUDM/CogVideoX-5b", |
|
torch_dtype=torch.bfloat16 |
|
) |
|
|
|
pipe.enable_model_cpu_offload() |
|
|
|
gc.collect() |
|
torch.cuda.empty_cache() |
|
torch.cuda.reset_accumulated_memory_stats() |
|
torch.cuda.reset_peak_memory_stats() |
|
pipe.vae.enable_tiling() |
|
|
|
video = pipe( |
|
prompt=prompt, |
|
num_videos_per_prompt=1, |
|
num_inference_steps=50, |
|
num_frames=49, |
|
guidance_scale=6, |
|
generator=torch.Generator(device="cuda").manual_seed(42), |
|
).frames[0] |
|
|
|
export_to_video(video, "output.mp4", fps=8) |
|
``` |
|
|
|
如果您生成的模型在 MAC 默认播放器上表现为 "全绿" 无法正常观看,属于正常现象 (OpenCV保存视频问题),仅需更换一个播放器观看。 |
|
|
|
## 深入研究 |
|
|
|
欢迎进入我们的 [github](https://github.com/THUDM/CogVideo),你将获得: |
|
|
|
1. 更加详细的技术细节介绍和代码解释。 |
|
2. 提示词的优化和转换。 |
|
3. SAT版本模型进行推理和微调,甚至预发布。 |
|
4. 项目更新日志动态,更多互动机会。 |
|
5. CogVideoX 工具链,帮助您更好的使用模型。 |
|
|
|
## 模型协议 |
|
|
|
该模型根据 [CogVideoX LICENSE](LICENSE) 许可证发布。 |
|
|
|
## 引用 |
|
|
|
``` |
|
@article{yang2024cogvideox, |
|
title={CogVideoX: Text-to-Video Diffusion Models with An Expert Transformer}, |
|
author={Yang, Zhuoyi and Teng, Jiayan and Zheng, Wendi and Ding, Ming and Huang, Shiyu and Xu, Jiazheng and Yang, Yuanming and Hong, Wenyi and Zhang, Xiaohan and Feng, Guanyu and others}, |
|
journal={arXiv preprint arXiv:2408.06072}, |
|
year={2024} |
|
} |
|
``` |