Skip to content

Latest commit

 

History

History
393 lines (327 loc) · 22.9 KB

README_zh.md

File metadata and controls

393 lines (327 loc) · 22.9 KB

CogVideo & CogVideoX

Read this in English

日本語で読む

🤗 Huggingface Space 🤖 ModelScope Space 在线体验 CogVideoX-5B 模型

📚 查看 论文使用文档

👋 加入我们的 微信Discord

📍 前往 清影 API平台 体验更大规模的商业版视频生成模型。

项目更新

  • 🔥🔥 News: 2024/11/08: 我们发布 CogVideoX1.5 模型。CogVideoX1.5 是 CogVideoX 开源模型的升级版本。 CogVideoX1.5-5B 系列模型支持 10秒 长度的视频和更高的分辨率,其中 CogVideoX1.5-5B-I2V 支持 任意分辨率 的视频生成,SAT代码已经更新。diffusers版本还在适配中。SAT版本代码前往 这里 下载。
  • 🔥News: 2024/10/13: 成本更低,单卡4090可微调 CogVideoX-5B 的微调框架cogvideox-factory已经推出,多种分辨率微调,欢迎使用。
  • 🔥 News: 2024/10/10: 我们更新了我们的技术报告,请点击 这里 查看,附上了更多的训练细节和demo,关于demo,点击这里 查看。
  • 🔥 News: 2024/10/09: 我们在飞书技术文档 公开CogVideoX微调指导,以进一步增加分发自由度,公开文档中所有示例可以完全复现
  • 🔥 News: 2024/9/19: 我们开源 CogVideoX 系列图生视频模型 CogVideoX-5B-I2V 。该模型可以将一张图像作为背景输入,结合提示词一起生成视频,具有更强的可控性。 至此,CogVideoX系列模型已经支持文本生成视频,视频续写,图片生成视频三种任务。欢迎前往在线体验
  • 🔥 News: 2024/9/19: CogVideoX 训练过程中用于将视频数据转换为文本描述的 Caption 模型 CogVLM2-Caption 已经开源。欢迎前往下载并使用。
  • 🔥 2024/8/27: 我们开源 CogVideoX 系列更大的模型 CogVideoX-5B 。我们大幅度优化了模型的推理性能,推理门槛大幅降低,您可以在 GTX 1080TI 等早期显卡运行 CogVideoX-2B,在 RTX 3060 等桌面端甜品卡运行 CogVideoX-5B 模型。 请严格按照要求 更新安装依赖,推理代码请查看 cli_demo。同时,CogVideoX-2B 模型开源协议已经修改为Apache 2.0 协议
  • 🔥 2024/8/6: 我们开源 3D Causal VAE,用于 CogVideoX-2B,可以几乎无损地重构视频。
  • 🔥 2024/8/6: 我们开源 CogVideoX 系列视频生成模型的第一个模型, CogVideoX-2B
  • 🌱 Source: 2022/5/19: 我们开源了 CogVideo 视频生成模型(现在你可以在 CogVideo 分支中看到),这是首个开源的基于 Transformer 的大型文本生成视频模型,您可以访问 ICLR'23 论文 查看技术细节。

目录

跳转到指定部分:

快速开始

提示词优化

在开始运行模型之前,请参考 这里 查看我们是怎么使用GLM-4(或者同级别的其他产品,例如GPT-4) 大模型对模型进行优化的,这很重要, 由于模型是在长提示词下训练的,一个好的提示词直接影响了视频生成的质量。

SAT

查看sat文件夹下的 sat_demo:包含了 SAT 权重的推理代码和微调代码,推荐基于此代码进行 CogVideoX 模型结构的改进,研究者使用该代码可以更好的进行快速的迭代和开发。

Diffusers

pip install -r requirements.txt

查看diffusers_demo:包含对推理代码更详细的解释,包括各种关键的参数。

欲了解更多关于量化推理的细节,请参考 diffusers-torchao。使用 Diffusers 和 TorchAO,量化推理也是可能的,这可以实现内存高效的推理,并且在某些情况下编译后速度有所提升。有关在 A100 和 H100 上使用各种设置的内存和时间基准测试的完整列表,已发布在 diffusers-torchao 上。

视频作品

CogVideoX-5B

5b_1.mp4
5b_2.mp4
5b_3.mp4
5b_4.mp4
5b_5.mp4
5b_6.mp4
5b_7.mp4
5b_8.mp4

CogVideoX-2B

1.mp4
2.mp4
3.mp4
4.mp4

查看画廊的对应提示词,请点击这里

模型介绍

CogVideoX是 清影 同源的开源版本视频生成模型。 下表展示我们提供的视频生成模型相关基础信息:

模型名 CogVideoX1.5-5B (最新) CogVideoX1.5-5B-I2V (最新) CogVideoX-2B CogVideoX-5B CogVideoX-5B-I2V
发布时间 2024年11月8日 2024年11月8日 2024年8月6日 2024年8月27日 2024年9月19日
视频分辨率 1360 * 768 256 <= W <=1360
256 <= H <=768
W,H % 16 == 0
720 * 480
推理精度 BF16 FP16*(推荐), BF16, FP32,FP8*,INT8,不支持INT4 BF16(推荐), FP16, FP32,FP8*,INT8,不支持INT4
单GPU显存消耗
SAT BF16: 66GB
SAT FP16: 18GB
diffusers FP16: 4GB起*
diffusers INT8(torchao): 3.6G起*
SAT BF16: 26GB
diffusers BF16 : 5GB起*
diffusers INT8(torchao): 4.4G起*
多GPU推理显存消耗 不支持
FP16: 10GB* using diffusers
BF16: 15GB* using diffusers
推理速度
(Step = 50, FP/BF16)
单卡A100: ~1000秒(5秒视频)
单卡H100: ~550秒(5秒视频)
单卡A100: ~90秒
单卡H100: ~45秒
单卡A100: ~180秒
单卡H100: ~90秒
提示词语言 English*
提示词长度上限 224 Tokens 226 Tokens
视频长度 5 秒 或 10 秒 6 秒
帧率 16 帧 / 秒 8 帧 / 秒
位置编码 3d_rope_pos_embed 3d_sincos_pos_embed 3d_rope_pos_embed 3d_rope_pos_embed + learnable_pos_embed
下载链接 (Diffusers) 即将推出 🤗 HuggingFace
🤖 ModelScope
🟣 WiseModel
🤗 HuggingFace
🤖 ModelScope
🟣 WiseModel
🤗 HuggingFace
🤖 ModelScope
🟣 WiseModel
下载链接 (SAT) 🤗 HuggingFace
🤖 ModelScope
🟣 WiseModel
SAT

数据解释

  • 使用 diffusers 库进行测试时,启用了全部diffusers库自带的优化,该方案未测试在非NVIDIA A100 / H100 外的设备上的实际显存 / 内存占用。通常,该方案可以适配于所有 NVIDIA 安培架构 以上的设备。若关闭优化,显存占用会成倍增加,峰值显存约为表格的3倍。但速度提升3-4倍左右。你可以选择性的关闭部分优化,这些优化包括:
pipe.enable_sequential_cpu_offload()
pipe.vae.enable_slicing()
pipe.vae.enable_tiling()
  • 多GPU推理时,需要关闭 enable_sequential_cpu_offload() 优化。
  • 使用 INT8 模型会导致推理速度降低,此举是为了满足显存较低的显卡能正常推理并保持较少的视频质量损失,推理速度大幅降低。
  • CogVideoX-2B 模型采用 FP16 精度训练, 搜有 CogVideoX-5B 模型采用 BF16 精度训练。我们推荐使用模型训练的精度进行推理。
  • PytorchAOOptimum-quanto 可以用于量化文本编码器、Transformer 和 VAE 模块,以降低 CogVideoX 的内存需求。这使得在免费的 T4 Colab 或更小显存的 GPU 上运行模型成为可能!同样值得注意的是,TorchAO 量化完全兼容 torch.compile,这可以显著提高推理速度。在 NVIDIA H100 及以上设备上必须使用 FP8 精度,这需要源码安装 torchtorchaodiffusersaccelerate Python 包。建议使用 CUDA 12.4
  • 推理速度测试同样采用了上述显存优化方案,不采用显存优化的情况下,推理速度提升约10%。 只有diffusers版本模型支持量化。
  • 模型仅支持英语输入,其他语言可以通过大模型润色时翻译为英语。
  • 模型微调所占用的显存是在 8 * H100 环境下进行测试,程序已经自动使用Zero 2 优化。表格中若有标注具体GPU数量则必须使用大于等于该数量的GPU进行微调。

友情链接

我们非常欢迎来自社区的贡献,并积极的贡献开源社区。以下作品已经对CogVideoX进行了适配,欢迎大家使用:

  • CogVideoX-Fun: CogVideoX-Fun是一个基于CogVideoX结构修改后的的pipeline,支持自由的分辨率,多种启动方式。
  • CogStudio: CogVideo 的 Gradio Web UI单独实现仓库,支持更多功能的 Web UI。
  • Xorbits Inference: 性能强大且功能全面的分布式推理框架,轻松一键部署你自己的模型或内置的前沿开源模型。
  • ComfyUI-CogVideoXWrapper 使用ComfyUI框架,将CogVideoX加入到你的工作流中。
  • VideoSys: VideoSys 提供了易用且高性能的视频生成基础设施,支持完整的管道,并持续集成最新的模型和技术。
  • AutoDL镜像: 由社区成员提供的一键部署Huggingface Space镜像。
  • 室内设计微调模型 基于 CogVideoX的微调模型,它专为室内设计而设计
  • xDiT: xDiT是一个用于在多GPU集群上对DiTs并行推理的引擎。xDiT支持实时图像和视频生成服务。
  • CogVideoX-Interpolation: 基于 CogVideoX 结构修改的管道,旨在为关键帧插值生成提供更大的灵活性。
  • DiffSynth-Studio: DiffSynth 工作室是一款扩散引擎。重构了架构,包括文本编码器、UNet、VAE 等,在保持与开源社区模型兼容性的同时,提升了计算性能。该框架已经适配 CogVideoX。

完整项目代码结构

本开源仓库将带领开发者快速上手 CogVideoX 开源模型的基础调用方式、微调示例。

Colab 快速使用

这里提供了三个能直接在免费的 Colab T4上 运行的项目

inference

  • cli_demo: 更详细的推理代码讲解,常见参数的意义,在这里都会提及。
  • cli_demo_quantization: 量化模型推理代码,可以在显存较低的设备上运行,也可以基于此代码修改,以支持运行FP8等精度的CogVideoX模型。请注意,FP8 仅测试通过,且必须将 torch-nightly,torchao源代码安装,不建议在生产环境中使用。
  • diffusers_vae_demo: 单独执行VAE的推理代码。
  • space demo: Huggingface Space同款的 GUI 代码,植入了插帧,超分工具。
  • convert_demo: 如何将用户的输入转换成适合 CogVideoX的长输入。因为CogVideoX是在长文本上训练的,所以我们需要把输入文本的分布通过LLM转换为和训练一致的长文本。脚本中默认使用GLM-4,也可以替换为GPT、Gemini等任意大语言模型。
  • gradio_web_demo: 与 Huggingface Space 完全相同的代码实现,快速部署 CogVideoX GUI体验。

finetune

sat

  • sat_demo: 包含了 SAT 权重的推理代码和微调代码,推荐基于 CogVideoX 模型结构进行改进,创新的研究者使用改代码以更好的进行快速的堆叠和开发。

tools

本文件夹包含了一些工具,用于模型的转换 / Caption 等工作。

  • convert_weight_sat2hf: 将 SAT 模型权重转换为 Huggingface 模型权重。
  • caption_demo: Caption 工具,对视频理解并用文字输出的模型。
  • export_sat_lora_weight: SAT微调模型导出工具,将 SAT Lora Adapter 导出为 diffusers 格式。
  • load_cogvideox_lora: 载入diffusers版微调Lora Adapter的工具代码。
  • llm_flux_cogvideox: 使用开源本地大语言模型 + Flux + CogVideoX实现自动化生成视频。
  • parallel_inference_xdit: 在多个 GPU 上并行化视频生成过程, 由xDiT提供支持。
  • cogvideox-factory: CogVideoX低成文微调框架,适配diffusers 版本模型。支持更多分辨率,单卡4090即可微调 CogVideoX-5B 。

CogVideo(ICLR'23)

CogVideo: Large-scale Pretraining for Text-to-Video Generation via Transformers 的官方repo位于CogVideo branch

CogVideo可以生成高帧率视频,下面展示了一个32帧的4秒视频。

High-frame-rate sample

Intro images

1.mp4

CogVideo的demo网站在https://models.aminer.cn/cogvideo。您可以在这里体验文本到视频生成。 原始输入为中文。

引用

🌟 如果您发现我们的工作有所帮助,欢迎引用我们的文章,留下宝贵的stars

@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}
}
@article{hong2022cogvideo,
  title={CogVideo: Large-scale Pretraining for Text-to-Video Generation via Transformers},
  author={Hong, Wenyi and Ding, Ming and Zheng, Wendi and Liu, Xinghan and Tang, Jie},
  journal={arXiv preprint arXiv:2205.15868},
  year={2022}
}

我们欢迎您的贡献,您可以点击这里查看更多信息。

模型协议

本仓库代码使用 Apache 2.0 协议 发布。

CogVideoX-2B 模型 (包括其对应的Transformers模块,VAE模块) 根据 Apache 2.0 协议 许可证发布。

CogVideoX-5B 模型 (Transformers 模块,包括图生视频,文生视频版本) 根据 CogVideoX LICENSE 许可证发布。