📝个人主页🌹:Eternity._
🌹🌹期待您的关注 🌹🌹
❀CogVideoX
- 📒1. 初识CogVideoX
- 📚2. 部署与准备
- 🌞在丹摩智算平台上创建实例
- 🌸CogVideoX代码仓库的拉取、解压以及依赖的安装
- 📜3. 实践实验
- 📖4. 总结
前言:在当今这个数据驱动的时代,人工智能与大数据技术的飞速发展正深刻地改变着我们的生活和工作方式。作为这一领域的一名学习者与实践者,我有幸体验了丹摩智算平台,并特别选择了CogVideoX这一前沿的视频生成模型进行实践实验。通过这一过程,我不仅深入了解了视频生成技术的魅力,还深刻体会到了丹摩智算平台在算力支持、易用性等方面的卓越表现
📒1. 初识CogVideoX
CogVideoX
在这里插入代码片
是智谱AI开源的一款视频生成模型,其核心在于3D变分自编码器和3D旋转位置编码(3D RoPE)技术。这些技术使得CogVideoX
能够在保持视频帧间连贯性的同时,极大地降低计算资源需求,并生成流畅、连贯的视频序列。此外,CogVideoX
还具备强大的文本理解能力,能够处理超长且复杂的文本提示,生成与用户输入高度相关的视频内容
技术亮点
- 3D 变分自编码器:该技术将视频数据压缩至原来的 2%,极大地降低了模型处理视频时所需的计算资源,同时保持了视频帧与帧之间的连贯性,避免了生成过程中的闪烁问题
- 3D 旋转位置编码(3D RoPE):通过这项技术,CogVideoX 能够更好地捕捉时间维度上的帧间关系,建立视频中的长期依赖关系,从而生成更加流畅和连贯的视频序列
CogVideoX
是一款功能强大、技术领先且易于使用的视频生成模型,它的出现将为视频创作领域带来革命性的变化!
以下网址可以让大家更好的了解CogVideoX:
- CogVideoX代码仓库:https://github.com/THUDM/CogVideo
- 模型下载:https://huggingface.co/THUDM/CogVideoX-2b
- 技术报告:https://github.com/THUDM/CogVideo/blob/main/resources/CogVideoX.pdf
- 丹摩智算平台:https://damodel.com/register?source=C4FB0342
📚2. 部署与准备
🌞在丹摩智算平台上创建实例
在丹摩智算平台的支持下,我开始了CogVideoX的部署与准备工作。首先,我根据官方文档的指导,选择了合适的GPU云实例,并配置了必要的环境和依赖。由于CogVideoX在FP-16精度下的推理
至少需18GB显存
,我选择了性能强大的L40S显卡,并配置了PyTorch2.3.0、Ubuntu-22.04以及CUDA12.1的镜像环境
选择性能强大的L40S显卡,并配置了PyTorch2.3.0、Ubuntu-22.04以及CUDA12.1的镜像环境
登录实例,创建密钥对 -> 这里输入密钥对名称即可
在完成创建后,等待示例运行
🌸CogVideoX代码仓库的拉取、解压以及依赖的安装
仓库的拉取
在实例创建完成后,我们可以直接使用
JupyterLab
来进行操作,我们在进入后,使用终端对CogVideo代码仓库进行拉取
指令:wget http://file.s3/damodel-openfile/CogVideoX/CogVideo-main.tar
在拉取完成后,我们解压文件,进入文件夹,安装我们需要的依赖
依赖的安装
指令:
tar -xf CogVideo-main.tar
cd CogVideo-main/
pip install -r requirements.txt
等待依赖安装(时间可能有点漫长),在安装完成后,进入python环境进行测试
指令:
import torch
from diffusers import CogVideoXPipeline
from diffusers.utils import export_to_video
输入指令,若没有出现报错代码,则证明依赖安装成功,我们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代码仓库的拉取、解压以及依赖的安装。在确认一切配置无误后,我开始了模型的加载与初步测试
📜3. 实践实验
实践是检验真理的唯一标准。在成功部署
CogVideoX
后,我迫不及待地开始了实践实验。我利用模型提供的CogVideoXPipeline,根据一个详细的文本描述(prompt),尝试生成了一段生动的视频。这个prompt描述了一个穿着红色小夹克、戴着小帽子的熊猫,在宁静的竹林中坐在木凳上弹奏微型吉他,其他熊猫好奇地围观并打着节拍,阳光透过竹林洒在场地上,营造出一种和平而神奇的气氛(默认是这样,当然我们可以按自己意思修改)
进入CogVideo-main文件夹,运行test.py文件
指令:
cd /root/workspace/CogVideo-main
python test.py
这是文件中的默认选项:
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 视频
在模型的帮助下,我很快就得到了对应的视频文件。当看到视频中熊猫们栩栩如生的表演时,我深感震撼。CogVideoX不仅准确地捕捉了文本描述中的每一个细节,还通过流畅的帧间过渡和逼真的画面渲染,将这段文字转化为了生动的视觉体验
测试视频
假设我们将视频内容修改成
A little dog is lying on the grass and rolling over in the sunny day.
测试2
模型官方也提供了
webUIDemo
,进入CogVideo-main
文件夹,运行gradio_demo.py
文件
指令:
cd /root/workspace/CogVideo-main
python gradio_demo.py
通过丹摩平台提供的端口映射能力,把内网端口映射到公网,进入GPU 云实例页面,点击操作-更多-访问控制
添加端口,输入实例端口7870
添加成功后,通过访问链接即可访问到刚刚启动的
gradio
页面
📖4. 总结
- 性能提升:随着技术的不断进步,CogVideoX 未来的版本将拥有更强的性能和更多的功能,例如支持更高分辨率的视频生成、更长的视频长度以及更丰富的视频内容
- 应用拓展:CogVideoX 在影视制作、动画制作、游戏开发等领域具有广泛的应用前景,可以为用户提供更加高效和便捷的视频创作工具
不仅体会了CogVideoX的强大功能,还深刻体会到了丹摩智算平台在算力支持、易用性等方面的卓越表现,展现出了卓越的性能,我也期待看到更多像CogVideoX这样的创新技术不断涌现,为我们的生活和工作带来更多便利和惊喜