StreamingSVD adalah teknik autoregresif canggih untuk pembuatan teks-ke-video dan gambar-ke-video, menghasilkan video panjang berkualitas hiqh dengan dinamika gerakan yang kaya, mengubah SVD menjadi generator video panjang. Metode kami memastikan konsistensi temporal di seluruh video, menyelaraskan dengan teks/gambar masukan, dan mempertahankan kualitas gambar tingkat bingkai yang tinggi. Demonstrasi kami mencakup contoh video yang berhasil hingga 200 frame, berdurasi 8 detik, dan dapat diperpanjang untuk durasi yang lebih lama lagi.
Efektivitas pendekatan autoregresif yang mendasarinya tidak terbatas pada model dasar spesifik yang digunakan, yang menunjukkan bahwa penyempurnaan pada model dasar dapat menghasilkan video dengan kualitas lebih tinggi. StreamingSVD adalah bagian dari keluarga StreamingT2V. Implementasi sukses lainnya adalah StreamingModelscope, yang mengubah Modelscope menjadi generator video berdurasi panjang. Pendekatan ini memungkinkan untuk menghasilkan video berdurasi hingga 2 menit, menampilkan jumlah gerakan tinggi dan tidak ada stagnasi.
Hasil detailnya dapat ditemukan di halaman Proyek.
Kode kita memerlukan VRAM 60 GB dalam pengaturan default (saat menghasilkan 200 frame). Cobalah untuk mengurangi jumlah frame atau aktifkan pencampuran acak untuk mengurangi jejak memori. Kode kami diuji di linux, menggunakan Python 3.9 dan 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
Untuk menjalankan seluruh pipeline yang terdiri dari gambar-ke-video, peningkatan video (termasuk pencampuran acak kami) dan interpolasi bingkai video, lakukan dari folder StreamingT2V
:
cd code
python inference_i2v.py --input $INPUT --output $OUTPUT
$INPUT
harus berupa jalur ke file gambar atau folder yang berisi gambar. Setiap gambar diharapkan memiliki rasio aspek 16:9.
$OUTPUT
harus berupa jalur ke folder tempat hasilnya akan disimpan.
Tambahkan --num_frames $FRAMES
ke panggilan untuk menentukan jumlah frame yang akan dihasilkan. Nilai bawaan: $FRAMES=200
Tambahkan --use_randomized_blending $RB
ke panggilan untuk menentukan apakah akan menggunakan pencampuran acak. Nilai bawaan: $RB=False
. Saat menggunakan pencampuran acak, nilai yang direkomendasikan untuk parameter chunk_size
dan overlap_size
adalah --chunk_size 38
dan --overlap_size 12
. Perlu diketahui bahwa pencampuran acak akan memperlambat proses pembuatan, jadi cobalah menghindarinya jika Anda memiliki cukup memori GPU.
Tambahkan --out_fps $FPS
ke panggilan untuk menentukan FPS video keluaran. Nilai bawaan: $FPS=24
Usulan Kesalahan Warp Motion Aware yang kami usulkan (lihat makalah kami) disediakan di sini.
Kode untuk model StreamingT2V berdasarkan Modelscope, seperti yang dijelaskan dalam makalah kami, sekarang dapat ditemukan di sini.
Kode dan model kami diterbitkan di bawah lisensi MIT.
Kami menyertakan kode dan bobot model SVD, EMA-VFI dan I2VGen-XL. Silakan merujuk ke lisensi asli mereka mengenai kode dan bobotnya. Karena ketergantungan ini, StreamingSVD hanya dapat digunakan untuk tujuan penelitian non-komersial.
Jika Anda menggunakan karya kami dalam penelitian Anda, harap mengutip publikasi kami:
@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}
}