Cogvideox1.5 5B I2V
模型概述
CogVideoX 是一個基於圖像生成視頻的模型,能夠根據輸入的圖像生成高質量的視頻內容。
模型特點
高分辨率視頻生成
支持生成分辨率高達 1360 * 768 的視頻。
多 GPU 支持
支持多 GPU 推理,優化顯存使用。
多精度推理
支持 BF16、FP16、FP32、FP8、INT8 等多種精度推理。
模型能力
圖像轉視頻生成
高質量視頻合成
多分辨率支持
使用案例
創意內容生成
短視頻創作
根據輸入的圖像生成創意短視頻。
生成 5 或 10 秒的視頻,幀率為 16 幀/秒。
教育
教學視頻生成
根據教學圖像生成動態教學視頻。
🚀 CogVideoX1.5-5B-I2V
CogVideoX1.5-5B-I2V 是一個開源的視頻生成模型,類似於 QingYing,可實現從圖像到視頻的轉換。
📄 中文閱讀 | 🤗 Huggingface Space | 🌐 Github | 📜 arxiv
🚀 快速開始
這個模型支持使用 Hugging Face diffusers 庫進行部署。你可以按照以下步驟開始使用。
我們建議你訪問我們的 GitHub 查看提示優化和轉換方法,以獲得更好的體驗。
安裝所需依賴
# diffusers (從源代碼安裝)
# transformers>=4.46.2
# accelerate>=1.1.1
# imageio-ffmpeg>=0.5.1
pip install git+https://github.com/huggingface/diffusers
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/CogVideoX1.5-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=81,
guidance_scale=6,
generator=torch.Generator(device="cuda").manual_seed(42),
).frames[0]
export_to_video(video, "output.mp4", fps=8)
✨ 主要特性
CogVideoX 是一個類似於 QingYing 的開源視頻生成模型。以下表格列出了此版本可用的視頻生成模型的相關信息:
屬性 | CogVideoX1.5-5B | CogVideoX1.5-5B-I2V (當前倉庫) |
---|---|---|
視頻分辨率 | 1360 * 768 | Min(W, H) = 768 768 ≤ Max(W, H) ≤ 1360 Max(W, H) % 16 = 0 |
推理精度 | BF16 (推薦),FP16,FP32,FP8*,INT8,不支持 INT4 | BF16 (推薦),FP16,FP32,FP8*,INT8,不支持 INT4 |
單 GPU 推理內存消耗 | BF16:至少 9GB* | BF16:至少 9GB* |
多 GPU 推理內存消耗 | BF16:使用 diffusers 時為 24GB* | BF16:使用 diffusers 時為 24GB* |
推理速度 (Step = 50, FP/BF16) |
單 A100:約 1000 秒 (5 秒視頻) 單 H100:約 550 秒 (5 秒視頻) |
單 A100:約 1000 秒 (5 秒視頻) 單 H100:約 550 秒 (5 秒視頻) |
提示語言 | 英語* | 英語* |
最大提示長度 | 224 個詞元 | 224 個詞元 |
視頻長度 | 5 或 10 秒 | 5 或 10 秒 |
幀率 | 16 幀/秒 | 16 幀/秒 |
數據說明
- 使用
diffusers
庫進行測試時,啟用了庫中包含的所有優化。此方案尚未在非 NVIDIA A100/H100 設備上進行測試,一般來說,它應該適用於所有 NVIDIA Ampere 架構或更高版本的設備。禁用優化會使顯存使用量增加兩倍,但速度會提高 3 - 4 倍。你可以選擇性地禁用某些優化,包括:
pipe.enable_sequential_cpu_offload()
pipe.vae.enable_slicing()
pipe.vae.enable_tiling()
- 在多 GPU 推理中,需要禁用
enable_sequential_cpu_offload()
優化。 - 使用 INT8 模型會降低推理速度,在滿足較低顯存 GPU 要求的同時,視頻質量的下降最小,但代價是速度顯著降低。
- 可以使用 PytorchAO 和 Optimum-quanto 對文本編碼器、Transformer 和 VAE 模塊進行量化,從而降低 CogVideoX 的內存需求,使模型能夠在顯存較小的 GPU 上運行。TorchAO 量化與
torch.compile
完全兼容,可顯著提高推理速度。NVIDIA H100 及以上設備需要FP8
精度,這需要從源代碼安裝torch
、torchao
、diffusers
和accelerate
。建議使用CUDA 12.4
。 - 推理速度測試也使用了上述顯存優化,在不進行優化的情況下,速度大約提高 10%。只有
diffusers
版本的模型支持量化。 - 模型僅支持英文輸入,在編寫提示時,其他語言應使用更大的模型翻譯成英文。
注意事項
- 使用 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/CogVideoX1.5-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=81,
guidance_scale=6,
generator=torch.Generator(device="cuda").manual_seed(42),
).frames[0]
export_to_video(video, "output.mp4", fps=8)
量化推理
# 首先,需要從 GitHub 源代碼安裝 PytorchAO 和 PyTorch Nightly。
# 在下一個版本發佈之前,才需要從源代碼和 Nightly 版本安裝。
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/CogVideoX1.5-5B-I2V", subfolder="text_encoder",
torch_dtype=torch.bfloat16)
quantize_(text_encoder, quantization())
transformer = CogVideoXTransformer3DModel.from_pretrained("THUDM/CogVideoX1.5-5B-I2V", subfolder="transformer",
torch_dtype=torch.bfloat16)
quantize_(transformer, quantization())
vae = AutoencoderKLCogVideoX.from_pretrained("THUDM/CogVideoX1.5-5B-I2V", subfolder="vae", torch_dtype=torch.bfloat16)
quantize_(vae, quantization())
# 創建管道並運行推理
pipe = CogVideoXImageToVideoPipeline.from_pretrained(
"THUDM/CogVideoX1.5-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=81,
guidance_scale=6,
generator=torch.Generator(device="cuda").manual_seed(42),
).frames[0]
export_to_video(video, "output.mp4", fps=8)
此外,可以使用 PytorchAO 將這些模型序列化為量化數據類型並存儲,以節省磁盤空間。你可以在以下鏈接找到示例和基準測試:
📚 詳細文檔
你可以隨時訪問我們的 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