在这项工作中,我们提出了Vlogger,一个能够根据用户描述生成分钟级视频博客(即vlog)的通用AI系统。与只有几秒钟的短视频不同,vlog通常包含复杂的故事情节和多样化的场景,这对大多数现有的视频生成方法来说是一个挑战。为了突破这个瓶颈,我们的Vlogger巧妙地利用大型语言模型(LLM)作为导演,将长视频生成任务分解为四个关键阶段,在每个阶段我们调用各种基础模型来扮演vlog专业人士的重要角色,包括(1)编剧、(2)演员、(3)制作人和(4)配音员。通过这种模仿人类的设计,我们的Vlogger可以通过自顶向下的规划和自底向上的拍摄的可解释合作来生成vlog。此外,我们还引入了一个新颖的视频扩散模型ShowMaker,它在我们的Vlogger中充当摄影师的角色,负责生成每个拍摄场景的视频片段。通过将编剧和演员作为文本和视觉提示有针对性地融入,它可以有效增强片段的时空连贯性。另外,我们为ShowMaker设计了一个简洁的混合训练范式,提升了其文本到视频生成和预测的能力。最后,大量实验表明,我们的方法在零样本文本到视频生成和预测任务上达到了最先进的性能。更重要的是,Vlogger可以从开放世界的描述中生成超过5分钟的vlog,而不会在剧本和演员方面失去视频的连贯性。
使用方法
设置
准备环境
conda create -n vlogger python==3.10.11
conda activate vlogger
pip install -r requirements.txt
下载我们的模型和文本到图像基础模型
我们的模型基于Stable diffusion v1.4,您可以下载Stable Diffusion v1-4和OpenCLIP-ViT-H-14到pretrained
目录。
从Google Drive或Hugging Face下载我们的模型(ShowMaker)检查点,并保存到pretrained
目录。
现在在./pretrained
下,您应该能看到以下内容:
├── pretrained
│ ├── ShowMaker.pt
│ ├── stable-diffusion-v1-4
│ ├── OpenCLIP-ViT-H-14
│ │ ├── ...
└── └── ├── ...
├── ...
LLM规划推理和生成参考图像
运行以下命令获取脚本、演员和主角:
python sample_scripts/vlog_write_script.py
-
生成的脚本将保存在
results/vlog/$your_story_dir/script
中。 -
生成的参考图像将保存在
results/vlog/$your_story_dir/img
中。 -
:warning: 在
vlogger/planning_utils/gpt4_utils.py
文件的第7行输入您的OpenAI密钥。
vlog生成推理
运行以下命令获取vlog:
python sample_scripts/vlog_read_script_sample.py
- 生成的视频将保存在
results/vlog/$your_story_dir/video
中。
(T+I)2V 推理
运行以下命令获取 (T+I)2V 结果:
python sample_scripts/with_mask_sample.py
- 生成的视频将保存在
results/mask_no_ref
中。
(T+I+Ref)2V 推理
运行以下命令获取 (T+I+Ref)2V 结果:
python sample_scripts/with_mask_ref_sample.py
- 生成的视频将保存在
results/mask_ref
中。
更多详情
您可以修改 configs/with_mask_sample.yaml
来更改 (T+I)2V 条件,修改 configs/with_mask_ref_sample.yaml
来更改 (T+I+Ref)2V 条件。
例如:
-
ckpt
用于指定模型检查点。 -
text_prompt
用于描述视频内容。 -
input_path
用于指定输入图像的路径。 -
ref_path
用于指定参考图像的路径。 -
save_path
用于指定生成视频的保存路径。
结果
(T+Ref)2V 结果
参考图像 | 输出视频 |
场景参考 |
烟花在金字塔上空绽放。 |
场景参考 |
长城被熊熊烈火燃烧。 |
物体参考 |
一只猫在海滩上奔跑。 |
(T+I)2V 结果
输入图像 | 输出视频 |
水下环境中的化妆品瓶。 | |
一大滴水落在玫瑰花瓣上。 | |
一条鱼游过一位东方女性身边。 | |
电影般的照片。驾驶飞机的视角。 | |
行星撞击地球。 |
文本到视频生成结果
输出视频 | |
一只鹿回头看身后的日落。 |
一只鸭子在教另一只鸭子数学。 |
贝索斯探索热带雨林。 |
浅蓝色的海水拍打着海滩。 |
BibTeX
@article{zhuang2024vlogger,
title={Vlogger: Make Your Dream A Vlog},
author={Zhuang, Shaobin and Li, Kunchang and Chen, Xinyuan and Wang, Yaohui and Liu, Ziwei and Qiao, Yu and Wang, Yali},
journal={arXiv preprint arXiv:2401.09414},
year={2024}
}
@article{chen2023seine,
title={SEINE: Short-to-Long Video Diffusion Model for Generative Transition and Prediction},
author={Chen, Xinyuan and Wang, Yaohui and Zhang, Lingjun and Zhuang, Shaobin and Ma, Xin and Yu, Jiashuo and Wang, Yali and Lin, Dahua and Qiao, Yu and Liu, Ziwei},
journal={arXiv preprint arXiv:2310.20700},
year={2023}
}
@article{wang2023lavie,
title={LAVIE: High-Quality Video Generation with Cascaded Latent Diffusion Models},
author={Wang, Yaohui and Chen, Xinyuan and Ma, Xin and Zhou, Shangchen and Huang, Ziqi and Wang, Yi and Yang, Ceyuan and He, Yinan and Yu, Jiashuo and Yang, Peiqing and others},
journal={arXiv preprint arXiv:2309.15103},
year={2023}
}
免责声明
我们对用户生成的内容不承担责任。该模型未经训练以逼真地表现人物或事件,因此使用它生成此类内容超出了模型的能力范围。禁止生成色情、暴力和血腥内容,以及生成贬低或伤害他人或其环境、文化、宗教等的内容。用户对自己的行为完全负责。项目贡献者在法律上与用户的行为没有关联,也不对用户的行为负责。请负责任地使用生成模型,遵守道德和法律标准。
联系我们
庄少彬: zhuangshaobin@pjlab.org.cn, 李坤昌: likunchang@pjlab.org.cn 陈昕源:chenxinyuan@pjlab.org.cn,王耀辉:wangyaohui@pjlab.org.cn
致谢
本代码基于SEINE、LaVie、diffusers和Stable Diffusion构建,我们感谢所有开源贡献者。
许可证
代码采用Apache-2.0许可证,模型权重完全开放用于学术研究,并允许免费商业使用。如需申请商业许可,请联系zhuangshaobin@pjlab.org.cn。