丹摩征文活动|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.rhkb.cn/news/468524.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

麦当劳自助点餐机——实现

餐厅自助点餐优点 1. 降低服务成本: - 减少了对服务员数量的需求,降低了人力成本。 - 减轻了服务员的工作负担,使其能够更专注于提供优质的服务,如解决顾客的特殊需求和处理复杂问题。 2. 提升点餐效率和准确性&#xf…

Linux【基础篇】T

如何安装Linux操作系统? 1.直接把笔记本的Windows干掉,单独安装Linux系统(初学者对于Linux使用还是比较苦难)。 2.可以安装双系统(开机也是命令行),电脑配置要高。 3.可以安装虚拟机。 --如果…

Linux操作系统之软件安装与包管理器工具

一、实验目的 1、掌握常用的软件包管理器RPM、YUM的使用; 2、掌握内网YUM源的配置方法。 二、实验环境 1台PC、VMware虚拟机、2个CentOS7操作系统 三、实验步骤及内容 1、使用RPM软件包管理器安装软件 (1)从阿里云https://mirrors.aliyun.com/下载CentOS7操作…

贯穿式学习MySQL

注:MySQL版本众多,本次讲述的内容以MySQL8.0.34版本为准 范式化设计 范式具体是用来干嘛的? 我们在设计关系数据库时,要遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式…

web——[SUCTF 2019]EasySQL1——堆叠注入

这个题主要是讲述了堆叠注入的用法,来复现一下 什么是堆叠注入 堆叠注入:将多条SQL语句放在一起,并用分号;隔开。 1.查看数据库的名称 查看数据库名称 1;show databases; 发现有名称为ctftraining的数据库 2.对表进行查询 1;show tabl…

「Mac畅玩鸿蒙与硬件31」UI互动应用篇8 - 自定义评分星级组件

本篇将带你实现一个自定义评分星级组件,用户可以通过点击星星进行评分,并实时显示评分结果。为了让界面更具吸引力,我们还将添加一只小猫图片作为评分的背景装饰。 关键词 UI互动应用评分系统自定义星级组件状态管理用户交互 一、功能说明 …

发布 VectorTraits v3.0(支持 X86架构的Avx512系列指令集,支持 Wasm架构及PackedSimd指令集等)

文章目录 支持 X86架构的Avx512系列指令集支持Avx512时的输出信息 支持 Wasm架构及PackedSimd指令集支持PackedSimd时的输出信息VectorTraits.Benchmarks.Wasm 使用说明 新增了向量方法支持 .NET 8.0 新增的向量方法提供交织与解交织的向量方法YGroup3Unzip的范例代码 提供重新…

分布式数据库中间件mycat

MyCat MyCat是一个开源的分布式数据库系统,它实现了MySQL协议,可以作为数据库代理使用。 MyCat(中间件)的核心功能是分库分表,即将一个大表水平分割为多个小表,存储在后端的MySQL服务器或其他数据库中。 它不仅支持MySQL&#xff…

操作系统学习笔记-3.2虚拟内存

文章目录 虚拟内存请求分页管理方式页面置换算法最佳置换算法工作原理OPT 算法的示例最佳置换算法的优点和缺点 先进先出置换算法最近最久未使用时钟置换算法时钟置换算法的工作原理:算法的步骤: 改进型时钟置换算法改进型时钟置换算法的特点&#xff1a…

【计网】物理层学习笔记

【计网】物理层 物理层概述 物理层要实现的功能 在各种传输媒体上传输比特0和1,进而为上面的数据链路层提供透明传输比特流的作用。 物理层接口特性 物理层之下的传输媒体 传输媒体是计网设备之间的物理通路,也称为传输介质。 传输媒体并不包含在…

python机器人Agent编程——实现一个本地大模型和爬虫结合的手机号归属地天气查询Agent

目录 一、前言二、准备工作三、Agent结构四、python模块实现4.1 实现手机号归属地查询工具4.2实现天气查询工具4.3定义创建Agent主体4.4创建聊天界面 五、小结PS.扩展阅读ps1.六自由度机器人相关文章资源ps2.四轴机器相关文章资源ps3.移动小车相关文章资源ps3.wifi小车控制相关…

Spring MVC(一)

1. Spring MVC是什么? 搞清楚Spring MVC之前先搞清楚MVC是什么?MVC是一种架构设计模式,也就是一种思想,M是Model,V是View,C是Controller。他们之间的关系举一个例子来介绍。比如去饭店吃饭,一进…

文件操作:Xml转Excel

1 添加依赖 Spire.Xls.jar <dependency><groupId>e-iceblue</groupId><artifactId>spire.xls</artifactId><version>5.3.3</version></dependency>2 代码使用 package cctd.controller;import com.spire.xls.FileFormat; im…

C语言中的 printf( ) 与 scanf( )

时隔多日&#xff0c;小编我又回来咯小编相信之前的博客能够给大家带来不少的收获。在我们之前的文章中&#xff0c;许多代码块的例子都用到了printf( ) 与 scanf( )这两个函数&#xff0c;大家都知道他们需要声明头文件之后才能使用&#xff0c;那这两个函数是什么呢&#xff…

Yocto 项目下通过网络更新内核、设备树及模块

Yocto 项目下通过网络更新内核、设备树及模块 前言 在 Yocto 项目的开发过程中&#xff0c;特别是在进行 BSP&#xff08;Board Support Package&#xff09;开发时&#xff0c;经常需要调整特定软件包的版本&#xff0c;修改内核、设备树以及内核模块。然而&#xff0c;每次…

算法每日双题精讲——双指针(移动零,复写零)

&#x1f31f;快来参与讨论&#x1f4ac;&#xff0c;点赞&#x1f44d;、收藏⭐、分享&#x1f4e4;&#xff0c;共创活力社区。 &#x1f31f; 别再犹豫了&#xff01;快来订阅我们的算法每日双题精讲专栏&#xff0c;一起踏上算法学习的精彩之旅吧&#xff01;&#x1f4aa;…

数据库的使用02:SQLServer的连接字符串、备份、还原、SQL监视相关设置

目录 一、连接字符串 【本地连接字符串】 【远程连接字符串】 二、备份 三、还原 &#xff08;1&#xff09;还原数据库-bak、btn文件 &#xff08;2&#xff09;附加数据库mdf文件 四、SQL监视器的使用 一、连接字符串 【本地连接字符串】 server DESKTOP-FTH2P3S; Da…

使用SearXNG-搭建个人搜索引擎(附国内可用Docker镜像源)

介绍 SearXNG是聚合了七十多种搜索服务的开源搜索工具。我们可以匿名浏览页面&#xff0c;不会被记录和追踪。作为开发者&#xff0c;SearXNG也提供了清晰的API接口以及完整的开发文档。 部署 我们可以很方便地使用Docker和Docker compose部署SearXNG。下面给出Docker部署Se…

【笔记】LLC电路工作频点选择 2-2 开关管与滤波压力

LLC谐振变换器稳态工作波形分析 - 知乎&#xff0c;上面这篇文的结论相较MPS那篇文章的结论更严格。我们分析一下它的频点选择为什么会更窄&#xff1a; 1. LLC电路模型 电流滞后的特性就是电路呈感性注意这里也是开关管ZVS开通。 2.工作循环的波形 iLm的波形&#xff0c;最终…

mysql数据同步到sql server

准备工作 下载安装sql server express 2019 现在安装SSMS(连接数据库GUI) 安装ssms for mysql 需要注意的是在上面的步骤中首先需要根据指导安装mysql ODBC 设置express sa用户密码登录 --change password for login user "sa"Security > Logins > sa (rig…