Генерация видео в Шедевруме
Яндекс запустил новую диффузионную end-to-end-модель преобразования текста в видео в приложении Шедеврум. Расскажем, как она работает и чем отличается от прошлого подхода.
Как было раньше и как стало сейчас
Шедеврум и прежде умел создавать видео по текстовому запросу. Для этого использовалась технология Deforum. Она работает по принципу создания видео из отдельных изображений кадр за кадром. Каждый следующий получается из предыдущего с помощью эвристик — они добавляют движение камеры. При таком подходе согласованность кадров недостаточная.
В новом подходе используется end-to-end-text2video-модель. На вход она получает текст, в котором могут быть указаны субъект, объект и описание действия. Модель сама учитывает связь между кадрами, из-за чего получается более согласованный результат.
Этапы генерации видео
Генерация базовых кадров. На этом этапе создаётся видео с низкой частотой кадров и разрешением. Из нормального распределения сэмплируются зашумлённые кадры, которые впоследствии постепенно преобразуются в связное видео.
Интерполяция кадров. После создания базовых кадров модель увеличивает их частоту, делая видео более плавным. Интерполяция проводится с использованием диффузионной модели, которая добавляет новые кадры между уже существующими.
Повышение разрешения. Модель работает в латентном пространстве, поэтому для повышения разрешения сгенерированные латенты подаются в декодер VAE. В него для большей согласованности фреймов добавили motion-блоки.
Обучение
Процесс обучения модели text2video начинается с адаптации уже существующей text2image-модели. Чтобы не обучать её с нуля, что требует большого количества разнообразных данных, разработчики решили дообучить проверенную модель для генерации изображений, добавив в неё временные блоки (motion-блоки) для работы с видео. Чтобы снизить нагрузку на память и ускорить обучение, использовались техники mixed precision и torch.FSDP.
Обучение модели происходило поэтапно: сначала с низким разрешением и малым количеством кадров, а затем с постепенным увеличением этих параметров. Так мы смогли ускорить процесс обучения и валидировать больше гипотез за то же время. Однако в ходе обучения возникали проблемы, связанные с нестабильностью модели, вызванной бесконтрольным ростом значений активации. Это решили простой регуляризацией.
Более подробно об устройстве и модели и её создании — читайте в статье на Хабре. А здесь в комментариях делитесь своими впечатлениями!
ML Underhood
2024-09-04 09:09 UTC
9 656 просмотров · 40 реакций
Открыть в Telegram · К списку постов · Ссылка на этот пост