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}
}
精選推薦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