🚀 开放域文本到视频合成模型
本模型基于多阶段文本到视频生成扩散模型,输入一段描述文本,即可返回与文本描述相匹配的视频。目前仅支持英文输入。
我们正在招聘!(工作地点:中国北京/杭州)
如果你渴望迎接激动人心的挑战,并有机会在AIGC和大规模预训练领域运用前沿技术,那么我们就是你的理想之选。我们正在寻找有才华、有动力且富有创造力的人才加入我们的团队。如果您感兴趣,请将简历发送给我们。
邮箱:yingya.zyy@alibaba-inc.com
🚀 快速开始
让我们先安装所需的库:
$ pip install diffusers transformers accelerate torch
现在,生成一个视频:
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()
prompt = "Spiderman is surfing"
video_frames = pipe(prompt, num_inference_steps=25).frames
video_path = export_to_video(video_frames)
✨ 主要特性
- 多阶段架构:由文本特征提取模型、文本特征到视频潜空间扩散模型以及视频潜空间到视频视觉空间模型三个子网络组成。
- 广泛应用:能够根据任意英文文本描述进行推理并生成视频。
📦 安装指南
安装所需库的命令如下:
$ pip install diffusers transformers accelerate torch
💻 使用示例
基础用法
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()
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 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", 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](https://m - bain.github.io/webvid-dataset/)等公共数据集。在预训练后会进行图像和视频过滤,如美学评分、水印评分和去重等操作。
引用
@article{wang2023modelscope,
title={Modelscope text-to-video technical report},
author={Wang, Jiuniu and Yuan, Hangjie and Chen, Dayou and Zhang, Yingya and Wang, Xiang and Zhang, Shiwei},
journal={arXiv preprint arXiv:2308.06571},
year={2023}
}
@InProceedings{VideoFusion,
author = {Luo, Zhengxiong and Chen, Dayou and Zhang, Yingya and Huang, Yan and Wang, Liang and Shen, Yujun and Zhao, Deli and Zhou, Jingren and Tan, Tieniu},
title = {VideoFusion: Decomposed Diffusion Models for High-Quality Video Generation},
booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
month = {June},
year = {2023}
}
📄 许可证
本模型采用CC - BY - NC - ND许可证。