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

丹摩征文活动 | CogVideoX-2b实战部署:简化文字生成视频步骤

一、CogVideoX-2b简介

随着生成式AI技术的快速发展,视频生成模型逐渐成为人工智能研究和应用中的重要方向。其中,CogVideoX-2b脱颖而出,作为一款强大的文本生成视频(Text-to-Video)模型,展示了文本描述与视频内容生成的高度关联性和表现力。

模型特点

大规模参数与高质量输出
CogVideoX-2b基于2B(20亿)参数构建,采用了先进的扩散模型架构,能够理解复杂的自然语言描述并生成逼真的视频内容。

多模态对齐
模型经过多模态对齐优化,支持生成语义一致的视频片段,将文本中隐含的动态行为和场景细节精确映射到视频。

高效推理与可扩展性
在FP16精度下,CogVideoX-2b能够以高效的推理速度生成视频,适用于具有高性能显卡的科研团队或企业。

应用场景

影视制作:快速生成创意短片或概念设计视频。
教育和培训:为在线课程生成可视化演示内容。
广告与营销:基于文本广告语生成具有视觉冲击力的视频片段。
科研与实验:研究文本与视频之间的语义映射关系。

技术亮点

基于扩散模型:使用扩散式生成架构,逐步优化视频帧质量。
中文与多语言支持:专为多语言用户优化,支持中文等多种语言输入。
开放性与易用性:开源模型与工具包,使开发者能够轻松部署并应用于各种场景。
在这里插入图片描述

二、创建实例

登录丹摩官网,点击控制台,进去后点击GPU云实例
在这里插入图片描述

在使用CogVideoX进行推理和微调时,显存需求需要特别注意。在FP-16模式下,推理操作最低需要18GB的显存,而微调则要求显存达到40GB。因此,建议采用L40S显卡(首选)或4090显卡,以确保满足这些性能需求。
在这里插入图片描述
镜像选择 PyTorch2.3.0Ubuntu-22.04CUDA12.1 镜像。
在这里插入图片描述
生成并访问实例,只需点击生成密钥对,输入名称即可完成创建。

实例创建成功
在这里插入图片描述

三、配置环境

丹摩平台提供了优化后的代码库,方便用户直接使用。打开 JupyterLab,启动终端,首先克隆 CogVideo 的代码仓库。

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

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

在这里插入图片描述
依赖安装完成后,你可以在终端键入 python,直接进入 Python 环境,准备开始编写和调试代码。

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

如果在过程中没有出现错误信息,则表示依赖已成功安装!要退出 Python 环境,只需输入quit()即可。

在这里插入图片描述

四、配置文件

除了设置代码和安装项目依赖外,还需上传 CogVideoX 模型及其配置文件。平台已提前配置好 CogVideoX 模型,您可以通过内网快速获取下载。

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

这种预加载功能大大简化了您的准备工作,使您能够专注于项目的开发和实现。通过这种方式,您无需担心模型文件的获取和上传过程,因为平台已经为您提供了便捷的解决方案。只需简单几步,您就可以迅速得到所需文件,并投入到更具创造性的工作中。
在这里插入图片描述
下载完成后解压缩CogVideoX-2b.tar。

tar -xf CogVideoX-2b.tar

解压后的效果图:
在这里插入图片描述

五、运行CogVideoX-2b

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

cd /root/workspace/CogVideo-main
python 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)

运行成功后,可以在 CogVideo-main 文件夹中找到对应 prompt 生成的 output.mp4 视频。
在这里插入图片描述
模型官方也提供了 webUIDemo,进入CogVideo-main文件夹,运行gradio_demo.py文件。

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

通过丹摩平台提供的端口映射能力,把内网端口映射到公网,进入GPU 云实例页面,点击操作-更多-访问控制。
点击添加端口,添加7870端口。
在这里插入图片描述
添加成功后,通过访问链接即可访问到刚刚启动的 gradio 页面。
在这里插入图片描述

六、效果展示

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.
在这里插入图片描述


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

相关文章:

  • 在arm64架构下, Ubuntu 18.04.5 LTS 用命令安装和卸载qt4、qt5
  • 深入解析Javascript中的this指向
  • 【阅读记录-章节1】Build a Large Language Model (From Scratch)
  • Vue学习记录03
  • shell编程--永久环境变量和字符串显位
  • c++原型模式(Prototype Pattern)
  • 根据 Maven 的不同 profiles 来改变 Spring Boot 应用程序的配置
  • 如何使用PCL处理ROS Bag文件中的点云数据并重新保存 ubuntu20.04
  • D3基础:绘制圆形、椭圆形、多边形、线、路径、矩形
  • Windows文件资源管理器增强工具
  • Mac的Terminal随机主题配置
  • 关于Redux的学习(包括Redux-toolkit中间件)
  • 服务器作业4
  • 常见的网络协议汇总(涵盖了不同的网络层次)
  • 网络安全与CTF在线学习资源网站
  • 【第5章 | 神经网络】(python机器学习)
  • node版本升级,从卸载到使用nvm管理node版本并配置vue环境(学习趟雷版)
  • 【技术解析】Dolphinscheduler实现MapReduce任务的高效管理
  • Python蓝桥杯刷题1
  • 【hacker送书第16期】Python数据分析、挖掘与可视化、AI全能助手ChatGPT职场工作效率提升技巧与案例
  • k8s集群扩容
  • React状态管理之Zustand
  • AIGC----教育领域的AIGC:个性化学习材料生成
  • 【taro react】 ---- 解决 input 、textarea 层级穿透
  • 在 Ubuntu 中用 VSCode 配置 C 语言项目的编译与调试(详解教程)
  • 2411rust,1.75.0