StreamingSVD 是一種先進的自回歸技術,用於文字到視頻和圖像到視頻的生成,生成具有豐富運動動態的高品質長視頻,將 SVD 變成長視頻生成器。我們的方法確保整個影片的時間一致性,與輸入文字/影像緊密對齊,並保持高幀級影像品質。我們的演示包括高達 200 幀、時長 8 秒的成功影片範例,並且可以延長更長的持續時間。
底層自回歸方法的有效性並不限於所使用的特定基本模型,這表明基本模型的改進可以產生更高品質的影片。 StreamingSVD 是 StreamingT2V 系列的一部分。另一個成功的實作是 StreamingModelscope,它將 Modelscope 轉變為長視訊產生器。這種方法可以產生長達2分鐘的視頻,具有運動量大、無停滯的特點。
詳細結果可以在項目頁面中找到。
我們的程式碼在預設設定下需要 60 GB VRAM(產生 200 幀時)。嘗試減少幀數或啟動隨機混合以減少記憶體佔用。我們的程式碼在 Linux 上使用 Python 3.9 和 CUDA 11.7 進行了測試。
git clone https://github.com/Picsart-AI-Research/StreamingT2V.git
cd StreamingT2V/
virtualenv -p python3.9 venv
source venv/bin/activate
pip install --upgrade pip
pip install -r requirements.txt
要運行由圖像到視訊、視訊增強(包括我們的隨機混合)和視訊幀插值組成的整個管道,請從StreamingT2V
資料夾中運行:
cd code
python inference_i2v.py --input $INPUT --output $OUTPUT
$INPUT
必須是映像檔或包含影像的資料夾的路徑。每張影像的長寬比預計為 16:9。
$OUTPUT
必須是儲存結果的資料夾的路徑。
將--num_frames $FRAMES
加入呼叫中以定義要產生的幀數。預設值: $FRAMES=200
將--use_randomized_blending $RB
加入呼叫中以定義是否使用隨機混合。預設值: $RB=False
。使用隨機混合時, chunk_size
和overlap_size
參數的建議值分別為--chunk_size 38
和--overlap_size 12
。請注意,隨機混合會減慢生成過程,因此如果您有足夠的 GPU 內存,請盡量避免使用它。
將--out_fps $FPS
加入到呼叫中以定義輸出視訊的 FPS。預設值: $FPS=24
這裡提供了我們提出的運動感知扭曲誤差(請參閱我們的論文)。
如我們論文中所述,現在可以在此處找到基於 Modelscope 的 StreamingT2V 模型的程式碼。
我們的程式碼和模型是在 MIT 許可下發布的。
我們包括 SVD、EMA-VFI 和 I2VGen-XL 的程式碼和模型權重。有關其代碼和重量,請參閱其原始許可證。由於這些依賴性,StreamingSVD 只能用於非商業、研究目的。
如果您在研究中使用我們的工作,請引用我們的出版品:
@article{henschel2024streamingt2v,
title={StreamingT2V: Consistent, Dynamic, and Extendable Long Video Generation from Text},
author={Henschel, Roberto and Khachatryan, Levon and Hayrapetyan, Daniil and Poghosyan, Hayk and Tadevosyan, Vahram and Wang, Zhangyang and Navasardyan, Shant and Shi, Humphrey},
journal={arXiv preprint arXiv:2403.14773},
year={2024}
}