Освещу базовые концепты в области генерации видео. В этой части рассмотрю как современные модели 2025 года, так и несколько ключевых архитектур, с которых всё начиналось. Всё кратко и по делу — только самое важное.
Разберём устройство топовых SOTA-моделей для генерации видео: Wan2.1, Hunyuan Video, а также недавно представленный подход FramePack, направленный на снижение вычислительных требований.
Советую ознакомиться с первой частью
Начнем со старичка: Stable Video Diffusion
Stable Video Diffusion
Это адаптация стандартного генератора изображений Stable Diffusion — в данном случае используется версия Stable Diffusion 2.1.
В первой части я рассказывал, как можно адаптировать уже обученную модель Stable Diffusion для генерации видео без её дополнительного дообучения. Однако очевидно, что в таком случае качество генерируемого видео страдает. Поэтому сейчас мы переходим к полному дообучению модели под видео.
Изучая статьи по генерации видео, я выделил общий паттерн: большинство из них очень похожи между собой. Они обычно начинаются с описания подготовки датасета — методов фильтрации и очистки данных. Затем кратко описываются изменения в архитектуре модели, этапы предобучения, а завершается всё подробным разбором метрик и экспериментов.
Ключевые аспекты Stable Video Diffusion
Подготовка датасета: Как они собрали датасет на 212 лет видеозаписей
Этапы претрейна: 2 этапа: дообучение на изображениях -> дообучение на видео
Архитектура модели: Описывают изменения в стандартной SD, для работы с видео
Подготовка датасета
То, что делали для обработки датасета в этой статье будет повторяться вновь и вновь в каждой следующей публикации
Они изначально собрали датасет с длинными видео, который нарезали на короткие. Чтобы избежать попадания отрезков видео с переходами, используют cut detector - алгоритм находящий резкую смену кадра в длинном видео, его применяют на трех разных уровнях FPS.
Далее мы аннотируем каждый клип тремя различными методами синтетического описания:
CoCa — используем модель генерации описаний изображений для аннотации среднего кадра каждого клипа.
V-BLIP — применяем видео-ориентированную модель V-BLIP [109] для получения описания всего клипа.
LLM-суммаризация — генерируем третье описание клипа, объединяя первые два с помощью языковой модели.
В результате получается исходный датасет Large Video Dataset (LVD) , содержащий 580 миллионов аннотированных пар видео-клипов , что составляет 212 лет видеоконтента .
Однако дальнейший анализ показывает, что в датасете присутствуют примеры, которые могут ухудшить качество финальной видео-модели:
Клипы с минимальным движением,
Видео с избыточным текстом на экране,
Материалы низкого эстетического качеств
Для фильтрации таких данных мы дополнительно вычисляем оптический поток для каждого клипа (с частотой 2 кадра в секунду). На основе величины оптического потока удаляем статичные сцены, где средняя интенсивность движения ниже заданного порога. Распределение движения в LVD подтверждает наличие близких к статичным клипов.
Кроме того, они применяют OCR для исключения клипов с большим количеством текста.
Наконец, для первого, среднего и последнего кадров каждого клипа вычисляются эмбеддинги CLIP, на основе которых:
Оценивается эстетическое качество клипа,
Рассчитывается схожесть текстового описания и визуального содержания.

Этапы претрейна
Обучение разбито на 3 этапа
Претрейн на изображениях
Fine-tune на видео
1) Претрейн на изображениях
Для анализа влияния предобучения на изображениях они обучили и сравнили две идентичные видео-модели на подмножестве LVD из 10 млн примеров: одну с предобученными пространственными весами, а другую — без. Сравнение проводилось с помощью исследования предпочтений человека. Они явно демонстрируют, что модель с предобучением на изображениях превосходит по качеству и способности следовать текстовым запросам.
2) Fine-tune на видео
В статье приведен анализ того какой эффект дают разные варианты предобучения
Для оценки влияния предобучения на этом этапе они дообучают три идентичные модели, которые различаются только способом инициализации весов:
Первая модель инициализируется с помощью предобученной модели изображений, пропуская этап предобучения на видео — это распространенный подход в современных видео-моделях .
Остальные две модели инициализируются на основе весов латентных видео-моделей, обученных на этапе II: одна — на 50 млн отфильтрованных клипов , другая — на 50 млн неотфильтрованных клипов .
Все модели дообучаются в течение 50 тысяч шагов . Оценивается рейтинг предпочтений людей дважды:
На раннем этапе дообучения (10 тысяч шагов),
В финальной точке обучения.
Результаты представлены на рисунке нижу, где показано улучшение рейтинга Эло относительно модели, занявшей последнее место (она инициализирована из предобученной модели изображений). Также видно, что дообучение, начатое с отфильтрованных весов , превосходит модель, инициализированную из неотфильтрованных видео-весов.

Архитектура модели
Модель базируется на подходе Latent video diffusion
И не представляет из себя чего-то сверх иновационного

Что происходит на рисунке выше:
Серые слои (spatial layer) - это классическая Stable diffusion
Зеленые слои (temporal layer) - это добавленные блоки, для генерации видео, представляют собой либо Conv3D, либо Attention слои,
На вход в модель 5D тензор видео [B, T, C, H, W], где T - это число кадров в каждом видео, но классическая SD принимает только тензоры 4D [B, C, H, W] - поэтому они просто решейпят 5D в 4D, объединяя B, T вот так [(B * T), C, H, W]
Обратите внимания на Skip-connection, там не просто сумма входа и выхода, это взвешенная сумма, то есть один умножается на коэффициент alpha (от 0 до 1), второй на 1 - alpha. Это делается, потому что было замечено, что модель 2D модель плохо адаптируется под работу с видео и пришлось взвесить входы. Это трюк дальше будет в КАЖДОЙ модели
Двигаемся дальше к современным моделькам.
Wan2.1 (2025)

Подготовка датасета
Тут подготовка и фильтрации становятся более изощеренными
Для предобучения модели был собран и тщательно очищен большой датасет из внутренних и открытых источников. На этапе обработки применялась 4-х этапная фильтрация по ключевым критериям: обнаружение текста, эстетическая оценка, удаление NSFW-контента, логотипов, размытых и синтетических кадров, а также учёт длительности и разрешения видео. В результате около 50% данных было отсеяно. Оставшиеся материалы прошли оценку визуального и движкового качества: данные были разделены на кластеры для сохранения естественного распределения, проранжированы по шкале от 1 до 5, а также отобраны видео с естественным и значимым движением, исключая статичные или некачественные сцены.
Использовали yolo для детекции артифактов и MANIQA для aesthetic score, DINO вектора для ID constiteny, CLIP вектора для семантического сравнения.
Этапы претрейна
Следуя современным методам, процесс обучения разбит на три этапа. На первом этапе мы замораживаем параметры ViT и LLM и обучаем только многослойный персептрон (MLP) для согласования визуальных эмбеддингов с пространством входов LLM. На втором этапе все параметры становятся обучаемыми. На финальном этапе проводится end-to-end обучение на небольшом наборе высококачественных данных
Архитектура модели
Главный компонент Wan2.1 - это 3D VAE

В Stable Video diffusion, он был оригинальный 2D, а тут теперь 3D, т.е. может принимать видео, и авторы заявляют, что это ключевой компонент ведущий к повышению качества генерации.
Hunyuan Video (2025)
А тут долго я уже не буду затягивать, ведь тут переиспользуется почти все вышеописанное
Фильтрация данных, как в Wan2.1
Претрейн, заявляют, что нельзя предобучать VAE на картинках, надо сразу подавать ему видео

Это все, что надо знать по-моему мнению
FramePack (2025)
Самое интересное на последок
FramePack - это не конкретная модель, а подход к уменьшению потребления VRAM у топовых моделей.
Основан на идее, что кадры по разному влияют на следующую генерацию, и самый последний кадр более важен самых первых. Тут вводится мера важности кадра Fn, Fo - самый важный кадр (это последний кадр видео на картинке ниже)

И авторы предлагают несколько вариантов построение прогрессии важности кадра

Каким образом задается важность кадра?
Предполагаем, что под капотом используется трансформерная модель, которая бьет каждый кадр на патчи-токены, и чем меньше в размере каждый патч, тем больше их в пересчете на кадр. А значит мы более подробно заиспользуем картинку, на схеме выше показано, что чем меньше квадратик Fn, тем меньше важность кадра -> тем больше размер патча
Это позволяет использовать топовые генеративные модели в не 20гб VRAM или даже в 10 гб
На это все! Спасибо!
Читай про сравнение работы в Яндексе и Сбере, с точки зрения МЛщика у меня в телеграм-канале
А также про многие другие аспекты сферы ML/Computer Vision
Буду рад вашей подписке! Пишите в комментарии, чтобы было непонятно и про чтобы хотелось еще узнать