丹摩征文活动 | CogVideoX-2b实战部署:简化文字生成视频步骤
一、CogVideoX-2b简介
随着生成式AI技术的快速发展,视频生成模型逐渐成为人工智能研究和应用中的重要方向。其中,CogVideoX-2b脱颖而出,作为一款强大的文本生成视频(Text-to-Video)模型,展示了文本描述与视频内容生成的高度关联性和表现力。
模型特点
大规模参数与高质量输出
CogVideoX-2b基于2B(20亿)参数构建,采用了先进的扩散模型架构,能够理解复杂的自然语言描述并生成逼真的视频内容。
多模态对齐
模型经过多模态对齐优化,支持生成语义一致的视频片段,将文本中隐含的动态行为和场景细节精确映射到视频。
高效推理与可扩展性
在FP16精度下,CogVideoX-2b能够以高效的推理速度生成视频,适用于具有高性能显卡的科研团队或企业。
应用场景
影视制作:快速生成创意短片或概念设计视频。
教育和培训:为在线课程生成可视化演示内容。
广告与营销:基于文本广告语生成具有视觉冲击力的视频片段。
科研与实验:研究文本与视频之间的语义映射关系。
技术亮点
基于扩散模型:使用扩散式生成架构,逐步优化视频帧质量。
中文与多语言支持:专为多语言用户优化,支持中文等多种语言输入。
开放性与易用性:开源模型与工具包,使开发者能够轻松部署并应用于各种场景。
二、创建实例
登录丹摩官网,点击控制台,进去后点击GPU云实例
在使用CogVideoX进行推理和微调时,显存需求需要特别注意。在FP-16模式下,推理操作最低需要18GB的显存,而微调则要求显存达到40GB。因此,建议采用L40S显卡(首选)或4090显卡,以确保满足这些性能需求。
镜像选择 PyTorch2.3.0、Ubuntu-22.04,CUDA12.1 镜像。
生成并访问实例,只需点击生成密钥对,输入名称即可完成创建。
实例创建成功
三、配置环境
丹摩平台提供了优化后的代码库,方便用户直接使用。打开 JupyterLab,启动终端,首先克隆 CogVideo 的代码仓库。
wget http://file.s3/damodel-openfile/CogVideoX/CogVideo-main.tar
下载完成后解压缩CogVideo-main.tar,完成后进入 CogVideo-main 文件夹,输入安装对应依赖。
依赖安装完成后,你可以在终端键入 python,直接进入 Python 环境,准备开始编写和调试代码。
import torch
from diffusers import CogVideoXPipeline
from diffusers.utils import export_to_video
如果在过程中没有出现错误信息,则表示依赖已成功安装!要退出 Python 环境,只需输入quit()即可。
四、配置文件
除了设置代码和安装项目依赖外,还需上传 CogVideoX 模型及其配置文件。平台已提前配置好 CogVideoX 模型,您可以通过内网快速获取下载。
cd /root/workspace
wget http://file.s3/damodel-openfile/CogVideoX/CogVideoX-2b.tar
这种预加载功能大大简化了您的准备工作,使您能够专注于项目的开发和实现。通过这种方式,您无需担心模型文件的获取和上传过程,因为平台已经为您提供了便捷的解决方案。只需简单几步,您就可以迅速得到所需文件,并投入到更具创造性的工作中。
下载完成后解压缩CogVideoX-2b.tar。
tar -xf CogVideoX-2b.tar
解压后的效果图:
五、运行CogVideoX-2b
进入CogVideo-main文件夹,运行test.py文件。
cd /root/workspace/CogVideo-main
python test.py
test.py 代码内容如下,主要使用diffusers库中的CogVideoXPipeline模型,加载了一个预训练的 CogVideo 模型,然后根据一个详细的文本描述(prompt),生成对应视频。
import torch
from diffusers import CogVideoXPipeline
from diffusers.utils import export_to_video
# prompt里写自定义想要生成的视频内容
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."
pipe = CogVideoXPipeline.from_pretrained(
"/root/workspace/CogVideoX-2b", # 这里填CogVideo模型存放的位置,此处是放在了数据盘中
torch_dtype=torch.float16
).to("cuda")
# 参数do_classifier_free_guidance设置为True可以启用无分类器指导,增强生成内容一致性和多样性
# num_videos_per_prompt控制每个prompt想要生成的视频数量
# max_sequence_length控制输入序列的最大长度
prompt_embeds, _ = pipe.encode_prompt(
prompt=prompt,
do_classifier_free_guidance=True,
num_videos_per_prompt=1,
max_sequence_length=226,
device="cuda",
dtype=torch.float16,
)
video = pipe(
num_inference_steps=50,
guidance_scale=6,
prompt_embeds=prompt_embeds,
).frames[0]
export_to_video(video, "output.mp4", fps=8)
运行成功后,可以在 CogVideo-main 文件夹中找到对应 prompt 生成的 output.mp4 视频。
模型官方也提供了 webUIDemo,进入CogVideo-main文件夹,运行gradio_demo.py文件。
cd /root/workspace/CogVideo-main
python gradio_demo.py
通过丹摩平台提供的端口映射能力,把内网端口映射到公网,进入GPU 云实例页面,点击操作-更多-访问控制。
点击添加端口,添加7870端口。
添加成功后,通过访问链接即可访问到刚刚启动的 gradio 页面。
六、效果展示
A street artist, clad in a worn-out denim jacket and a colorful bandana, stands before a vast concrete wall in the heart, holding a can of spray paint, spray-painting a colorful bird on a mottled wall.