智谱清影 -CogVideoX-2b-部署与使用,带你揭秘生成6s视频的极致体验!

news2024/9/20 1:27:56

在这里插入图片描述

文章目录

    • 1 效果展示
    • 2 CogVideoX 前世今生
    • 3 CogVideoX 部署实践流程
      • 3.1 创建丹摩实例
      • 3.2 配置环境和依赖
      • 3.3 模型与配置文件
      • 3.4 运行
      • 4 遇到问题

1 效果展示

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.

CogVideoX-6秒视频

2 CogVideoX 前世今生

CogVideoX 的出现就像在视频生成领域的一次重大飞跃。

过去的技术常常在效率和质量之间挣扎,而现在,它的 3D 变分自编码器能将视频数据压缩至原来的 2%,大幅降低资源消耗,并保持视频帧的连贯性。

引入的 3D 旋转位置编码技术更是让每个瞬间在时间中自然流动,仿佛为视频注入了生命。

智谱 AI 的端到端视频理解模型,使得用户的指令能被精准解析,生成的视频内容丰富且紧密相关,这项创新为创作者提供了更大的自由度。
在这里插入图片描述

这一创新极大地增强了 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

3 CogVideoX 部署实践流程

本次实践流程在丹摩服务器上进行部署和初步使用 CogVideoX。

3.1 创建丹摩实例

(1)进入控制台,选择 GPU 云实例,点击创建实例。(实名认证有抵扣卷)

在这里插入图片描述

(2)CogVideoX 在 FP-16 精度下的推理至少需 18GB 显存,微调则需要 40GB 显存 。

(2.1)选择L40S 显卡(推荐)或者4090 显卡,硬盘可以选择默认的 100GB 系统盘和 50GB 数据盘。

在这里插入图片描述

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

在这里插入图片描述

(2.3)创建登录实例。(点击创建密钥对,输入个名称即可创建)

在这里插入图片描述

(2.4)实例创建成功。

在这里插入图片描述

3.2 配置环境和依赖

丹摩平台已预置了调试好的代码库,可开箱即用。

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

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

在这里插入图片描述

(2) 下载完成后解压缩CogVideo-main.tar,完成后进入 CogVideo-main 文件夹,输入安装对应依赖。
在这里插入图片描述

(3)依赖安装好后,可以在终端输入 python,进入python环境。

输入代码进行测试:

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

没有报错就说明依赖安装成功!输入quit()可退出 python。

在这里插入图片描述

3.3 模型与配置文件

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

(1)平台已为您预置了 CogVideoX 模型,您可内网高速下载。

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

在这里插入图片描述

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

tar -xf CogVideoX-2b.tar

解压后的效果图:

在这里插入图片描述

3.4 运行

(1)进入CogVideo-main文件夹,运行test.py文件。

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

在这里插入图片描述

(2)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)

(3)运行成功后,可以在 CogVideo-main 文件夹中找到对应 prompt 生成的 output.mp4 视频。

在这里插入图片描述

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

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

在这里插入图片描述

(5)通过丹摩平台提供的端口映射能力,把内网端口映射到公网,进入GPU 云实例页面,点击操作-更多-访问控制。

在这里插入图片描述

(6)点击添加端口,添加7870端口。

在这里插入图片描述

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

在这里插入图片描述

4 遇到问题

(1)端口号被占用。

安装 lsof:

apt-get update
apt-get install lsof
# 查占用端口
lsof -i :7870
# 杀进程
kill -9 <PID>

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2147513.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JavaScript基础学习:预解析机制

JavaScript基础学习&#xff1a;预解析机制 前言 在 JavaScript 的世界里&#xff0c;代码的执行并不是简单地从上到下按顺序进行的。 在实际执行之前&#xff0c;JavaScript 引擎会进行一个特殊的阶段&#xff0c;称为“预解析”。 这一阶段对于理解 JavaScript 的行为至关…

2025武汉国际半导体产业与电子技术博览会

时间&#xff1a;2025年5月14日-16日地点&#xff1a;武汉中国光谷科技会展中心 展会简介&#xff1a; 为了推动中西部地区电子信息产业的跨越式发展&#xff0c;促进先进技术在中西部地区的创新应用&#xff0c;由中国光电子发展大会组委会联合沃森展览共同打造的2025 武汉国…

网络安全 DVWA通关指南 DVWA Stored Cross Site Scripting (存储型 XSS)

DVWA Stored Cross Site Scripting (存储型 XSS) 文章目录 DVWA Stored Cross Site Scripting (存储型 XSS)XSS跨站原理存储型 LowMediumHighImpossible 参考文献 WEB 安全靶场通关指南 XSS跨站原理 当应用程序发送给浏览器的页面中包含用户提交的数据&#xff0c;但没有经过适…

Yocto - 使用Yocto开发嵌入式Linux系统_01 前言

Embedded Linux Development Using Yocto Project: Leverage the power of the Yocto Project to build efficient Linux-based products, Third Edition By: Otavio Salvador, Daiane Angolini Overview of this book Yocto 项目是开发可靠的嵌入式 Linux 项目的行业标准。与…

C++ | Leetcode C++题解之第405题数字转换为十六进制数

题目&#xff1a; 题解&#xff1a; class Solution { public:string toHex(int num) {if (num 0) {return "0";}string sb;for (int i 7; i > 0; i --) {int val (num >> (4 * i)) & 0xf;if (sb.length() > 0 || val > 0) {char digit val …

内存管理(C++版)

C/C内存分布 程序经过编译生成可执行的二进制程序&#xff0c;我们可以把虚拟进程地址分为以下四个空间&#xff1a;栈&#xff0c;堆&#xff0c;常量区&#xff0c;静态区。这四个区里面存贮的也是不一样的内容。 各个区域所存储内容的说明 栈/堆栈&#xff1a;用于建立函…

C++—string类接口与用法大总结(其中涉及STL基础)

目录 1.string类的本质 2.string类的构造 1.普通构造 2.功能型构造 1.拷贝构造功能型 2.带参构造功能型 3.其余构造 3.operator[] 4.迭代器&#xff08;iterator&#xff09; 1.概念 2.改变string对象本身 3.正向迭代器&#xff08;iterator&#xff09; 4.反向迭代…

基于springboot的驾校预约管理系统的设计与实现 (含源码+sql+视频导入教程)

&#x1f449;文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1 、功能描述 基于springboot的驾校预约管理系统5拥有三种角色&#xff1a;管理员、教练、学员 管理员&#xff1a;学员管理、教练管理、车辆管理、车辆关联、维修管理等 教练&#xff1a;学员查看/毕…

通过Python代码发送量化交易信号邮件通知

量化交易利用数学模型和计算机算法来分析市场数据,并生成交易信号,本文将介绍如何使用Python编写一个简单的脚本,通过发送邮件通知量化交易信号。 开启SMTP服务 首先要在发件箱的邮件设置中,将POP3/SMPT服务开启,记录下授权密码,在本地可通过此密码登录,注意有效期和保…

总结拓展十:SAP开发计划(下)

第一节 接口功能开发说明书设计 1、软件系统接口作用 答&#xff1a;系统接口&#xff0c;是实现系统间数据传输的功能。 2、软件系统接口特点 1&#xff09;采用Web Service技术作为平台&#xff0c;有众多的数据传输协议标准&#xff0c;通过API与外界交流数据。 2&…

向上转移和向下转型

向上转型 实际就是创建一个子类对象&#xff0c;将其当成父类对象来使用。格式&#xff1a;父类类型 对象名new 子类类型&#xff08;&#xff09;&#xff1b;eg&#xff1a;Animal animalnew Cat&#xff08;&#xff09;&#xff1b;animal是父类类型&#xff0c;但可以引用…

超详细超实用!!!零基础java开发之云风笔记接口开发之查询单条笔记详细信息(十二)

云风网 云风笔记 云风知识库 一、service/NoteApi新增getNodeDetail接口定义 public interface NoteApi {...NoteManage getNoteDetail(int id); }二、service/impl/NoteServiceImpl接口实现逻辑 public class NoteServiceImpl implements NoteApi {AutowiredNoteMapper not…

产品经理入门攻略:如何从零开始成为产品经理

“人人都是产品经理”这句话相信你一定听过。 作为现在的热门职业&#xff0c;许多朋友也在心里埋下了一颗想要成为产品经理的种子。 产品经理的工作其实没有传说中的那么“高大上”&#xff0c;甚至可以说大多数时候是枯燥且无聊的&#xff0c;需要不断地对数据进行分析&…

如何在ONLYOFFICE文档中,将新插件添加为选项卡

随着 ONLYOFFICE 文档8.1版本的推出&#xff0c;我们引入了各式各样的功能&#xff0c;旨在增强软件功能性和优化用户体验。其中一项改进是&#xff0c;插件可以显示在一个独立的选项卡中了。在本博客文章中&#xff0c;我们将带您了解充分利用这一新功能的各项步骤。 关于 ONL…

图像修复(Inpainting)技术的前沿模型与数据集资源汇总

图像修复&#xff08;Image Inpainting&#xff09;是一种计算机视觉技术&#xff0c;旨在填补图像中的缺失区域或去除图像中的不需要部分&#xff0c;使其看起来自然且无明显痕迹。其目标是根据图像的上下文信息和周围像素来推断和重建缺失区域的内容&#xff0c;以生成逼真且…

实战17-NavBar+Vip布局

NavBar.ets import { PADDING } from ../../constants/size import rvp from ../../utils/resposive/rvIndexComponent export default struct NavBar {StorageProp(topHeight) topHeight: number 0;build() {Row() {Row({ space: rvp(6) }) {Text(请选择地址).fontSize(rvp(1…

Java基础笔记1】Java基础语法

目录 一、Java简介 二、JDK和Java初体验 三、配置环境变量 四、IDEA快捷键 五、Java语法基础 1. 注释 2. 字面量 3. 变量 4. 关键字和标识符 5. 变量详解 a. 数值数据在计算机中的存储​编辑 b. 文本、图片、音频等数据在计算机中的存储 c. 八进制和十六进制 6. 数据类型 a. …

【LabVIEW】事件结构的用法

本篇文章记录我学习LabVIEW的事件结构用法&#xff0c;希望我的分享对你有所帮助&#xff01; 目录 一、案例说明 1、 LabVIEW实现“YAXBXC的计算” 2、添加事件结构 一、案例说明 在LabVIEW实现“YAXBXC的计算”的基础上&#xff0c;加上事件结构&#xff0c;实现单击一次按…

【读书笔记-《30天自制操作系统》-22】Day23

本篇内容比较简单&#xff0c;集中于显示问题。首先编写了应用程序使用的api_malloc&#xff0c;然后实现了在窗口中画点与画线的API与应用程序。有了窗口显示&#xff0c;还要实现关闭窗口的功能&#xff0c;于是在键盘输入API的基础上实现了按下按键关闭窗口。最后发现用上文…