项目简介
Open-Sora计划是由北京大学与兔展AIGC联合实验室发起的开源项目,旨在复现OpenAI的Sora视频到文本模型。项目目前处于初级阶段,缺乏资源完全训练模型。因此,团队寻求开源社区的支持,以增加更多模块并收集资源进行训练。该计划希望通过社区的力量,逐步完善并快速迭代当前版本,以接近最终目标。项目欢迎所有形式的贡献,特别是代码提交。
扫码加入交流群
获得更多技术支持和交流
(请注明自己的职业)
任务清单
· 支持可变的纵横比、分辨率、时长,在DiT上进行训练
· 动态遮罩输入
· 在嵌入上添加类条件
· 采样脚本
· 添加位置插值
· 在更高分辨率上微调Video-VQVAE
· 融合SiT
· 融入更多条件
· 使用更多数据和更多GPU进行训练
要求和安装
· Python >= 3.8
· Pytorch >= 1.13.1
· CUDA Version >= 11.7
· 安装所需要的包:
git clone https://github.com/PKU-YuanGroup/Open-Sora-Plan
cd Open-Sora-Plan
conda create -n opensora python=3.8 -y
conda activate opensora
pip install torch==1.13.1+cu117 torchvision==0.14.1+cu117 torchaudio==0.13.1 --extra-index-url https://download.pytorch.org/whl/cu117
pip install -r requirements.txt
cd VideoGPT
pip install -e .
cd ..
数据集
用UCF-101数据集来测试代码。为了下载UCF-101数据集,你可以在https://www.crcv.ucf.edu/data/UCF101.php下载所需的文件。代码假设有一个名为ucf101的目录,其结构如下:
UCF-101/
ApplyEyeMakeup/
v1.avi
...
...
YoYo/
v1.avi
...
Video-VQVAE
·训练
参考原始存储库。使用 scripts/train_vqvae.py 脚本来训练视频-VQVAE。执行 python scripts/train_vqvae.py -h 可以查看所有可用的训练设置信息。下面列出了一些更相关的设置及其默认值。
cd VideoGPT
Q-VAE特定设置
--embedding_dim:代码本嵌入的维数
--n_codes 2048:代码本中的代码数量
--n_hiddens 240:残差块中的隐藏特征数量
--n_res_layers 4:残差块的数量
--downsample 4 4 4:编码器的T H W降采样步长
训练设置
--gpus 2:分布式训练时使用的GPU数量
--sync_batchnorm:当使用超过1个GPU时,使用SyncBatchNorm代替BatchNorm3d
--gradient_clip_val 1:训练时的梯度裁剪阈值
--batch_size 16:每个GPU的批量大小
--num_workers 8:每个DataLoader的工作线程数
数据集设置
--data_path <路径>:指向hdf5文件或包含带有视频子目录的train和test文件夹的目录的路径
--resolution 128:训练时的空间分辨率
--sequence_length 16:时间分辨率,或视频剪辑长度
重构
python VideoGPT/rec_video.py --video-path "assets/origin_video_0.mp4" --rec-path "rec_video_0.mp4" --num-frames 500 --sample-rate 1
python VideoGPT/rec_video.py --video-path "assets/origin_video_1.mp4" --rec-path "rec_video_1.mp4" --resolution 196 --num-frames 600 --sample-rate 1
重构视频如下:
视频DiT
cd DiT
torchrun --nproc_per_node=8 train.py \
--model DiT-XL/122 --pt-ckpt DiT-XL-2-256x256.pt \
--vae ucf101_stride4x4x4 \
--data-path /remote-home/yeyang/UCF-101 --num- classes 101 \
--sample-rate 2 --num-frames 8 --max-image-size 128 --clip-grad-norm 1 \
--epochs 14000 --global-batch-size 256 --lr 1e-4 \
--ckpt-every 1000 --log-every 1000
项目链接
https://github.com/PKU-YuanGroup/Open-Sora-Plan
关注「 开源AI项目落地 」公众号