CogVideoX-5B是由智谱 AI 开源的一款先进的文本到视频生成模型,它是 CogVideoX 系列中的更大尺寸版本,旨在提供更高质量的视频生成效果。
CogVideoX-5B 采用了 3D 因果变分自编码器(3D causal VAE)技术,通过在空间和时间维度上对视频进行压缩,大幅度降低了计算复杂度,同时提高了视频生成的连续性和质量。
此外,模型还使用了专家 Transformer 技术,通过 3D-RoPE 作为位置编码,并采用 3D 全注意力机制来进行时空联合建模,改善视频与文本的对齐。
CogVideoX-5B模型能够生成高达 720×480 分辨率、每秒 8 帧、最长 6 秒的视频,使得生成的视频在动态表现上更为连贯流畅。
在硬件适配性上,CogVideoX-5B表现出色,可以在 RTX 3060 等桌面端显卡上运行,推理门槛大幅降低,使得更多的用户能够体验到顶尖的 AI 视频生成技术。
CogVideoX-5B模型支持多种精度的推理方式,如 FP16、BF16、FP32、INT8 等,用户可以根据自身硬件情况灵活选择,以在性能和效率之间找到最佳平衡点。
github项目地址:https://github.com/THUDM/CogVideo。
一、环境安装
1、python环境
建议安装python版本在3.10以上。
2、pip库安装
pip install torch==2.4.0+cu118 torchvision==0.19.0+cu118 torchaudio==2.4.0 --extra-index-url https://download.pytorch.org/whl/cu118
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
3、CogVideoX-5b模型下载:
git lfs install
git clone https://www.modelscope.cn/AI-ModelScope/CogVideoX-5b.git
二、功能测试
1、运行测试:
(1)python代码调用测试
import torch
from diffusers import CogVideoXPipeline
from diffusers.utils import export_to_video
import logging
def generate_video(model_path, prompt, output_path, num_videos=1, inference_steps=50, num_frames=49, guidance_scale=6, seed=42, fps=8):
try:
# Initialize logger
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger("VideoGeneration")
# Load model
logger.info("Loading model from path: %s", model_path)
pipe = CogVideoXPipeline.from_pretrained(
model_path,
torch_dtype=torch.bfloat16
)
pipe.enable_model_cpu_offload()
pipe.vae.enable_tiling()
# Log device information
logger.info("Using device: %s", torch.cuda.get_device_name(0))
# Generate video
logger.info("Generating video with prompt: %s", prompt)
video = pipe(
prompt=prompt,
num_videos_per_prompt=num_videos,
num_inference_steps=inference_steps,
num_frames=num_frames,
guidance_scale=guidance_scale,
generator=torch.Generator(device="cuda").manual_seed(seed),
).frames[0]
# Export video
logger.info("Exporting video to file: %s", output_path)
export_to_video(video, output_path, fps=fps)
logger.info("Video generation completed successfully.")
except Exception as e:
logger.error("An error occurred during video generation: %s", str(e))
if __name__ == "__main__":
model_path = "CogVideoX-5b"
prompt = ("A panda, dressed in a small, red jacket and a tiny hat, sits on a wooden stool in a serene bamboo forest. "
"The panda's fluffy paws strum a miniature acoustic guitar, producing soft, melodic tunes. Nearby, a few other pandas gather, "
"watching curiously and some clapping in rhythm. Sunlight filters through the tall bamboo, casting a gentle glow on the scene. "
"The panda's face is expressive, showing concentration and joy as it plays. The background includes a small, flowing stream and "
"vibrant green foliage, enhancing the peaceful and magical atmosphere of this unique musical performance.")
output_path = "output.mp4"
generate_video(model_path, prompt, output_path)
未完......
更多详细的欢迎关注:杰哥新技术