計畫簡介
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計畫落地 」公眾號