PVDM: 视频概率扩散模型在投影潜空间中的官方PyTorch实现
项目介绍
PVDM(Video Probabilistic Diffusion Models in Projected Latent Space)是CVPR 2023上发表的一项研究工作,旨在利用PyTorch实现一种创新的视频生成技术。该模型通过结合一个专为视频像素复杂立方结构设计的自编码器(将视频投影到2D形状的潜空间)和一个适用于这种新潜空间的扩散模型架构,实现了高效训练高分辨率视频的能力,即使是在资源有限的情况下。PVDM已在流行的视频生成数据集上证明了其优越性,显著提高了视频合成的质量标准。
项目快速启动
环境准备
首先,确保安装所需的Python环境并创建一个新的虚拟环境:
conda create -n pvdm python=3.8 -y
conda activate pvdm
pip install torch==1.12.1+cu116 torchvision==0.13.1+cu116 torchaudio==0.12.1 --extra-index-url https://download.pytorch.org/whl/cu116
pip install natsort tqdm gdown omegaconf einops lpips pyspng tensorboard imageio av moviepy
数据准备
UCF-101或SkyTimeLapse两个数据集需下载,并放置于/data
目录下,遵循特定的文件结构。
训练自编码器
以UCF-101为例,执行以下命令来训练基本的自编码器:
python main.py \
--exp first_stage \
--id main \
--pretrain_config configs/autoencoder/base.yaml \
--data UCF101 \
--batch_size 8
完成后,继续训练带有GAN损失的阶段:
python main.py \
--exp first_stage \
--id main_gan \
--pretrain_config configs/autoencoder/base_gan.yaml \
--data UCF101 \
--batch_size 8 \
--first_stage_folder 'results/first_stage_main_UCF101_42/'
训练扩散模型
接下来,使用预训练的自编码器进行扩散模型的训练:
python main.py \
--exp ddpm \
--id main \
--pretrain_config configs/autoencoder/base.yaml \
--data UCF101 \
--first_model 'results/first_stage_main_gan_UCF101_42/model_last.pth' \
--diffusion_config configs/latent-diffusion/base.yaml \
--batch_size 64
应用案例和最佳实践
PVDM可以应用于视频生成、视频修复、以及潜在的视频转场特效等领域。最佳实践包括监控训练过程中的FVD分数作为质量指标,虽然应注意实验设置中的FVD可能不如最终评估中稳定。此外,使用EMA模型进行推理通常能得到更好的生成效果。
典型生态项目
- HiP (机器人领域中的文本到视频生成)
- Seer (基于文本条件的视频预测)
这两个项目展示了PVDM如何与其他技术结合,在特定场景下扩展其应用范围,进一步验证了模型的通用性和强大性能。
以上便是关于PVDM项目的基本介绍、快速启动指南、应用示例及生态系统概述。请注意,实际使用过程中,应参考项目最新文档,以便获取任何更新或变动的信息。