license: other
license_link: https://huggingface.co/THUDM/CogVideoX-5b/blob/main/LICENSE
language:
- en
tags:
- cogvideox
- video-generation
- thudm
- text-to-video
inference: false
CogVideoX-5B
📄 中文阅读 |
🤗 Huggingface Space |
🌐 Github |
📜 arxiv
📍 访问 清影 和 API 平台 体验商业视频生成模型。
演示展示
带字幕的视频画廊
花园中,一群五彩斑斓的蝴蝶在花丛间翩翩起舞,它们精致的翅膀在花瓣上投下斑驳的影子。背景中,一座宏伟的喷泉优雅地倾泻着水流,其节奏感的声音为场景增添了舒缓的背景音。一棵成熟的大树下,一把孤零零的木椅静静地摆放着,邀请人们在此独处与沉思,其光滑的表面见证了无数访客在此寻求片刻宁静的痕迹。
一个小男孩低着头,脸上写满决心,在倾盆大雨中奋力奔跑,远处闪电划破天空,雷声隆隆。无情的雨水拍打着地面,形成一片混乱的水花,与天空中愤怒的戏剧性景象相呼应。远处,一座温馨的家的剪影隐约可见,成为这场猛烈天气中安全与温暖的微弱灯塔。这一幕展现了孩子面对恶劣天气时的坚韧与不屈精神。
一位穿着宇航服的宇航员,靴子上沾满了火星的红色尘埃,在第四行星粉红色的天空下,伸出手与一位皮肤闪烁着蓝色光芒的外星生物握手。背景中,一枚光滑的银色火箭矗立着,象征着人类的智慧,其引擎已关闭,两位来自不同世界的代表在这片荒凉而美丽的火星景观中交换着历史性的问候。
一位表情安详的老先生坐在水边,身旁放着一杯冒着热气的茶。他全神贯注于自己的艺术创作,手持画笔,在一块靠在小而破旧的桌子上的画布上绘制油画。海风轻拂着他银色的头发,宽松的白衬衫随风轻轻飘动,咸咸的空气为他正在创作的作品增添了一种难以言喻的元素。这一幕充满了宁静与灵感,画布上捕捉了夕阳映照在平静海面上的绚丽色彩。
在一间光线昏暗的酒吧里,紫色的灯光洒在一位成熟男子的脸上,他若有所思地眨着眼睛,背景被巧妙地虚化以突出他内省的表情,酒吧的氛围仅通过阴影和柔和的灯光暗示。
一只戴着光滑黑色太阳镜的金毛寻回犬,长长的毛发在微风中飘扬,在一场小雨后清新的屋顶露台上欢快地奔跑。场景从远处展开,随着狗狗充满活力的跳跃逐渐接近镜头,尾巴不受控制地摇摆着,身后的混凝土上闪烁着水滴的光芒。阴沉的天空为这一幕提供了戏剧性的背景,突出了这只金色犬只冲向观众时鲜艳的毛发。
在一个阳光明媚的日子里,湖岸边排列着一排柳树,它们纤细的枝条在微风中轻轻摇曳。平静的湖面反射着清澈的蓝天,几只优雅的天鹅在静止的水面上优雅地滑行,留下细微的涟漪,打破了湖面如镜般的质感。这一幕充满了宁静的美感,柳树的绿色为这些和平的鸟类访客提供了如画的框架。
一位穿着柔和淡色长袍的中国母亲,在育婴室宁静的环境中,舒适地坐在摇椅上轻轻摇晃。昏暗的卧室装饰着从天花板垂下的异想天开的挂饰,在墙上投下舞动的影子。她的婴儿被包裹在精致的图案毯子里,靠在她的胸前,孩子先前的哭声已被满足的咿呀声取代,母亲温柔的声音哄着孩子入睡。空气中弥漫着薰衣草的香气,增添了宁静的氛围,而附近夜灯发出的温暖橙色光芒以柔和的色调照亮了这一幕,捕捉到了温柔的爱与安慰的瞬间。
模型介绍
CogVideoX 是源自 清影 的视频生成模型的开源版本。下表展示了我们目前提供的视频生成模型列表及其基础信息。
模型名称 |
CogVideoX-2B |
CogVideoX-5B (本仓库) |
模型描述 |
入门级模型,平衡兼容性。运行和二次开发成本低。 |
更大模型,视频生成质量更高,视觉效果更好。 |
推理精度 |
FP16* (推荐), BF16, FP32, FP8*, INT8, 不支持 INT4 |
BF16 (推荐), FP16, FP32, FP8*, INT8, 不支持 INT4 |
单 GPU VRAM 消耗
|
SAT FP16: 18GB diffusers FP16: 最低 4GB* diffusers INT8(torchao): 最低 3.6GB* |
SAT BF16: 26GB diffusers BF16: 最低 5GB* diffusers INT8(torchao): 最低 4.4GB* |
多 GPU 推理 VRAM 消耗 |
FP16: 使用 diffusers 时 10GB* |
BF16: 使用 diffusers 时 15GB* |
推理速度 (步数 = 50, FP/BF16) |
单 A100: ~90 秒 单 H100: ~45 秒 |
单 A100: ~180 秒 单 H100: ~90 秒 |
微调精度 |
FP16 |
BF16 |
微调 VRAM 消耗 (每 GPU) |
47 GB (bs=1, LORA) 61 GB (bs=2, LORA) 62GB (bs=1, SFT) |
63 GB (bs=1, LORA) 80 GB (bs=2, LORA) 75GB (bs=1, SFT) |
提示语言 |
英语* |
提示长度限制 |
226 个标记 |
视频长度 |
6 秒 |
帧率 |
每秒 8 帧 |
视频分辨率 |
720 x 480,不支持其他分辨率(包括微调) |
位置编码 |
3d_sincos_pos_embed |
3d_rope_pos_embed |
数据说明
- 使用
diffusers
库测试时,启用了 diffusers
库提供的所有优化。此方案仅在 NVIDIA A100 / H100 设备上测试了实际 VRAM/内存使用情况。通常,此方案可适配所有 NVIDIA Ampere 架构 及以上的设备。如果禁用优化,VRAM 使用量将显著增加,峰值 VRAM 使用量约为表中显示的 3 倍。但速度将提高 3-4 倍。您可以选择性地禁用部分优化,包括:
pipe.enable_model_cpu_offload()
pipe.enable_sequential_cpu_offload()
pipe.vae.enable_slicing()
pipe.vae.enable_tiling()
- 进行多 GPU 推理时,需要禁用
enable_model_cpu_offload()
优化。
- 使用 INT8 模型会降低推理速度。这是为了确保 VRAM 较低的 GPU 能够正常进行推理,同时保持最小的视频质量损失,尽管推理速度会显著下降。
- 2B 模型使用
FP16
精度训练,5B 模型使用 BF16
精度训练。我们建议使用模型训练时的精度进行推理。
- PytorchAO 和 Optimum-quanto 可用于量化文本编码器、Transformer 和 VAE 模块,以降低 CogVideoX 的内存需求。这使得模型可以在免费的 T4 Colab 或 VRAM 较小的 GPU 上运行!值得注意的是,TorchAO 量化与
torch.compile
完全兼容,可以显著提高推理速度。FP8
精度必须在 NVIDIA H100
或更高设备上使用,需要从源代码安装 torch
、torchao
、diffusers
和 accelerate
Python 包。推荐使用 CUDA 12.4
。
- 推理速度测试也使用了上述 VRAM 优化方案。未启用 VRAM 优化时,推理速度提高约 10%。仅
diffusers
版本的模型支持量化。
- 模型仅支持英文输入;其他语言可以通过大模型在优化时翻译成英文。
注意事项
- 使用 SAT 进行 SAT 版本模型的推理和微调。欢迎访问我们的 GitHub 了解更多信息。
快速开始 🤗
本模型支持使用 huggingface diffusers 库进行部署。您可以按照以下步骤进行部署。
我们建议您访问我们的 GitHub 并查看相关的提示优化和转换,以获得更好的体验。
- 安装必要的依赖
# diffusers>=0.30.1
# transformers>=4.44.2
# accelerate>=0.33.0 (建议从源代码安装)
# imageio-ffmpeg>=0.5.1
pip install --upgrade transformers accelerate diffusers imageio-ffmpeg
- 运行代码
import torch
from diffusers import CogVideoXPipeline
from diffusers.utils import export_to_video
prompt = "一只穿着小红夹克和小帽子的熊猫,坐在宁静竹林中的木凳上。熊猫毛茸茸的爪子拨弄着一把迷你原声吉他,奏出柔和、旋律优美的曲调。附近,几只其他熊猫好奇地围观,有的还跟着节奏拍手。阳光透过高高的竹子洒下,为这一幕投下柔和的光芒。熊猫的表情丰富,演奏时显得专注而快乐。背景中有一条潺潺的小溪和翠绿的植被,为这场独特的音乐表演增添了宁静而神奇的氛围。"
pipe = CogVideoXPipeline.from_pretrained(
"THUDM/CogVideoX-5b",
torch_dtype=torch.bfloat16
)
pipe.enable_model_cpu_offload()
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)
量化推理
PytorchAO 和 Optimum-quanto 可用于量化文本编码器、Transformer 和 VAE 模块,以降低 CogVideoX 的内存需求。这使得模型可以在免费的 T4 Colab 或 VRAM 较小的 GPU 上运行!值得注意的是,TorchAO 量化与 torch.compile
完全兼容,可以显著提高推理速度。
# 开始前,需要从 GitHub 源代码安装 PytorchAO 和 PyTorch Nightly。
# 源代码和 nightly 安装仅在下一个版本发布前需要。
import torch
from diffusers import