🚀 开放领域文本到视频合成模型
本模型基于多阶段文本到视频生成扩散模型,输入一段描述文本,即可返回与文本描述相匹配的视频。目前仅支持英文输入。
🚀 快速开始
安装依赖库
$ 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)
✨ 主要特性
- 广泛的应用场景:该模型应用广泛,能够根据任意英文文本描述进行推理并生成视频。
- 多阶段扩散模型:基于多阶段文本到视频生成扩散模型,由文本特征提取模型、文本特征到视频潜在空间扩散模型以及视频潜在空间到视频视觉空间模型三个子网络组成。
📦 安装指南
安装所需的库:
$ 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)
高级用法
通过启用注意力和VAE切片并使用Torch 2.0来优化内存使用,可在小于16GB的GPU显存上生成长达25秒的视频。
$ pip install diffusers transformers accelerate 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", torch_dtype=torch.float16, variant="fp16")
pipe.scheduler = DPMSolverMultistepScheduler.from_config(pipe.scheduler.config)
pipe.enable_model_cpu_offload()
pipe.enable_vae_slicing()
prompt = "Spiderman is surfing. Darth Vader is also surfing and following Spiderman"
video_frames = pipe(prompt, num_inference_steps=25, num_frames=200).frames
video_path = export_to_video(video_frames)
📚 详细文档
模型描述
文本到视频生成扩散模型由三个子网络组成:文本特征提取模型、文本特征到视频潜在空间扩散模型以及视频潜在空间到视频视觉空间模型。整体模型参数约17亿。目前仅支持英文输入。扩散模型采用UNet3D结构,通过从纯高斯噪声视频的迭代去噪过程实现视频生成。
本模型仅用于研究目的,请查看模型局限性和偏差及滥用、恶意使用和过度使用部分。
模型详情
使用案例
该模型应用广泛,能够根据任意英文文本描述进行推理并生成视频。
查看结果
上述代码将显示输出视频的保存路径,当前编码格式可使用VLC播放器播放。输出的mp4文件可通过VLC媒体播放器查看,其他一些媒体播放器可能无法正常查看。
模型局限性和偏差
- 模型基于Webvid等公共数据集进行训练,生成结果可能与训练数据的分布存在偏差。
- 本模型无法实现完美的影视级质量生成。
- 模型无法生成清晰的文本。
- 模型主要使用英文语料进行训练,目前不支持其他语言。
- 该模型在复杂构图生成任务上的性能有待提高。
恶意使用、过度使用
- 模型并非用于真实地呈现人物或事件,因此使用它生成此类内容超出了模型的能力范围。
- 禁止生成贬低或伤害他人、其环境、文化、宗教等的内容。
- 禁止用于色情、暴力和血腥内容的生成。
- 禁止用于错误和虚假信息的生成。
训练数据
训练数据包括LAION5B、ImageNet、Webvid等公共数据集。在预训练后进行图像和视频过滤,如美学评分、水印评分和去重等操作。
(本模型卡片部分内容取自此处)
📄 许可证
本模型使用的许可证为CC - BY - NC - ND。