丹摩 | 利用 CogVideoX 生成视频

声明:非广告,纯用户体验

1. CogVideoX

CogVideoX 是智谱 AI 推出的一款极具创新性与突破性的视频生成产品。它在技术层面展现出诸多卓越特性,例如其采用的 Diffusion + Transformer(DiT)架构奠定了强大的生成能力基础,而自主研发的 3D VAE 三维变分自编码器结构不仅能将原始视频数据大幅压缩至仅 2% 的大小,有效降低训练成本与难度,还结合 3D RoPE 位置编码模块显著提升在时间维度上捕捉帧间关系的能力,让生成的视频在时间流转上更加自然流畅。

其专家 Transformer 架构摒弃传统 cross attention 模块,在输入阶段巧妙地将文本 embedding 和视频 embedding 连接,借助 expert adaptive layernorm 弥补文本与视频模态间的差异,同时采用 3D 全注意力机制与 3D RoPE 位置编码模块,全方位强化视觉与语义信息的对齐效果,极大提升对复杂提示词的理解与呈现能力,能够创作出内容连贯性极佳、镜头调度丰富且人物表演细腻的视频。

在性能表现方面,它能够生成 10 秒时长、4K 分辨率、60 帧的超高清视频,且支持任意尺寸,无论是宽屏还是常规比例都能精准呈现,同一指令或图片可一次性生成 4 个视频,极大地丰富了创作的多样性与效率。

此外CogVideoX 涵盖了多个重要领域,在内容创作方面助力专业创作者和普通爱好者高效产出各类创意视频,无论是广告、剧情短片还是娱乐短视频;在教育教学中可生动地将知识转化为可视化的教学视频,增强教学效果与吸引力;在商业广告领域能根据品牌需求快速打造个性化的宣传视频,提升广告投放的影响力

同时借助其强大的文本、图像、视频分析能力,快速准确地过滤违规信息,保障平台内容安全;在多模态搜索引擎里利用图像与视频理解能力优化搜索结果呈现;在智能宠物监控场景下通过视频分析与动作识别技术协助主人远程照看宠物。

智谱 AI 还积极推动其开源进程,如 CogVideoX v1.5 - 5B、CogVideoX v1.5 - 5B - I2V 已在 GitHub 开源,并且其模型已在智谱清言的多端应用上线,用户可通过 “清影” 功能免费体验其从文本或图像生成视频的精彩服务,为广大用户和开发者开启了一扇通往高效、智能视频创作的全新大门,对推动视频生成技术在众多领域的应用与发展有着极为深远的意义。

接下来演示一下怎么通过丹摩平台使用 CogVideoX 来生成视频

2. 创建实例

首先登录丹摩平台,进入创建页面后,首先在实例配置中选择付费类型,一般短期需求的话可以选择按量付费或者包日,我们这里做个演示就直接选择按量付费了,长期需求可以选择包月套餐;其次选择单卡或多卡启动,然后选择需求的 GPU 型号

以下是以下配置的介绍:

显卡

显存-GB

内存-GB/卡

CPU-核心/卡

存储

简介

RTX 4090

24

60

11

100G系统盘
50G数据盘

性价比配置,推荐入门用户选择,适合模型推理场景

RTX 4090

24

124

15

100G系统盘
50G数据盘

性价比配置,推荐入门用户与专业用户选择,适合模型推理场景

H800 SXM

80

252

27

100G系统盘
50G数据盘

顶级配置,推荐专业用户选择,适合模型训练与模型推理场景

H800 PCle

80

124

21

100G系统盘
50G数据盘

顶级配置,推荐专业用户选择,适合模型训练与模型推理场景

L40S

48

124

21

100G系统盘
50G数据盘

专业级配置,推荐专业用户选择,适合模型训练与模型推理场景

P40

24

12

6

100G系统盘
50G数据盘

性价比配置,推荐入门用户选择,适合模型推理场景

由于 CogVideoX 在 FP-16 精度下的推理至少需 18GB 显存,微调则需要 40GB 显存,这里创建实例比较推荐的选择:按量付费-- GPU 数量 1(表示单卡启动,最高可支持 8 卡组合启动,处理速度也会大大提升)--NVIDIA-GeForc-RTX-4090,该配置为 60GB 内存,24GB 的显存。

接下来,配置数据硬盘的大小,每个实例默认附带了 50GB 的数据硬盘,首次创建可以就选择默认大小 50GB,也是足够用的,可以看到,平台提供了一些基础镜像供快速启动,第一次创建可以选择基础镜像,如果后续有保存镜像,可以在我的镜像中选择保存好的镜像启动,镜像选择 PyTorch2.3.0、Ubuntu-22.04,CUDA12.1 镜像。

接下来创建密钥,密钥名称自定义,首次创建实例需要创建密钥对,后续创建可以沿用已经创建的密钥对,点击确认之后生成的密钥就会下载到本地

创建之后就可以选择刚刚创建好的密钥对,然后点击立即创建,稍等片刻就会创建成功

平台还提供了在线访问实例的 JupyterLab 入口,JupyterLab 是一个交互式的开发环境,具有灵活而强大的用户界面。用户可以使用它编写 notebook、操作终端、编辑 markdown 文本、打开交互模式、查看 csv 文件及图片等。

3. 配置环境和依赖

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

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

进入 JupyterLab 后,打开终端,首先拉取 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

4. 模型与配置文件

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

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

仓库地址

平台已经预置了 CogVideoX 模型,直接执行以下命令进行下载:

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

解压之后点进 CogVideoX-2b 文件,类似于一下内容

5. 开始运行

5.1. 调试

进入 CogVideo-main文件夹,首先需要创建一个 test.py 文件,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)

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

 

5.2. webUI

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

cd /root/workspace/CogVideo-main
python gradio_demo.py
  • 模型官方提供了 webUIDemo。进入 CogVideo - main 文件夹,运行 gradio_demo.py 文件:cd /root/workspace/CogVideo - main,python gradio_demo.py
  • 运行后访问路径是本地 url : http://0.0.0.0:7870。此时需通过丹摩平台提供的端口映射能力,把内网端口映射到公网。
  • 进入 GPU 云实例页面,点击操作 - 更多 - 访问控制,点击添加端口,添加 7870 端口,添加成功后,通过访问链接即可访问到刚刚启动的 gradio 页面。

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

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

相关文章

SAP开发语言ABAP常见面试问题及答案

一、基础概念问题 什么是SAP ABAP? SAP ABAP(Advanced Business Application Programming)是一种高级企业应用编程语言,用于开发SAP系统中的应用程序。它主要用于定制和扩展SAP的标准功能,以满足企业特定的业务需求。例…

C# 读取多条数据记录导出到 Word标签模板之图片输出改造

目录 应用需求 设计 范例运行环境 配置Office DCOM 实现代码 组件库引入 ​核心代码 调用示例 小结 应用需求 在我的文章《C# 读取多条数据记录导出到 Word 标签模板》里,讲述读取多条数据记录结合 WORD 标签模板输出文件的功能,原有输出图片的…

『 Linux 』网络层 - IP协议 (二)

文章目录 路由NAT技术分片与组装分片的组装IP协议分片的短板 路由 通常情况路由器具备了一个非常重要的功能,即构建子网; 同时路由器需要实现跨网络通信,说明路由器必须存在两个或以上的IP地址,通常在路由器中可以看到几个接口,分别是一个WAN口和几个LAN口; WAN口IP被称为公网I…

使用 OpenCV 进行视频中的行人检测

在计算机视觉领域,行人检测是一个重要的研究方向,它在视频监控、自动驾驶、人机交互等领域都有着广泛的应用。本文将介绍如何使用 OpenCV 库来实现视频中的行人检测。 环境准备 首先,我们需要安装 OpenCV 库。可以通过以下命令来安装&#…

javaEE初阶——多线程(1)

文章目录 一些背景知识操作系统(OS)(计算机的大管家)操作系统的基本概念:市面上常见的操作操作系统: 关于前端与后端的介绍:(针对服务的体系架构)计算机是如何工作的&…

Apple Vision Pro开发003-PolySpatial2.0新建项目

unity6.0下载链接:Unity 实时开发平台 | 3D、2D、VR 和 AR 引擎 一、新建项目 二、导入开发包 com.unity.polyspatial.visionos 输入版本号 2.0.4 com.unity.polyspatial(单独导入),或者直接安装 三、对应设置 其他的操作与之前的版本相同…

学习threejs,使用设置normalMap法向量贴图创建更加细致的凹凸和褶皱

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:threejs gis工程师 文章目录 一、🍀前言1.1 ☘️THREE.MeshPhongMaterial高…

Python办公自动化案例:将演示文稿批量导出为图片和PDF文件

案例:将演示文稿批量导出为图片和PDF文件 准备资料:准备好PPT,并起好名称,放在同一目录下。 批量的将ppt,pptx转换为pdf和图片,代码如下: import comtypes.client import osdef init_powerpoint():powerp

数据结构 ——— 直接选择排序算法的实现

目录 直接选择排序算法的思想 优化直接选择排序算法的思想 代码实现(默认升序) 直接选择排序算法的思想 直接选择排序算法的思想类似与直接插入排序 区别在于从大到小选择最小的元素或者最大的元素直接放在元素应该停留的位置每次从待排序的元素中选…

linux从0到1——shell编程9

声明! 学习视频来自B站up主 **泷羽sec** 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关&a…

selinux及防火墙

selinux说明 SELinux 是 Security-Enhanced Linux 的缩写,意思是安全强化的 linux 。 SELinux 主要由美国国家安全局( NSA )开发,当初开发的目的是为了避免资源的误用。 httpd进程标签(/usr/share/nginx/html &#…

前端:JavaScript (学习笔记)【2】

目录 一,数组的使用 1,数组的创建 [ ] 2,数组的元素和长度 3,数组的遍历方式 4,数组的常用方法 二,JavaScript中的对象 1,常用对象 (1)String和java中的Stri…

QML学习 —— 28、3种等待指示控件(附源码)

效果如下 说明 BusyIndicator应用于指示在加载内容或UI被阻止等待资源可用时的活动。BusyIndicator类似于一个不确定的ProgressBar。两者都可以用来指示背景活动。主要区别在于视觉效果,ProgressBar还可以显示具体的进度(当可以确定时)。由于视觉差异,繁忙指示器和不确定的…

Java 基于SpringBoot+Vue的家政服务管理平台

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…

DataGear 5.2.0 发布,数据可视化分析平台

DataGear 企业版 1.3.0 已发布,欢迎体验! http://datagear.tech/pro/ DataGear 5.2.0 发布,图表插件支持定义依赖库、严重 BUG 修复、功能改进、安全增强,具体更新内容如下: 重构:各模块管理功能访问路径…

nature communications论文 解读

题目《Transfer learning with graph neural networks for improved molecular property prediction in the multi-fidelity setting》 这篇文章主要讨论了如何在多保真数据环境(multi-fidelity setting)下,利用图神经网络(GNNs&…

Flutter:SlideTransition位移动画,Interval动画延迟

配置vsync&#xff0c;需要实现一下with SingleTickerProviderStateMixinclass _MyHomePageState extends State<MyHomePage> with SingleTickerProviderStateMixin{// 定义 AnimationControllerlate AnimationController _controller;overridevoid initState() {super.…

svn 崩溃、 cleanup失败 怎么办

在使用svn的过程中&#xff0c;可能出现整个svn崩溃&#xff0c; 例如cleanup 失败的情况&#xff0c;类似于 这时可以下载本贴资源文件并解压。 或者直接访问网站 SQLite Download Page 进行下载 解压后得到 sqlite3.exe 放到发生问题的svn根目录的.svn路径下 右键呼出pow…

GPT系列文章

GPT系列文章 GPT1 GPT1是由OpenAI公司发表在2018年要早于我们之前介绍的所熟知的BERT系列文章。总结&#xff1a;GPT 是一种半监督学习&#xff0c;采用两阶段任务模型&#xff0c;通过使用无监督的 Pre-training 和有监督的 Fine-tuning 来实现强大的自然语言理解。在 Pre-t…

Linux线程(Linux和Windows的线程区别、Linux的线程函数、互斥、同步)

Linux线程&#xff08;Linux和Windows的线程区别、Linux的线程函数、互斥、同步&#xff09; 1. 线程介绍 线程的概念&#xff1a; 线程是 CPU 调度的基本单位。它被包含在进程之中&#xff0c;是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流&#xff0…