CogVideo - 文生视频、图生视频

在这里插入图片描述


一、关于 CogVideo

CogVideoX是智谱开放平台中最新上线的视频模型,现已支持文生视频、图生视频多个能力,让用户可以在开放平台使用和调用视频模型能力,轻松高效地完成艺术视频创作。体验中心支持多种生成方式,包括文本生成视频、图片生成视频,可应用于广告制作、电影剪辑、短视频制作等领域。

CogVideoX-5B 是中质量较高视频生成模型,提升了视频生成的质量与视觉效果,适合对生成效果有更高要求的用户。相较于入门级的 CogVideoX-2B,该模型具有更大的规模,支持更高精度的推理和优化,能够在保持高生成质量的同时减少资源消耗。


体验


二、快速开始


1、提示词优化

在开始运行模型之前,请参考 这里 查看我们是怎么使用GLM-4(或者同级别的其他产品,例如GPT-4) 大模型对模型进行优化的,这很重要, 由于模型是在长提示词下训练的,一个好的提示词直接影响了视频生成的质量。


2、SAT

查看sat文件夹下的 sat_demo:包含了 SAT 权重的推理代码和微调代码,推荐基于此代码进行 CogVideoX 模型结构的改进,研究者使用该代码可以更好的进行快速的迭代和开发。


3、Diffusers

pip install -r requirements.txt

查看diffusers_demo:包含对推理代码更详细的解释,包括各种关键的参数。


三、模型介绍

CogVideoX是 清影 同源的开源版本视频生成模型。 下表展示我们提供的视频生成模型相关基础信息:

模型名CogVideoX-2BCogVideoX-5B
模型介绍入门级模型,兼顾兼容性。运行,二次开发成本低。视频生成质量更高,视觉效果更好的更大尺寸模型。
推理精度FP16*(推荐), BF16, FP32,FP8*,INT8,不支持INT4BF16(推荐), FP16, FP32,FP8*,INT8,不支持INT4
单GPU显存消耗SAT FP16: 18GB diffusers FP16: 4GB起* diffusers INT8(torchao): 3.6G起*SAT BF16: 26GB diffusers BF16 : 5GB起* diffusers INT8(torchao): 4.4G起*
多GPU推理显存消耗FP16: 10GB* using diffusersBF16: 15GB* using diffusers
推理速度 (Step = 50)FP16: ~90* sBF16: ~180* s
微调精度FP16BF16
微调显存消耗(每卡)47 GB (bs=1, LORA) 61 GB (bs=2, LORA) 62GB (bs=1, SFT)63 GB (bs=1, LORA) 80 GB (bs=2, LORA) 75GB (bs=1, SFT)
提示词语言English*
提示词长度上限226 Tokens
视频长度6 秒
帧率8 帧 / 秒
视频分辨率720 * 480,不支持其他分辨率(含微调)
位置编码3d_sincos_pos_embed3d_rope_pos_embed
下载链接 (Diffusers)🤗 HuggingFace 🤖 ModelScope 🟣 WiseModel🤗 HuggingFace 🤖 ModelScope 🟣 WiseModel
下载链接 (SAT)SAT

数据解释

  • 使用 diffusers 库进行测试时,启用了全部diffusers库自带的优化,该方案未测试在非NVIDIA A100 / H100 外的设备上的实际显存 / 内存占用。通常,该方案可以适配于所有 NVIDIA 安培架构 以上的设备。若关闭优化,显存占用会成倍增加,峰值显存约为表格的3倍。但速度提升3-4倍左右。你可以选择性的关闭部分优化,这些优化包括:
pipe.enable_sequential_cpu_offload()
pipe.vae.enable_slicing()
pipe.vae.enable_tiling()

  • 多GPU推理时,需要关闭 enable_sequential_cpu_offload() 优化。
  • 使用 INT8 模型会导致推理速度降低,此举是为了满足显存较低的显卡能正常推理并保持较少的视频质量损失,推理速度大幅降低。
  • 2B 模型采用 FP16 精度训练, 5B模型采用 BF16 精度训练。我们推荐使用模型训练的精度进行推理。
  • PytorchAOOptimum-quanto 可以用于量化文本编码器、Transformer 和 VAE 模块,以降低 CogVideoX 的内存需求。这使得在免费的 T4 Colab 或更小显存的 GPU 上运行模型成为可能!同样值得注意的是,TorchAO 量化完全兼容 torch.compile,这可以显著提高推理速度。在 NVIDIA H100 及以上设备上必须使用 FP8 精度,这需要源码安装 torchtorchaodiffusersaccelerate Python 包。建议使用 CUDA 12.4
  • 推理速度测试同样采用了上述显存优化方案,不采用显存优化的情况下,推理速度提升约10%。 只有diffusers版本模型支持量化。
  • 模型仅支持英语输入,其他语言可以通过大模型润色时翻译为英语。

四、友情链接

我们非常欢迎来自社区的贡献,并积极的贡献开源社区。以下作品已经对CogVideoX进行了适配,欢迎大家使用:

  • Xorbits Inference: 性能强大且功能全面的分布式推理框架,轻松一键部署你自己的模型或内置的前沿开源模型。
  • ComfyUI-CogVideoXWrapper 使用ComfyUI框架,将CogVideoX加入到你的工作流中。
  • VideoSys: VideoSys 提供了易用且高性能的视频生成基础设施,支持完整的管道,并持续集成最新的模型和技术。
  • AutoDL镜像: 由社区成员提供的一键部署Huggingface Space镜像。
  • Colab Space 使用 Jupyter Notebook 运行 CogVideoX-5B 模型的 Colab 代码。

五、完整项目代码结构

本开源仓库将带领开发者快速上手 CogVideoX 开源模型的基础调用方式、微调示例。


1、inference

  • cli_demo: 更详细的推理代码讲解,常见参数的意义,在这里都会提及。
  • cli_demo_quantization: 量化模型推理代码,可以在显存较低的设备上运行,也可以基于此代码修改,以支持运行FP8等精度的CogVideoX模型。请注意,FP8 仅测试通过,且必须将 torch-nightly,torchao源代码安装,不建议在生产环境中使用。
  • diffusers_vae_demo: 单独执行VAE的推理代码。
  • space demo: Huggingface Space同款的 GUI 代码,植入了插帧,超分工具。
  • convert_demo: 如何将用户的输入转换成适合 CogVideoX的长输入。因为CogVideoX是在长文本上训练的,所以我们需要把输入文本的分布通过LLM转换为和训练一致的长文本。脚本中默认使用GLM-4,也可以替换为GPT、Gemini等任意大语言模型。
  • gradio_web_demo: 一个简单的gradio网页应用,展示如何使用 CogVideoX-2B / 5B 模型生成视频。 与我们的 Huggingface Space 类似,你可以使用此脚本运行一个简单的网页应用,用于生成视频。

cd inference
# For Linux and Windows users
python gradio_web_demo.py

# For macOS with Apple Silicon users, Intel not supported, this maybe 20x slower than RTX 4090
PYTORCH_ENABLE_MPS_FALLBACK=1 python gradio_web_demo.py

在这里插入图片描述


2、sat

  • sat_demo: 包含了 SAT 权重的推理代码和微调代码,推荐基于 CogVideoX 模型结构进行改进,创新的研究者使用改代码以更好的进行快速的堆叠和开发。

3、tools

本文件夹包含了一些工具,用于模型的转换 / Caption 等工作。


六、CogVideo(ICLR’23)

CogVideo: Large-scale Pretraining for Text-to-Video Generation via Transformers 的官方repo位于CogVideo branch

CogVideo可以生成高帧率视频,下面展示了一个32帧的4秒视频。

在这里插入图片描述


在这里插入图片描述


视频: 1.mp4


2024-09-16(一)

### 开源项目用于文本视频 为了实现从文本视频的任务,通常需要结合多个技术组件来完成整个流程。一方面,存在专门针对文本到像或文本到视频成的应用程序,这些应用程序利用了高性能的Diffusion Transformer(DiT),能够有效地将自然语言描述转化为视觉内容[^1]。 ```python from transformers import pipeline text_to_video_generator = pipeline('text-to-video-generation') video_output = text_to_video_generator("A beautiful sunset over the ocean.") ``` 然而,在许多情况下,直接的文字视频功能并不是现成可用的。因此,一种常见的做法是先使用文本转语音(TTS)工具创建音频文件,再借助视频编辑软件或其他专用APIs合成最终的产品。例如,可以采用开源AI模型如GPT-2成详细的场景描述作为中间步骤的一部分。 ### 开源项目用于视频 对于由静态像序列构建动态影像的需求而言,同样存在着多种解决方案可供选择。某些框架允许开发者定义一系列变换规则,从而让计算机自动地把单张或多张静止的画面组合起来形成连贯的动作片段。值得注意的是,MetalCamera这样的iOS平台上的GPU加速库也提供了强大的能力来进行实时渲染以及复杂的后期特效处理操作[^3]。 ```bash # 安装 MetalCamera 及其依赖项 pip install metalcamera opencv-python numpy ``` 尽管如此,具体实施过程中还需要考虑诸如帧率同步、过渡效果设计等因素以确保产出质量达到预期标准。此外,也可以探索其他专注于多媒体创作领域的第三方插件和服务提供商所推出的特色功能模块。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编程乐园

请我喝杯伯爵奶茶~!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值