丹摩 | 利用 CogVideoX 生成视频

news2024/11/29 13:33:57

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

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.coloradmin.cn/o/2249781.html

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

相关文章

本地化部署 私有化大语言模型

本地化部署 私有化大语言模型 本地化部署 私有化大语言模型Anaconda 环境搭建运行 代码概述环境配置安装依赖CUDA 环境配置 系统设计与实现文件处理与加载文档索引构建模型加载与推理文件上传与索引更新实时对话与文档检索Gradio 前端设计 主要功能完整代码功能说明运行示例文件…

05_JavaScript注释与常见输出方式

JavaScript注释与常见输出方式 JavaScript注释 源码中注释是不被引擎所解释的,它的作用是对代码进行解释。lavascript 提供两种注释的写法:一种是单行注释,用//起头:另一种是多行注释,放在/*和*/之间。 //这是单行注释/* 这是 多行 注释 *…

python常见问题-pycharm无法导入三方库

1.运行环境 python版本:Python 3.9.6 需导入的greenlet版本:greenlet 3.1.1 2.当前的问题 由于需要使用到greenlet三方库,所以进行了导入,以下是我个人导入时的全过程 ①首先尝试了第1种导入方式:使用pycharm进行…

vue3实现自定义导航菜单

一、创建项目 1. 打开HBuilder X 图1 2. 新建一个空项目 文件->新建->项目->uni-app 填写项目名称:vue3demo 选择项目存放目录:D:/HBuilderProjects 一定要注意vue的版本,当前选择的版本为vue3 图2 点击“创建”之后进入项目界面 图…

多模态图像生成模型Qwen2vl-Flux,利用Qwen2VL的视觉语言理解能力增强FLUX,可集成ControlNet

Qwen2vl-Flux 是一种先进的多模态图像生成模型,它利用 Qwen2VL 的视觉语言理解能力增强了 FLUX。该模型擅长根据文本提示和视觉参考生成高质量图像,提供卓越的多模态理解和控制。让 FLUX 的多模态图像理解和提示词理解变得很强。 Qwen2vl-Flux有以下特点…

原生html+css+ajax+php图片压缩后替换原input=file上传

当前大部分照片尺寸大于5MB&#xff0c;而50MB限制的PHP通常上传4MB左右 于是就需要压缩后上传&#xff0c;上5代码使用后筛选的代码 <?php if ($_SERVER[REQUEST_METHOD] POST) { $uploadDir uploads/ . date(Ymd) . /; if (!is_dir($uploadDir)) { mkdir($uploadDir, …

1 ISP一键下载

BOOT0BOOT1启动模式说明0X用户Flash用户闪存存储器&#xff0c;也就是Flash启动10系统存储器系统存储器启动&#xff0c;串口下载11SRAM启动SRAM启动&#xff0c;用于在SRAM中调试代码 闪存存储器 是STM32 的内置FLASH,一般使用JTAG或者SWD模式下载程序时&#xff0c;就是下载…

泷羽sec学习打卡-shell命令4

声明 学习视频来自B站UP主 泷羽sec,如涉及侵权马上删除文章 笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都 与本人无关,切莫逾越法律红线,否则后果自负 关于shell的那些事儿-shell4 如何在shell脚本与用户进行交互&#xff1f;如何限制用户输入的字符个数呢…

电子应用设计方案-27:智能淋浴系统方案设计

智能淋浴系统方案设计 一、系统概述 本智能淋浴系统旨在为用户提供舒适、便捷、个性化的淋浴体验&#xff0c;通过集成多种智能技术&#xff0c;实现水温、水流、淋浴模式的精准控制以及与其他智能家居设备的联动。 二、系统组成 1. 喷头及淋浴杆 - 采用可调节角度和高度的设计…

Spring系列之批处理Spring Batch介绍

概述 官网&#xff0c;GitHub A lightweight, comprehensive batch framework designed to enable the development of robust batch applications vital for the daily operations of enterprise systems. 执行流程 实战 假设有个待处理的任务&#xff0c;如文件batch-tes…

内存共享模型和Actor 模型

内存共享模型&#xff1a; 典型代表&#xff1a;java Actor 模型&#xff1a; 典型代表&#xff1a;HamnoyOS API 13

机器学习期末复习笔记

markdown文件下载&#xff1a;https://github.com/1037827920/SCUT-Notes/tree/main/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0 机器学习期末复习笔记 1. 机器学习简介 1.1 什么是机器学习 如图所示&#xff1a; 几乎所有的机器学习都包括以下三个部分&#xff1a;数据、模型和…

Spring Boot拦截器(Interceptor)详解

拦截器Interceptor 拦截器我们主要分为三个方面进行讲解&#xff1a; 介绍下什么是拦截器&#xff0c;并通过快速入门程序上手拦截器拦截器的使用细节通过拦截器Interceptor完成登录校验功能 1. 快速入门 什么是拦截器&#xff1f; 是一种动态拦截方法调用的机制&#xff…

Python基础学习-12匿名函数lambda和map、filter

目录 1、匿名函数&#xff1a; lambda 2、Lambda的参数类型 3、map、 filter 4、本节总结 1、匿名函数&#xff1a; lambda 1&#xff09;语法&#xff1a; lambda arg1, arg2, …, argN : expression using arg 2&#xff09; lambda是一个表达式&#xff0c;而不是一个语…

【SpringBoot】Spring Data Redis的环境搭建(win10)

启动redis服务 进入redis安装目录&#xff0c;启动cmd Redis客户端连接redis服务 我用的redis客户端是github上一个大佬写的&#xff0c;叫 Another Redis Desktop Manager Java框架操作Redis 框架有很多&#xff0c;比如Jedis&#xff0c;Spring Data Redis&#xff0c;Let…

联想品牌的电脑 Bios 快捷键是什么?如何进入 Bios 设置?

在某些情况下&#xff0c;您可能需要通过U盘来安装操作系统或进行系统修复。对于联想电脑用户来说&#xff0c;了解如何设置U盘作为启动设备是非常有用的技能之一。本文简鹿办公将指导您如何使用联想电脑的 U 盘启动快捷键来实现这一目标。 联想笔记本 对于大多数联想笔记本电…

51单片机教程(九)- 数码管的动态显示

1、项目分析 通过演示数码管动态显示的操作过程。 2、技术准备 1、 数码管动态显示 4个1位数码管和单片机如何连接 a、静态显示的连接方式 优点&#xff1a;不需要动态刷新&#xff1b;缺点&#xff1a;占用IO口线多。 b、动态显示的连接方式 连接&#xff1a;所有位数码…

windows下安装node.js和pnpm

首先&#xff0c;一定要powershell右键选择管理员身份运行&#xff0c;否则第三个命令报错。 # 安装 fnm (快速 Node 管理器) winget install Schniz.fnm# 配置 fnm 环境 fnm env --use-on-cd | Out-String | Invoke-Expression# 下载并安装 Node.js fnm use --install-if-mis…

【JavaEE初阶】枫叶经霜艳,梅花透雪香-计算机是如何运行的?

本篇博客给大家带来的是与计算机相关的知识点, 包括:计算机的组成, 指令, 进程(重点). 文章专栏: JavaEE初阶 若有问题 评论区见 欢迎大家点赞 评论 收藏 分享 如果你不知道分享给谁,那就分享给薯条. 你们的支持是我不断创作的动力 . 1. 计算机的组成 1.1 计算机的发展史 计算…

基于时间维度优化“开源 AI 智能名片 S2B2C 商城小程序”运营策略:提升触达与转化效能

摘要&#xff1a; 随着数字化商业生态的蓬勃发展&#xff0c;“开源 AI 智能名片 S2B2C 商城小程序”融合前沿技术与创新商业模式&#xff0c;为企业营销与业务拓展带来新机遇。本文聚焦于用户时间场景维度&#xff0c;深入剖析如何依据不同时段用户行为特征&#xff0c;精准适…