StreamingSVD ist eine fortschrittliche autoregressive Technik zur Text-zu-Video- und Bild-zu-Video-Generierung, die lange, hochwertige Videos mit reichhaltiger Bewegungsdynamik generiert und SVD in einen langen Videogenerator verwandelt. Unsere Methode gewährleistet die zeitliche Konsistenz im gesamten Video, passt sich eng an den eingegebenen Text/das eingegebene Bild an und sorgt für eine hohe Bildqualität auf Frame-Ebene. Unsere Demonstrationen umfassen erfolgreiche Beispiele von Videos mit bis zu 200 Bildern und einer Länge von 8 Sekunden und können auf noch längere Dauer verlängert werden.
Die Wirksamkeit des zugrunde liegenden autoregressiven Ansatzes ist nicht auf das spezifische verwendete Basismodell beschränkt, was darauf hindeutet, dass Verbesserungen der Basismodelle zu noch hochwertigeren Videos führen können. StreamingSVD ist Teil der StreamingT2V-Familie. Eine weitere erfolgreiche Implementierung ist StreamingModelscope, das Modelscope in einen Langvideogenerator verwandelt. Dieser Ansatz ermöglicht die Erstellung von Videos mit einer Länge von bis zu 2 Minuten, die einen hohen Bewegungsanteil und keine Stagnation aufweisen.
Detaillierte Ergebnisse finden Sie auf der Projektseite.
Unser Code benötigt in der Standardeinstellung (bei der Generierung von 200 Frames) 60 GB VRAM. Versuchen Sie, die Anzahl der Bilder zu reduzieren oder die zufällige Überblendung zu aktivieren, um den Speicherbedarf zu verringern. Unser Code wurde unter Linux mit Python 3.9 und CUDA 11.7 getestet.
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
Um die gesamte Pipeline bestehend aus Bild-zu-Video, Videoverbesserung (einschließlich unserer zufälligen Mischung) und Video-Frame-Interpolation auszuführen, gehen Sie im Ordner StreamingT2V
wie folgt vor:
cd code
python inference_i2v.py --input $INPUT --output $OUTPUT
$INPUT
muss der Pfad zu einer Bilddatei oder einem Ordner sein, der Bilder enthält. Es wird erwartet, dass jedes Bild das Seitenverhältnis 16:9 hat.
$OUTPUT
muss der Pfad zu einem Ordner sein, in dem die Ergebnisse gespeichert werden.
Fügen Sie --num_frames $FRAMES
zum Aufruf hinzu, um die Anzahl der zu generierenden Frames zu definieren. Standardwert: $FRAMES=200
Fügen Sie --use_randomized_blending $RB
zum Aufruf hinzu, um zu definieren, ob randomisierte Mischungen verwendet werden sollen. Standardwert: $RB=False
. Bei Verwendung der randomisierten Mischung lauten die empfohlenen Werte für die Parameter chunk_size
und overlap_size
jeweils --chunk_size 38
und --overlap_size 12
. Bitte beachten Sie, dass die zufällige Mischung den Generierungsprozess verlangsamt. Versuchen Sie daher, dies zu vermeiden, wenn Sie über genügend GPU-Speicher verfügen.
Fügen Sie --out_fps $FPS
zum Aufruf hinzu, um die FPS des Ausgabevideos zu definieren. Standardwert: $FPS=24
Unser vorgeschlagener Motion Aware Warp Error (siehe unser Papier) finden Sie hier.
Den Code für das auf Modelscope basierende StreamingT2V-Modell, wie in unserem Artikel beschrieben, finden Sie jetzt hier.
Unser Code und Modell werden unter der MIT-Lizenz veröffentlicht.
Wir berücksichtigen Codes und Modellgewichte von SVD, EMA-VFI und I2VGen-XL. Die Codes und Gewichte entnehmen Sie bitte den Originallizenzen. Aufgrund dieser Abhängigkeiten kann StreamingSVD nur für nichtkommerzielle Forschungszwecke verwendet werden.
Wenn Sie unsere Arbeit in Ihrer Forschung nutzen, zitieren Sie bitte unsere Publikation:
@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}
}