VideoBooth
本仓库将包含以下论文的实现:
来自南洋理工大学MMLab,隶属于南洋理工大学S-Lab和上海人工智能实验室。
概述
我们的VideoBooth可以根据图像提示生成包含指定主体的视频。
安装
- 克隆仓库。
git clone https://github.com/Vchitect/VideoBooth.git
cd VideoBooth
- 安装环境。
conda env create -f environment.yml
conda activate videobooth
- 下载预训练模型(Stable Diffusion v1.4、VideoBooth),并将它们放在
./pretrained_models/
文件夹下。
推理
这里我们提供一个示例来进行推理。
python sample_scripts/sample.py --config sample_scripts/configs/panda.yaml
如果您想使用自己的图像,需要先对对象进行分割。我们使用Grounded-SAM从图像中分割主体。
训练
VideoBooth采用从粗到细的方式进行训练。
阶段1:粗略阶段训练
srun --mpi=pmi2 torchrun --nnodes=1 --nproc_per_node=8 --master_port=29125 train_stage1.py \
--model TAVU \
--num-frames 16 \
--dataset WebVideoImageStage1 \
--frame-interval 4 \
--ckpt-every 1000 \
--clip-max-norm 0.1 \
--global-batch-size 16 \
--reg-text-weight 0 \
--results-dir ./results \
--pretrained-t2v-model path-to-t2v-model \
--global-mapper-path path-to-elite-global-model
阶段2:精细阶段训练
srun --mpi=pmi2 torchrun --nnodes=1 --nproc_per_node=8 --master_port=29125 train_stage2.py \
--model TAVU \
--num-frames 16 \
--dataset WebVideoImageStage2 \
--frame-interval 4 \
--ckpt-every 1000 \
--clip-max-norm 0.1 \
--global-batch-size 16 \
--reg-text-weight 0 \
--results-dir ./results \
--pretrained-t2v-model path-to-t2v-model \
--global-mapper-path path-to-stage1-model
数据集准备
您可以在HuggingFace下载我们提出的数据集。
# 合并分割的zip文件
zip -F webvid_parsing_2M_split.zip --out single-archive.zip
# 将path-to-webvid-parsing替换为此路径
unzip single-archive.zip
# 将path-to-videobooth-subset替换为此路径
unzip webvid_parsing_videobooth_subset.zip
引用
如果您发现我们的仓库对您的研究有用,请考虑引用我们的论文:
@article{jiang2023videobooth,
author = {Jiang, Yuming and Wu, Tianxing and Yang, Shuai and Si, Chenyang and Lin, Dahua and Qiao, Yu and Loy, Chen Change and Liu, Ziwei},
title = {VideoBooth: Diffusion-based Video Generation with Image Prompts},
year = {2023}
}