开源协议: MIT
标签:
VGen视频生成框架

VGen是阿里巴巴集团通义实验室开发的开源视频合成代码库,集成了最先进的视频生成模型。本仓库包含以下方法的实现:
VGen能够根据输入文本、图像、目标运动、指定主体甚至反馈信号生成高质量视频,并提供可视化、采样、训练、推理、图像视频联合训练、加速等全套视频生成工具。

🔥最新动态
- [2023.12] 发布高效视频生成方法VideoLCM
- [2023.12] 开源I2VGen-XL和ModelScope T2V代码模型
- [2023.12] 发布文本到视频方法HiGen和定制化方法DreamVideo
- [2023.12] 发布VGen介绍文档并对比I2VGen-XL与SVD
- [2023.11] 发布高质量I2VGen-XL模型,详见项目主页
计划清单
- [x] 发布I2VGen-XL技术论文与网页
- [x] 开源支持1280x720视频生成的代码与预训练模型
- [ ] 发布针对人体和面部的优化模型
- [ ] 更新版本将完整保持ID并同时捕捉大幅精确运动
- [ ] 发布其他方法及对应模型
环境准备
VGen主要特性:
- 可扩展性:轻松管理自定义实验
- 完整性:包含视频生成全流程组件
- 卓越性能:提供多任务强大预训练模型
安装指南
conda create -n vgen python=3.8
conda activate vgen
pip install torch==1.12.0+cu113 torchvision==0.13.0+cu113 torchaudio==0.12.0 --extra-index-url https://download.pytorch.org/whl/cu113
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
数据集
我们提供了包含图像视频的演示数据集及文件列表,存放于data
目录。
注:演示图像仅用于测试,未参与训练
克隆仓库
git clone https://github.com/damo-vilab/i2vgen-xl.git
cd i2vgen-xl
快速入门
(1) 训练文本到视频模型
执行以下命令即可启动分布式训练:
python train_net.py --cfg configs/t2v_train.yaml
在t2v_train.yaml
中可配置数据、通过frame_lens
调整视频图像比例、修改Diffusion参数等:
- 训练前可下载任意开源模型初始化,支持自定义初始化与
grad_scale
设置
- 训练中可在
workspace/experiments/t2v_train
查看保存模型与推理中间结果
训练完成后运行以下命令进行推理:
python inference.py --cfg configs/t2v_infer.yaml
生成视频将保存在workspace/experiments/test_img_01
目录。
(2) 运行I2VGen-XL模型
(i) 下载模型与测试数据:
!pip install modelscope
from modelscope.hub.snapshot_download import snapshot_download
model_dir = snapshot_download('damo/I2VGen-XL', cache_dir='models/', revision='v1.0.0')
(ii) 执行命令:
python inference.py --cfg configs/i2vgen_xl_infer.yaml
几分钟后即可在workspace/experiments/test_img_01
获取高清视频。当前模型在动漫图像和黑底图像上表现欠佳(因训练数据不足),我们将持续优化。
由于GIF压缩影响画质,请点击下方'HERE'查看原视频
(3) 其他方法
筹备中
自定义方法
我们的代码库支持视频生成所有常用组件,您可以通过添加ENGINE, MODEL, DATASETS, EMBEDDER, AUTO_ENCODER, DISTRIBUTION, VISUAL, DIFFUSION, PRETRAIN
等注册类灵活管理实验,兼容所有开源算法。如有疑问随时反馈。
与🧨 diffusers集成
I2VGenXL已集成至🧨 diffusers库,使用方式如下:
import torch
from diffusers import I2VGenXLPipeline
from diffusers.utils import load_image, export_to_gif
repo_id = "ali-vilab/i2vgen-xl"
pipeline = I2VGenXLPipeline.from_pretrained(repo_id, torch_dtype=torch.float16, variant="fp16").to("cuda")
image_url = "https://github.com/ali-vilab/i2vgen-xl/blob/main/data/test_images/img_0009.png?download=true"
image = load_image(image_url).convert("RGB")
prompt = "图书馆桌面上漂浮着纸张"
generator = torch.manual_seed(8888)
frames = pipeline(prompt=prompt, image=image, generator=generator).frames[0]
print(export_to_gif(frames))
官方文档参见此处。
引用
若该仓库对您有帮助,请引用相关技术论文:
@article{2023i2vgenxl,
title={I2VGen-XL: High-Quality Image-to-Video Synthesis via Cascaded Diffusion Models},
author={Zhang, Shiwei and Wang, Jiayu and Zhang, Yingya and Zhao, Kang and Yuan, Hangjie and Qing, Zhiwu and Wang, Xiang and Zhao, Deli and Zhou, Jingren},
booktitle={arXiv preprint arXiv:2311.04145},
year={2023}
}
(其他论文引用格式详见原文)
免责声明
本开源模型基于WebVid-10M和LAION-400M数据集训练,仅限研究/非商业用途。