Cogvideox 5b I2V
模型简介
CogVideoX-5B-I2V是专为图像转视频任务设计的生成模型,能够将静态图像转换为动态视频序列。
模型特点
高质量视频生成
能够生成6秒时长、8帧/秒的720x480分辨率视频
多精度支持
支持BF16、FP16、FP32、FP8和INT8等多种推理精度
低显存优化
通过量化技术可在低显存GPU上运行,最低仅需4.4GB显存
模型能力
图像到视频转换
动态视频生成
基于文本提示的视频编辑
使用案例
内容创作
短视频制作
将静态图片转换为动态短视频
生成6秒时长的流畅视频
教育
教学演示
将教学图示转换为动态演示
🚀 CogVideoX-5B-I2V
CogVideoX-5B-I2V 是一个开源的图像到视频生成模型,源自 清影。该模型在视频生成领域具有出色的性能,能够根据输入的图像生成高质量的视频。
📄 英文文档 | 🤗 Huggingface 空间 | 🌐 Github | 📜 arxiv
📍 访问 清影 和 API 平台 获取视频生成模型的商业版本
🚀 快速开始
本模型支持使用 Hugging Face diffusers 库进行部署。你可以按照以下步骤开始使用。
建议访问我们的 GitHub 查看提示词优化和转换方法,以获得更好的体验。
- 安装所需依赖
# diffusers>=0.30.3
# transformers>=0.44.2
# accelerate>=0.34.0
# imageio-ffmpeg>=0.5.1
pip install --upgrade transformers accelerate diffusers imageio-ffmpeg
- 运行代码
import torch
from diffusers import CogVideoXImageToVideoPipeline
from diffusers.utils import export_to_video, load_image
prompt = "A little girl is riding a bicycle at high speed. Focused, detailed, realistic."
image = load_image(image="input.jpg")
pipe = CogVideoXImageToVideoPipeline.from_pretrained(
"THUDM/CogVideoX-5b-I2V",
torch_dtype=torch.bfloat16
)
pipe.enable_sequential_cpu_offload()
pipe.vae.enable_tiling()
pipe.vae.enable_slicing()
video = pipe(
prompt=prompt,
image=image,
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)
✨ 主要特性
CogVideoX 系列模型提供了不同规格的视频生成模型,以满足不同用户的需求。以下是各模型的详细信息:
属性 | 详情 |
---|---|
模型名称 | CogVideoX-2B、CogVideoX-5B、CogVideoX-5B-I2V(本仓库) |
模型描述 | CogVideoX-2B 是入门级模型,兼顾兼容性,运行和二次开发成本低;CogVideoX-5B 模型更大,视频生成质量更高,视觉效果更好;CogVideoX-5B-I2V 是 CogVideoX-5B 的图像到视频版本。 |
推理精度 | CogVideoX-2B 支持 FP16*(推荐)、BF16、FP32、FP8*、INT8,不支持 INT4;CogVideoX-5B 和 CogVideoX-5B-I2V 支持 BF16 (推荐)、FP16、FP32、FP8*、INT8,不支持 INT4。 |
单 GPU 内存使用量 | 不同模型和精度下的内存使用量不同,具体可参考表格中的详细信息。 |
多 GPU 推理内存使用量 | CogVideoX-2B 使用 diffusers 的 FP16 时为 10GB*;CogVideoX-5B 和 CogVideoX-5B-I2V 使用 diffusers 的 BF16 时为 15GB*。 |
推理速度 | 不同 GPU 型号和模型的推理速度不同,具体可参考表格中的详细信息。 |
微调精度 | CogVideoX-2B 为 FP16;CogVideoX-5B 和 CogVideoX-5B-I2V 为 BF16。 |
微调内存使用量 | 不同模型和批量大小下的微调内存使用量不同,具体可参考表格中的详细信息。 |
提示词语言 | 英文* |
最大提示词长度 | 226 个词元 |
视频长度 | 6 秒 |
帧率 | 8 帧/秒 |
视频分辨率 | 720 x 480,不支持其他分辨率(包括微调) |
位置嵌入 | CogVideoX-2B 为 3d_sincos_pos_embed;CogVideoX-5B 为 3d_rope_pos_embed;CogVideoX-5B-I2V 为 3d_rope_pos_embed + learnable_pos_embed |
数据说明
- 在使用 diffusers 库进行测试时,启用了 diffusers 库中包含的所有优化。该方案尚未在 NVIDIA A100 / H100 架构以外的设备上测试实际内存使用情况。一般来说,该方案可以适配所有 NVIDIA Ampere 架构 及以上的设备。如果禁用优化,内存消耗将成倍增加,峰值内存使用量约为表格中值的 3 倍,但速度将提高约 3 - 4 倍。你可以选择性地禁用一些优化,包括:
pipe.enable_sequential_cpu_offload()
pipe.vae.enable_slicing()
pipe.vae.enable_tiling()
- 对于多 GPU 推理,需要禁用
enable_sequential_cpu_offload()
优化。 - 使用 INT8 模型会减慢推理速度,这是为了适应低内存 GPU,同时保持最小的视频质量损失,但推理速度会显著降低。
- CogVideoX-2B 模型在
FP16
精度下训练,所有 CogVideoX-5B 模型在BF16
精度下训练。建议使用模型训练时的精度进行推理。 - 可以使用 PytorchAO 和 Optimum-quanto 对文本编码器、Transformer 和 VAE 模块进行量化,以降低 CogVideoX 的内存需求。这使得模型可以在免费的 T4 Colab 或内存较小的 GPU 上运行!此外,请注意 TorchAO 量化与
torch.compile
完全兼容,可以显著提高推理速度。FP8 精度必须在 NVIDIA H100 及以上的设备上使用,需要从源代码安装torch
、torchao
、diffusers
和accelerate
Python 包。建议使用 CUDA 12.4。 - 推理速度测试也使用了上述内存优化方案。如果不进行内存优化,推理速度将提高约 10%。只有
diffusers
版本的模型支持量化。 - 模型仅支持英文输入;其他语言可以通过大模型翻译为英文后使用。
- 模型微调的内存使用量是在
8 * H100
环境下测试的,程序会自动使用Zero 2
优化。如果表格中标记了特定数量的 GPU,则必须使用该数量或更多的 GPU 进行微调。
提醒
- 使用 SAT 进行 SAT 版本模型的推理和微调。更多详细信息请访问我们的 GitHub。
💻 使用示例
基础用法
import torch
from diffusers import CogVideoXImageToVideoPipeline
from diffusers.utils import export_to_video, load_image
prompt = "A little girl is riding a bicycle at high speed. Focused, detailed, realistic."
image = load_image(image="input.jpg")
pipe = CogVideoXImageToVideoPipeline.from_pretrained(
"THUDM/CogVideoX-5b-I2V",
torch_dtype=torch.bfloat16
)
pipe.enable_sequential_cpu_offload()
pipe.vae.enable_tiling()
pipe.vae.enable_slicing()
video = pipe(
prompt=prompt,
image=image,
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 进行量化推理
import torch
from diffusers import AutoencoderKLCogVideoX, CogVideoXTransformer3DModel, CogVideoXImageToVideoPipeline
from diffusers.utils import export_to_video, load_image
from transformers import T5EncoderModel
from torchao.quantization import quantize_, int8_weight_only
quantization = int8_weight_only
text_encoder = T5EncoderModel.from_pretrained("THUDM/CogVideoX-5b-I2V", subfolder="text_encoder", torch_dtype=torch.bfloat16)
quantize_(text_encoder, quantization())
transformer = CogVideoXTransformer3DModel.from_pretrained("THUDM/CogVideoX-5b-I2V",subfolder="transformer", torch_dtype=torch.bfloat16)
quantize_(transformer, quantization())
vae = AutoencoderKLCogVideoX.from_pretrained("THUDM/CogVideoX-5b-I2V", subfolder="vae", torch_dtype=torch.bfloat16)
quantize_(vae, quantization())
# 创建管道并进行推理
pipe = CogVideoXImageToVideoPipeline.from_pretrained(
"THUDM/CogVideoX-5b-I2V",
text_encoder=text_encoder,
transformer=transformer,
vae=vae,
torch_dtype=torch.bfloat16,
)
pipe.enable_model_cpu_offload()
pipe.vae.enable_tiling()
pipe.vae.enable_slicing()
prompt = "A little girl is riding a bicycle at high speed. Focused, detailed, realistic."
image = load_image(image="input.jpg")
video = pipe(
prompt=prompt,
image=image,
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)
📚 详细文档
你可以进入我们的 GitHub 进行更多探索,在那里你可以找到:
- 更详细的技术说明和代码。
- 优化后的提示词示例和转换方法。
- 模型推理和微调的详细代码。
- 项目更新日志和更多互动机会。
- CogVideoX 工具链,帮助你更好地使用模型。
- INT8 模型推理代码。
📄 许可证
本模型遵循 CogVideoX 许可证 发布。
引用
@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}
}
Cogvideox 5b I2V
其他
CogVideoX是源自清影的开源视频生成模型,本版本为图像转视频专用模型,基于5B参数规模。
图像生成视频 英语
C
THUDM
89.01k
288
Cogvideox1.5 5B I2V
其他
CogVideoX 是一个开源视频生成模型,支持从图像生成视频,类似于清影平台。
图像生成视频 英语
C
THUDM
8,897
102
Hunyuanvideo I2V
其他
混元视频-I2V是一个全新的图像转视频生成框架,基于腾讯混元视频模型扩展,支持从静态图像生成高质量视频内容。
图像生成视频
H
tencent
3,272
305
Muscle
Apache-2.0
基于Wan2.1 14B I2V 480p模型训练的LoRA,可将图像中的人物转换为展示肌肉的视频。
图像生成视频 英语
M
Remade-AI
1,877
9
Princess
Apache-2.0
基于Wan2.1 14B I2V 480p模型训练的LoRA,可将图像中的任何人/物体转化为公主版本
图像生成视频 英语
P
Remade-AI
449
3
Classy
Apache-2.0
基于Wan2.1 14B I2V 480p模型训练的LoRA,可将图像中的任意人物/物体转化为优雅形态的动态视频
图像生成视频 英语
C
Remade-AI
83
3
Cogvideox I2V Locobot
其他
针对THUDM/CogVideoX-5b-I2V训练的LoRA权重,用于图像转视频任务
图像生成视频
C
BelGio13
21
0
精选推荐AI模型
Llama 3 Typhoon V1.5x 8b Instruct
专为泰语设计的80亿参数指令模型,性能媲美GPT-3.5-turbo,优化了应用场景、检索增强生成、受限生成和推理任务
大型语言模型
Transformers 支持多种语言

L
scb10x
3,269
16
Cadet Tiny
Openrail
Cadet-Tiny是一个基于SODA数据集训练的超小型对话模型,专为边缘设备推理设计,体积仅为Cosmo-3B模型的2%左右。
对话系统
Transformers 英语

C
ToddGoldfarb
2,691
6
Roberta Base Chinese Extractive Qa
基于RoBERTa架构的中文抽取式问答模型,适用于从给定文本中提取答案的任务。
问答系统 中文
R
uer
2,694
98