!!! 查看我们的CVPR 2024新论文和代码,专为文本条件的图像到视频生成而设计
LFDM
我们CVPR 2023论文《使用潜在流扩散模型的条件图像到视频生成》的PyTorch实现。
更新
[2023年8月7日更新] 为MHAD数据集添加了多GPU训练代码。
[2023年5月12日更新] 发布了NATOPS数据集的测试演示。
[2023年3月31日更新] 添加了在NATOPS数据集上训练LFDM的说明。
[2023年3月27日更新] 添加了在MHAD数据集上训练LFDM的说明。
[2023年3月27日更新] 发布了MHAD数据集的测试演示。
[2023年3月26日更新] 添加了在MUG数据集上训练LFDM的说明。
[2023年3月26日更新] 我们的论文现已在arXiv上发布。
[2023年3月20日更新] 发布了MUG数据集的测试演示。
示例视频
以下视频中的所有主体在训练过程中均未出现。
MUG数据集上的一些生成视频结果。
MHAD数据集上的一些生成视频结果。
NATOPS数据集上的一些生成视频结果。
将在MUG上训练的LFDM应用于FaceForensics数据集。
预训练模型
演示
MUG数据集
- 安装所需依赖。我们这里使用Python 3.7.10和Pytorch 1.12.1等。
- 运行
python -u demo/demo_mug.py
生成示例视频。如有需要,请在代码文件和配置文件config/mug128.yaml
中设置路径。MUG数据集的预训练模型已发布。
MHAD数据集
- 安装所需依赖。我们这里使用Python 3.7.10和Pytorch 1.12.1等。
- 运行
python -u demo/demo_mhad.py
生成示例视频。如有需要,请在代码文件和配置文件config/mhad128.yaml
中设置路径。MHAD数据集的预训练模型已发布。
NATOPS数据集
- 安装所需依赖。我们这里使用Python 3.7.10和Pytorch 1.12.1等。
- 运行
python -u demo/demo_natops.py
生成示例视频。如有需要,请在代码文件和配置文件config/natops128.yaml
中设置路径。NATOPS数据集的预训练模型已发布。
训练LFDM
我们的LFDM训练包括两个阶段:1. 以无监督方式训练潜在流自编码器(LFAE)。为加速训练,我们使用MRAA提供的预训练模型初始化LFAE,这些模型可以在他们的github上找到;2. 在LFAE的潜在空间上训练扩散模型(DM)。
MUG数据集
- 从MUG数据集的网站下载数据集。
- 安装所需的依赖项。这里我们使用Python 3.7.10和Pytorch 1.12.1等。
- 划分训练/测试集。您可以使用与我们相同的划分方法,可在
preprocessing/preprocess_MUG.py
中找到。 - 运行
python -u LFAE/run_mug.py
来训练LFAE。如有需要,请设置路径和配置文件config/mug128.yaml
。 - LFAE训练完成后,可以通过运行
python -u LFAE/test_flowautoenc_mug.py
来测量其自重建性能。 - 运行
python -u DM/train_video_flow_diffusion_mug.py
来训练DM。如有需要,请设置路径和配置文件config/mug128.yaml
。 - DM训练完成后,可以通过运行
python -u DM/test_video_flow_diffusion_mug.py
来测试其生成性能。
MHAD数据集
- 从MHAD数据集的网站下载数据集。
- 安装所需的依赖项。这里我们使用Python 3.7.10和Pytorch 1.12.1等。
- 裁剪视频帧并划分训练/测试集。您可以使用与我们相同的裁剪方法和划分,可在
preprocessing/preprocess_MHAD.py
中找到。 - 运行
python -u LFAE/run_mhad.py
来训练LFAE。如有需要,请设置路径和配置文件config/mhad128.yaml
。 - LFAE训练完成后,可以通过运行
python -u LFAE/test_flowautoenc_mhad.py
来测量其自重建性能。 - 运行
python -u DM/train_video_flow_diffusion_mhad.py
来训练DM。如有需要,请设置路径和配置文件config/mhad128.yaml
。 - DM训练完成后,可以通过运行
python -u DM/test_video_flow_diffusion_mhad.py
来测试其生成性能。
NATOPS数据集
- 从NATOPS数据集的网站下载数据集。
- 安装所需的依赖项。这里我们使用Python 3.7.10和Pytorch 1.12.1等。
- 分割视频并划分训练/测试集。您可以使用与我们相同的分割方法和划分,可在
preprocessing/preprocess_NATOPS.py
中找到。 - 运行
python -u LFAE/run_natops.py
来训练LFAE。如有需要,请设置路径和配置文件config/natops128.yaml
。 - LFAE训练完成后,可以通过运行
python -u LFAE/test_flowautoenc_natops.py
来测量其自重建性能。 - 运行
python -u DM/train_video_flow_diffusion_natops.py
来训练DM。如有需要,请设置路径和配置文件config/natops128.yaml
。 - DM训练完成后,可以通过运行
python -u DM/test_video_flow_diffusion_natops.py
来测试其生成性能。
引用LFDM
如果您在研究中发现我们的方法有用,请考虑引用:
@inproceedings{ni2023conditional,
title={Conditional Image-to-Video Generation with Latent Flow Diffusion Models},
author={Ni, Haomiao and Shi, Changhao and Li, Kai and Huang, Sharon X and Min, Martin Renqiang},
booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},
pages={18444--18455},
year={2023}
}
如对代码有任何疑问,欢迎提出问题或联系我:homerhm.ni@gmail.com