StreamingSVD — это усовершенствованный метод авторегрессии для преобразования текста в видео и изображения в видео, позволяющий создавать длинные видеоролики высокого качества с богатой динамикой движения, превращая SVD в генератор длинных видео. Наш метод обеспечивает временную согласованность на протяжении всего видео, точно соответствует входному тексту/изображению и поддерживает высокое качество изображения на уровне кадра. Наши демонстрации включают в себя успешные примеры видеороликов длиной до 200 кадров продолжительностью 8 секунд, которые можно продлить еще на большую продолжительность.
Эффективность лежащего в основе авторегрессионного подхода не ограничивается конкретной используемой базовой моделью, что указывает на то, что улучшения базовых моделей могут привести к еще более высокому качеству видео. StreamingSVD является частью семейства StreamingT2V. Еще одна успешная реализация — StreamingModelscope, превращающая Modelscope в генератор длинных видео. Такой подход позволяет создавать видеоролики продолжительностью до 2 минут с большим количеством движения и без застоя.
Подробные результаты можно найти на странице проекта.
Нашему коду требуется 60 ГБ видеопамяти по умолчанию (при генерации 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
соответственно. Имейте в виду, что рандомизированное смешивание замедлит процесс генерации, поэтому старайтесь избегать этого, если у вас достаточно памяти графического процессора.
Добавьте --out_fps $FPS
к вызову, чтобы определить частоту кадров выходного видео. Значение по умолчанию: $FPS=24
Предлагаемая нами ошибка деформации с учетом движения (см. нашу статью) представлена здесь.
Код модели StreamingT2V на основе Modelscope, описанной в нашей статье, теперь можно найти здесь.
Наш код и модель публикуются под лицензией 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}
}