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

DAMODEL丹摩| 智谱清影 -CogVideoX-2b-部署与使用

效果展示​

A street artist, clad in a worn-out denim jacket and a colorful
 bandana, stands before a vast concrete wall in the hert, .holding a can of spray paint, spray-painting a colorful bird on a mottled wall.

 

CogVideoX 简介​

智谱 AI 在 8 月 6 日宣布了一个令人兴奋的消息:他们将开源视频生成模型 CogVideoX,目前,其提示词上限为 226 个 token,视频长度为 6 秒,帧率为 8 帧 / 秒,视频分辨率为 720*480,而这仅仅是初代,性能更强参数量更大的模型正在路上。

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

output

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

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

  • 代码仓库:GitHub - THUDM/CogVideo: text and image to video generation: CogVideoX (2024) and CogVideo (ICLR 2023)
  • 模型下载:https://huggingface.co/THUDM/CogVideoX-2b
  • 技术报告:https://github.com/THUDM/CogVideo/blob/main/resources/CogVideoX.pdf

本篇将详细介绍使用丹摩服务器部署和初步使用 CogVideoX 的实践流程。

CogVideoX 部署实践流程​

创建丹摩实例​

首先进入控制台,选择 GPU 云实例,点击创建实例:

output1

由于 CogVideoX 在 FP-16 精度下的推理至少需 18GB 显存,微调则需要 40GB 显存,我们这里可以选择L40S 显卡(推荐)或者4090 显卡,硬盘可以选择默认的 100GB 系统盘和 50GB 数据盘,镜像选择 PyTorch2.3.0、Ubuntu-22.04,CUDA12.1 镜像,创建并绑定密钥对,最后启动。

output2

配置环境和依赖​

官方代码仓库为:GitHub - THUDM/CogVideo: text and image to video generation: CogVideoX (2024) and CogVideo (ICLR 2023)

基于官方代码仓库的配置方法推荐您阅读:国产版Sora复现——智谱AI开源CogVideoX-2b 本地部署复现实践教程-CSDN博客

平台已预置了调试好的代码库,您可开箱即用,以下是配置方法:

进入 JupyterLab 后,打开终端,首先拉取 CogVideo 代码的仓库

bash

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

bash

tar -xf CogVideo-main.tar

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

bash

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

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

Python

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

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

output5

模型与配置文件​

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

官方模型仓库:https://huggingface.co/THUDM/CogVideoX-2b/tree/main

基于官方模型仓库的配置方法推荐您阅读:国产版Sora复现——智谱AI开源CogVideoX-2b 本地部署复现实践教程-CSDN博客

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

bash

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

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

bash

tar -xf CogVideoX-2b.tar

解压后的目录如图所示

image-20240807131034428

开始运行​

调试​

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

bash

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

test.py 代码内容如下,主要使用diffusers库中的CogVideoXPipeline模型,加载了一个预训练的 CogVideo 模型,然后根据一个详细的文本描述(prompt),生成对应视频:

python

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)

运行成功后,可以在当前文件夹中找到对应 prompt 生成的 output.mp4 视频:

output6

webUI​

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

bash

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

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

image-20240807132111497

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

进入GPU 云实例页面,点击操作-更多-访问控制:

image-20240807132258270

点击添加端口,添加7870端口

image-20240807132424712

添加成功后,通过访问链接即可访问到刚刚启动的 gradio 页面:

image-20240807132525322


http://www.kler.cn/a/409868.html

相关文章:

  • python语言基础-5 进阶语法-5.4 正则表达式
  • Gbase8s 允许内置用户创建用户以及创建只读权限用户以及利用角色管理普通用户权限
  • 3DEXPERIENCE软件是干什么的—3DE软件代理商微辰三维
  • HTML和CSS 表单、表格练习
  • 【SQL】【数据库】语句翻译例题
  • 基于YOLOv8深度学习的人体姿态摔倒检测与语音报警系统(PyQt5界面+数据集+训练代码)
  • 使用 Maven 构建一个简单的 Java 项目
  • C#水仙花
  • 请求响应(学习笔记)
  • 亚信安全发布《2024年第三季度网络安全威胁报告》
  • SPFA算法
  • STL(一)
  • C# Dictionary实现原理
  • 面向对象高级(9)包装
  • 什么是Portage-学习笔记
  • 学习threejs,使用设置normalMap法向量贴图创建更加细致的凹凸和褶皱
  • Python Selenium介绍(一)
  • 深入解析Java面向对象编程:Object类、泛型、序列化与网络编程
  • 如何通过cPanel创建品牌电子邮件
  • H5流媒体播放器EasyPlayer.js网页直播/点播播放器如果H.265视频在播放器上播放不流畅,可以考虑的解决方案
  • JavaWeb——Ajax、Element、打包部署
  • 鱼眼相机模型-MEI
  • 24/11/25 视觉笔记 深度传感器和手势识别
  • Spring Boot英语知识网站:性能优化
  • 【Linux学习】【Ubuntu入门】2-3 make工具和makefile引入
  • MySQL基础知识大总结