模型:

damo-vilab/text-to-video-ms-1.7b-legacy

英文

开放领域文本生成视频合成模型

该模型基于多阶段文本生成视频扩散模型,输入一个描述文本,并返回与文本描述相匹配的视频。仅支持英文输入。

模型描述

文本生成视频扩散模型由三个子网络组成:文本特征提取模型、文本特征到视频潜空间扩散模型和视频潜空间到视频可见空间模型。整个模型参数约为17亿。目前仅支持英文输入。扩散模型采用UNet3D结构,通过从纯高斯噪声视频进行迭代去噪过程来实现视频生成。

该模型仅用于研究目的。请查看模型局限性和偏见以及误用、恶意使用和过度使用部分。

模型细节

使用场景

该模型具有广泛的应用,可以根据任意英文文本描述进行推理和生成视频。

用法

首先安装所需库:

$ pip install git+https://github.com/huggingface/diffusers transformers accelerate

现在,生成一个视频:

import torch
from diffusers import DiffusionPipeline, DPMSolverMultistepScheduler
from diffusers.utils import export_to_video

pipe = DiffusionPipeline.from_pretrained("damo-vilab/text-to-video-ms-1.7b-legacy", torch_dtype=torch.float16)
pipe.scheduler = DPMSolverMultistepScheduler.from_config(pipe.scheduler.config)
pipe.enable_model_cpu_offload()

prompt = "Spiderman is surfing"
video_frames = pipe(prompt, num_inference_steps=25).frames
video_path = export_to_video(video_frames)

这里是一些结果:

An astronaut riding a horse. 12314321 Darth vader surfing in waves. 12315321

生成长视频

您可以通过启用注意力和VAE切片以及使用Torch 2.0来优化内存使用。这样,您可以在不到16GB的GPU VRAM上生成长达25秒的视频。

$ pip install diffusers transformers accelerate transformers accelerate
import torch
from diffusers import DiffusionPipeline, DPMSolverMultistepScheduler
from diffusers.utils import export_to_video

# load pipeline
pipe = DiffusionPipeline.from_pretrained("damo-vilab/text-to-video-ms-1.7b", torch_dtype=torch.float16, variant="fp16")
pipe.scheduler = DPMSolverMultistepScheduler.from_config(pipe.scheduler.config)

# optimize for GPU memory
pipe.enable_model_cpu_offload()
pipe.enable_vae_slicing()

# generate
prompt = Spiderman is surfing. Darth Vader is also surfing and following Spiderman"
video_frames = pipe(prompt, num_inference_steps=25, num_frames=200).frames

# convent to video
video_path = export_to_video(video_frames)

查看结果

上面的代码将显示输出视频的保存路径,并且当前的编码格式可以使用 VLC player 进行播放。

输出的mp4文件可以通过 VLC media player 进行查看。其他某些媒体播放器可能无法正常查看。

模型局限性和偏见

  • 该模型是基于Webvid等公共数据集进行训练的,生成的结果可能与训练数据的分布有关的偏差。
  • 该模型无法实现完美的电影和电视质量生成。
  • 该模型无法生成清晰的文本。
  • 该模型主要使用英文语料库进行训练,目前不支持其他语言。
  • 对于复杂的组合生成任务,该模型的性能还有待改进。

误用、恶意使用和过度使用

  • 该模型没有经过训练以真实地表示人物或事件,因此使用它生成此类内容超出了模型的能力范围。
  • 禁止生成贬低或对人或其环境、文化、宗教等有害的内容。
  • 禁止生成色情、暴力和血腥内容。
  • 禁止生成错误和虚假信息。

训练数据

训练数据包括 LAION5B ImageNet Webvid 等公共数据集。在预训练后进行图像和视频过滤,例如美学分数、水印分数和去重。

(模型卡片的部分内容来自 here