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

丹摩征文活动 | 搭建 CogVideoX-2b详细教程:用短短6秒展现创作魅力

文章目录

    • 1. CogVideoX-2b简介
    • 2.创建实例
    • 3.配置环境
    • 4.上传模型文件
    • 5.运行CogVideoX-2b
    • 6.效果展示

1. CogVideoX-2b简介

在视频生成领域,CogVideoX 的出现无疑是一次突破。传统方法在提升效率和质量的过程中常常陷入困境,而 CogVideoX 则通过创新的3D变分自编码器技术,将视频数据压缩至原先的2%。这不仅大幅降低了资源消耗,还确保了视频帧的流畅衔接。

其独有的3D旋转位置编码技术,使得视频在时间轴上展现出自然的流动感,每一帧都仿佛充满活力。此外,智谱AI的端到端视频理解模型,能够精准捕捉用户需求,从而生成结构紧凑且内容丰富的视频。

这项创新为视频创作者打开了新的大门,使他们能在更少的限制下施展创意。凭借这些尖端技术的结合,CogVideoX 为视频创作注入了前所未有的灵活性和自由度,彻底颠覆了传统视频生成的模式,成为创作领域的一大革新。
在这里插入图片描述
CogVideoX 在文本理解和执行用户指令方面取得了显著提升。这项技术革新不仅确保生成的视频能够准确反映用户的输入,还能够灵活处理长段和复杂的文本提示。这一进步为 CogVideoX 开启了一个全新的发展阶段。

通过这一创新,CogVideoX 不仅能生成与用户需求高度契合的视频内容,还能应对各种复杂的创作场景。这使得用户在使用过程中享受到了更简便的体验和更高的创作自由度。凭借在文本处理上的突破,CogVideoX 为视频生成领域注入了新的活力。

2.创建实例

丹摩服务器上进行部署和初步使用 CogVideoX。

进入控制台,选择 GPU 云实例,点击创建实例。(实名认证有抵扣卷)
在这里插入图片描述
在这里插入图片描述

在使用CogVideoX进行推理和微调时,显存需求需要特别注意。在FP-16模式下,推理操作最低需要18GB的显存,而微调则要求显存达到40GB。因此,建议采用L40S显卡(首选)或4090显卡,以确保满足这些性能需求。

镜像选择 PyTorch2.3.0、Ubuntu-22.04,CUDA12.1 镜像。
在这里插入图片描述

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

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

3.配置环境

丹摩平台已预置了调试好的代码库,可开箱即用。进入 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

没有报错就说明依赖安装成功!输入quit()可退出 python。
在这里插入图片描述

4.上传模型文件

除了设置代码文件和项目的依赖包之外,还需要将CogVideoX的模型文件和相关的配置文件上传到系统中。平台已经提前为您准备了CogVideoX模型,您可以通过内网快速下载这些资源。

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

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

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

tar -xf CogVideoX-2b.tar

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

5.运行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 页面。
在这里插入图片描述

6.效果展示

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/391349.html

相关文章:

  • v3s点RGB屏 40pin 800x480,不一样的点屏,不通过chosen。
  • 数据结构与算法学习笔记----质数
  • Element-plus表格使用总结
  • 汽车IVI中控开发入门及进阶(47):CarPlay开发
  • C++中的模板元编程
  • 如何学习Trustzone
  • labview实现上升沿和下降沿
  • 【海外SRC漏洞挖掘】谷歌语法发现XSS+Waf Bypass
  • SpringBoot下Bean的单例模式详解
  • Spring Boot编程训练系统:开发中的挑战与解决方案
  • PVE纵览-从零开始:了解Proxmox Virtual Environment
  • C++初阶——list
  • 【MySQL】MySQL函数之JSON_EXTRACT
  • python机器人Agent编程——使用swarm框架和ollama实现一个本地大模型和爬虫结合的手机号归属地天气查询Agent流(体会)
  • CKA认证 | Day2 K8s内部监控与日志
  • Rust where子句(用于指定泛型类型参数约束、泛型约束、泛型类型约束)
  • npm list @types/node 命令用于列出当前项目中 @types/node 包及其依赖关系
  • linux进行磁盘分区
  • 深度学习:tensor的定义与维度
  • SOLIDWORKS代理商鑫辰信息科技
  • DOM NodeList 探索
  • caozha-order(广告竞价页订单管理系统)
  • sqlite更新
  • 第R3周:RNN-心脏病预测(TensorFlow版)
  • JavaWeb--SpringBoot
  • 计算机网络基础:从IP地址到分层模型