当前位置: 首页 > news >正文

丹摩征文活动|AIGC实践-基于丹摩算力和CogVideoX-2b实现文生视频

一、CogVideoX简介

CogVideoX 是由智谱AI开源的新一代视频生成模型,属于大型语言模型在多模态应用中的重要突破。CogVideoX-2b 版本在参数规模和推理速度上进行了优化,支持视频从文本描述生成,并进一步提升了视频的分辨率和流畅度。相比于上一代的模型,CogVideoX-2b 具备更好的语义理解能力,能够基于多种复杂场景和长文本描述生成高质量的视频片段。此版本开源,支持本地部署和复现,适合研究者、开发者进行多模态应用开发和探索。

CogVideoX 的核心在于它的 3D 变分自编码器,这项技术能够将视频数据压缩至原来的 2%,极大地降低了模型处理视频时所需的计算资源,还巧妙地保持了视频帧与帧之间的连贯性,有效避免了视频生成过程中可能出现的闪烁问题。

在这里插入图片描述

为了进一步提升内容的连贯性,CogVideoX 采用了 3D 旋转位置编码(3D RoPE)技术,使得模型在处理视频时能够更好地捕捉时间维度上的帧间关系,建立起视频中的长期依赖关系,从而生成更加流畅和连贯的视频序列。

在可控性方面,智谱 AI 研发了一款端到端的视频理解模型,这个模型能够为视频数据生成精确且与内容紧密相关的描述。这一创新极大地增强了 CogVideoX 对文本的理解和对用户指令的遵循能力,确保了生成的视频不仅与用户的输入高度相关,而且能够处理超长且复杂的文本提示。

代码仓库:https://github.com/THUDM/CogVideo
模型下载:https://huggingface.co/THUDM/CogVideoX-2b
技术报告:https://github.com/THUDM/CogVideo/blob/main/resources/CogVideoX.pdf


二、CogVideoX部署实践流程

1. 创建丹摩实例

丹摩(Damo)提供了便捷的环境配置与高性能计算资源支持,非常适合部署大型语言模型和视频生成模型。

首先,我们登录丹摩官网,创建新实例。

在这里插入图片描述

由于 CogVideoX 在 FP-16 精度下的推理至少需 18GB 显存,微调则需要 40GB 显存,我们这里需要选择大于 40GB 显存的实例。

在这里插入图片描述

硬盘选择默认的 100GB 系统盘和 50GB 数据盘。

在这里插入图片描述

镜像选择 PyTorch2.3.0、Ubuntu-22.04,CUDA12.1 镜像。

在这里插入图片描述

创建密钥对。

在这里插入图片描述

选择我们刚刚创建的密钥对。

在这里插入图片描述

配置选择完成后,点击立即创建。创建后如图:

在这里插入图片描述

点击操作里的JupyterLab,进入JupyterLab的页面。平台已预置了调试好的代码库,开箱即用。

在这里插入图片描述
点击Terminal,进入终端页面。

首先,拉取 CogVideo 代码的仓库。

wget http://file.s3/damodel-openfile/CogVideoX/CogVideo-main.tar

在这里插入图片描述

下载完成后解压缩CogVideo-main.tar

tar -xf CogVideo-main.tar

其次,进入 CogVideo-main 文件夹,输入安装对应依赖:

cd CogVideo-main/
pip install -r requirements.txt

在这里插入图片描述

以上依赖安装好后,可以在终端输入 python,然后输入以下代码进行测试:

import torch
from diffusers import CogVideoXPipeline
from diffusers.utils import export_to_video

在这里插入图片描述

显示如下状态,没有报错就说明依赖安装成功!输入 Ctrl+D 可退出 python。

2. 上传模型与配置文件

除了配置代码文件和项目依赖,还需要上传 CogVideoX 模型文件和对应的配置文件。

官方模型仓库:https://huggingface.co/THUDM/CogVideoX-2b/tree/main
基于官方模型仓库的配置方法推荐您阅读:https://blog.csdn.net/air__Heaven/article/details/140967138

平台已为您预置了 CogVideoX 模型,您可内网高速下载,执行以下命令:

cd /root/workspace
wget http://file.s3/damodel-openfile/CogVideoX/CogVideoX-2b.tar

下载完成后解压缩CogVideoX-2b.tar。

tar -xf CogVideoX-2b.tar

解压后的目录如图所示:

在这里插入图片描述

3. 生成视频

进入CogVideo-main文件夹,运行test.py文件:

cd /root/workspace/CogVideo-main
python test.py

在这里插入图片描述
等待加载完成。

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)

从python代码我们不难了解到,这里主要使用diffusers库中的CogVideoXPipeline模型,加载了一个预训练的 CogVideo 模型,然后根据一个详细的文本描述(prompt),生成对应视频。

生成的视频为output.mp4,如图所示:

在这里插入图片描述

4. 预览生成结果

模型官方也提供了 webUIDemo,进入CogVideo-main文件夹,运行gradio_demo.py文件:

cd /root/workspace/CogVideo-main
python gradio_demo.py

运行后我们可以看到,访问路径是本地 urlhttp://0.0.0.0:7870:

在这里插入图片描述

此时我们需要通过丹摩平台提供的端口映射能力,把内网端口映射到公网。

进入GPU 云实例页面,点击实例,进入实例详情页面,点击添加端口。

在这里插入图片描述

然后通过链接访问即可。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


三、总结

本教程详细介绍了如何本地部署和实践 CogVideoX-2b 模型的全过程,从创建丹摩实例、配置环境到实际生成视频的步骤,为开发者提供了清晰的指导。CogVideoX-2b 通过其先进的3D变分自编码器和3D RoPE技术,大大提高了视频生成的效率和质量,您将能够直接体验和操作这一先进的文本到视频生成模型,为多模态应用的开发提供了更多可能性。


http://www.mrgr.cn/news/70020.html

相关文章:

  • Go:文件输入输出以及json解析
  • idea 删除本地分支后,弹窗 delete tracked brank
  • 第4章: 图像绘制与文本添加
  • Kafka参数了解
  • MDBook 使用指南
  • vue计算属性 初步使用案例
  • Vue3-06_路由
  • Qt文件系统-文本文件读写
  • hudi写时复制与读时合并
  • 计算机组成原理(指令格式)
  • 被秀到了!注意力+时空特征融合,秒锁1区!快码住学思路
  • 【初阶数据结构篇】二叉树OJ题
  • crond 任务调度 (Linux相关指令:crontab)
  • 算法求解--计算两个字符串之间的最小交换次数(相似度为 K 的字符串)
  • 大数据入门-什么是HBase
  • 基于Spring Boot+Vue的学院食材采供管理系统
  • 大厂面试真题-说说tomcat的优缺点
  • C++builder中的人工智能(19):如何在C++中制作一个简单但强大的聊天机器人?
  • 【Steam登录】protobuf协议逆向 | 续
  • Chrome浏览器如何导出所有书签并导入书签
  • Node Game(CRLF注入)
  • gtfToGenePred如何下载
  • 对于大根堆的计算时间复杂度的过程
  • Spring Boot 监视器
  • 【IT人物系列】之Java之父
  • lineageos-19 仓库群遍历,打印第一条git log