VideoTetris: 迈向可组合的文本到视频生成
本仓库包含了我们的VideoTetris的官方实现。
VideoTetris: 迈向可组合的文本到视频生成
田野、 杨玲*、 杨浩天、 高远、 邓宇凡、 陈婧敏、 王鑫涛、 于兆晨、 陶鑫、 万鹏飞、 张迪、 崔斌
(* 共同第一作者和通讯作者)
北京大学、快手科技
最新动态
- VideoTetris论文发布
- 发布VideoTetris用于可组合文本到视频生成的推理代码
- 基于我们过滤后的数据集,发布用于长视频生成的微调StreamingT2V模型
- 发布我们的LLM时空规划代码
- 发布长视频可组合生成的训练/推理代码
- 发布长视频可组合生成的模型检查点
简介
VideoTetris是一个新颖的框架,能够实现可组合的文本到视频生成。具体而言,我们提出了时空可组合扩散,通过在空间和时间上操纵和组合去噪网络的注意力图,精确地遵循复杂的文本语义。此外,我们提出了一种增强的视频数据预处理方法,以提高训练数据在运动动态和提示理解方面的质量,并配备了一种新的参考帧注意力机制,以改善自回归视频生成的一致性。我们的演示包括成功生成从10秒、30秒到2分钟的视频,并可以延长至更长的时间。
训练和推理
可组合文本到视频生成
我们提供了基于VideoCrafter2的VideoTetris可组合视频生成推理代码。您可以从Hugging Face下载预训练模型,并将其放在checkpoints/base_512_v2/model.ckpt
。然后运行以下命令:
1. 通过Anaconda安装环境(推荐)
conda create -n videocrafter python=3.8.5
conda activate videocrafter
pip install -r requirements.txt
2. 区域规划
您可以在类似prompts/demo_videotetris.json
的json文件中为不同的子对象规划区域。区域由边界框的左上角和右下角坐标定义。您可以参考prompts/demo_videotetris.json
作为示例。最终的规划json应如下所示:
{
{
"basic_prompt": "左边有一只猫,右边有一只狗,它们正在阳光下打盹。",
"sub_objects":[
"一只可爱的橘猫。",
"一只可爱的狗。"
],
"layout_boxes":[
[0, 0, 0.5, 1],
[0.5, 0, 1, 1]
]
},
}
在这个例子中,我们首先定义了基本提示,然后指定了子对象及其对应的区域,最终生成一个左边有猫右边有狗的视频。
3. VideoTetris推理
sh scripts/run_text2video_from_layout.sh
您可以在run_text2video_from_layout.sh
脚本中指定输入的json文件。
具有高动态性和一致性的长视频生成
我们发布了一个使用我们过滤后的数据集微调的高质量StreamingT2V版本,用于长视频生成。您可以从Hugging Face-VideoTetris-long下载权重。不再存在颜色退化问题,运动动态性也得到了极大改善! 要生成更好的长视频,您可以首先按照其 GitHub 仓库中的步骤设置原始 StreamingT2V 环境。然后直接用下载的检查点替换 StreamingT2V 代码库中的 'streamingt2v.ckpt'。之后使用原始 StreamingT2V 代码库进行任何长视频生成任务的推理。
我们仍在努力在 VideoTetris 框架中训练更好的长篇组合视频生成模型,一旦准备就绪,我们将发布训练/推理代码。敬请期待!
示例结果
我们在此仅提供一些示例结果,更详细的结果可以在项目页面中找到。
左边是一只可爱的棕色狗,右边是一只睡眼惺忪的猫,它们正在阳光下小憩。 @16 帧 | 一位快乐的农夫和一位勤劳的铁匠正在建造一座谷仓。 @16 帧 |
一只可爱的棕色松鼠,在一堆榛子上,电影般的场景。 ------> 过渡到 两只可爱的棕色松鼠,在一堆榛子上,电影般的场景。 ------> 过渡到 三只可爱的棕色松鼠,在一堆榛子上,电影般的场景。 ------> 过渡到 四只可爱的棕色松鼠,在一堆榛子上,电影般的场景。 @80 帧 | 一只可爱的棕色松鼠,在一堆榛子上,电影般的场景。 ------> 过渡到 一只可爱的棕色松鼠和一只可爱的白色松鼠,在一堆榛子上,电影般的场景。 @240 帧 |
引用
@article{tian2024videotetris,
title={VideoTetris: Towards Compositional Text-to-Video Generation},
author={Tian, Ye and Yang, Ling and Yang, Haotian and Gao, Yuan and Deng, Yufan and Chen, Jingmin and Wang, Xintao and Yu, Zhaochen and Tao, Xin and Wan, Pengfei and Zhang, Di and Cui, Bin},
journal={arXiv preprint arXiv:2406.04277},
year={2024}
}