Диффузионные модели для генерации видео
Диффузионные модели продемонстрировали высокие результаты в генерации изображений в последние годы. Так что комьюнити начало активно работать над более амбициозной задачей — использовать эти модели для генерации видео. Эта задача является надмножеством задачи генерации изображений, поскольку изображение — это видео из одного кадра; при этом генерация видео сложнее по понятным причинам:
- Необходимо обеспечить временную согласованность между кадрами, что требует больше знаний, помещённых в модель.
- В отличие от текста или изображений, собирать большие объемы высококачественных видео в высоком разрешении сложнее, не говоря уже о парах текст-видео.
Генерация видео с нуля
Сначала давайте рассмотрим подходы к проектированию и обучению диффузионных моделей видео с нуля, то есть без использования предварительно обученных генераторов изображений.
Основы параметризации и выборки
Здесь мы используем немного другие определения переменных по сравнению с предыдущим постом, но математика остается той же. Пусть $\mathbf{x} \sim q_\text{real}$ — это точка данных, выбранная из распределения реальных данных. Теперь мы добавляем гауссовский шум в небольших количествах во времени, создавая последовательность зашумленных вариаций $\mathbf{x}$, обозначаемых как ${\mathbf{z}_t \mid t =1 \dots, T}$, с увеличивающимся количеством шума по мере увеличения $t$ и последним $q(\mathbf{z}_T) \sim \mathcal{N}(\mathbf{0}, \mathbf{I})$. Процесс добавления шума — это гауссовский процесс. Пусть $\alpha_t, \sigma_t$ определяют дифференцируемый график шума гауссовского процесса:
$$q(\mathbf{z}_t \vert \mathbf{x}) = \mathcal{N}(\mathbf{z}_t; \alpha_t \mathbf{x}, \sigma^2_t\mathbf{I})$$
Чтобы представить $q(\mathbf{z}_t \vert \mathbf{z}_s)$ для $0 \leq s < t \leq T$, мы имеем:
$$\begin{aligned}
\mathbf{z}_t &= \alpha_t \mathbf{x} + \sigma_t\boldsymbol{\epsilon}_t \
\mathbf{z}_s &= \alpha_s \mathbf{x} + \sigma_s\boldsymbol{\epsilon}_s \
\mathbf{z}_t &= \alpha_t \Big(\frac{\mathbf{z}_s – \sigma_s\boldsymbol{\epsilon}_s}{\alpha_s}\Big) + \sigma_t\boldsymbol{\epsilon}_t \
\mathbf{z}_t &= \frac{\alpha_t}{\alpha_s}\mathbf{z}_s + \sigma_t\boldsymbol{\epsilon}_t – \frac{\alpha_t\sigma_s}{\alpha_s} \boldsymbol{\epsilon}_s \
\text{Таким образом }q(\mathbf{z}_t \vert \mathbf{z}_s) &= \mathcal{N}\Big(\mathbf{z}_t; \frac{\alpha_t}{\alpha_s}\mathbf{z}_s, \big(1 – \frac{\alpha^2_t\sigma^2_s}{\sigma^2_t\alpha^2_s}\big)\sigma^2_t \mathbf{I}\Big)
\end{aligned}$$
Пусть логарифм отношения сигнал-шум $\lambda_t = \log[\alpha^2_t / \sigma^2_t]$, мы можем представить обновление DDIM (Song et al. 2020) как:
$$q(\mathbf{z}t \vert \mathbf{z}_s) = \mathcal{N}\Big(\mathbf{z}_t; \frac{\alpha_t}{\alpha_s}\mathbf{z}_s, \sigma^2{t\vert s} \mathbf{I}\Big) \quad
\text{где }\sigma^2_{t\vert s} = (1 – e^{\lambda_t – \lambda_s})\sigma^2_t$$
Существует специальная параметризация $\mathbf{v}$-предсказания $\mathbf{v} = \alpha_t \boldsymbol{\epsilon} – \sigma_t \mathbf{x}$, предложенная Salimans & Ho (2022). Показано, что она помогает избежать сдвига цвета при генерации видео по сравнению с параметризацией $\boldsymbol{\epsilon}$.
Параметризация $\mathbf{v}$ выводится с помощью трюка в угловой координате. Сначала мы определяем $\phi_t = \arctan(\sigma_t / \alpha_t)$, и таким образом, мы имеем $\alpha_\phi = \cos\phi, \sigma_t = \sin\phi, \mathbf{z}\phi = \cos\phi \mathbf{x} + \sin\phi\boldsymbol{\epsilon}$. Скорость $\mathbf{z}\phi$ может быть записана как:
$$\mathbf{v}\phi = \nabla\phi \mathbf{z}_\phi = \frac{d\cos\phi}{d\phi} \mathbf{x} + \frac{d\sin\phi}{d\phi}\boldsymbol{\epsilon} = \cos\phi\boldsymbol{\epsilon} -\sin\phi\mathbf{x}$$
Тогда мы можем вывести,
$$\begin{aligned}
\sin\phi\mathbf{x}
&= \cos\phi\boldsymbol{\epsilon} – \mathbf{v}\phi \ &= \frac{\cos\phi}{\sin\phi}\big(\mathbf{z}\phi – \cos\phi\mathbf{x}\big) – \mathbf{v}\phi \ \sin^2\phi\mathbf{x} &= \cos\phi\mathbf{z}\phi – \cos^2\phi\mathbf{x} – \mathbf{v}\phi \ \mathbf{x} &= \cos\phi\mathbf{z}\phi – \sin\phi\mathbf{v}\phi \ \text{Аналогично } \boldsymbol{\epsilon} &= \sin\phi\mathbf{z}\phi + \cos\phi \mathbf{v}_\phi
\end{aligned}$$
Правило обновления DDIM обновляется соответственно,
$$\begin{aligned}
\mathbf{z}{\phi_s} &= \cos\phi_s\hat{\mathbf{x}}\theta(\mathbf{z}{\phi_t}) + \sin\phi_s\hat{\epsilon}\theta(\mathbf{z}{\phi_t}) \quad\quad{\small \text{; }\hat{\mathbf{x}}\theta(.), \hat{\epsilon}\theta(.)\text{ это две модели для предсказания }\mathbf{x}, \boldsymbol{\epsilon}\text{ на основе }\mathbf{z}{\phi_t}}\
&= \cos\phi_s \big( \cos\phi_t \mathbf{z}{\phi_t} – \sin\phi_t \hat{\mathbf{v}}\theta(\mathbf{z}{\phi_t} ) \big) + \sin\phi_s \big( \sin\phi_t \mathbf{z}{\phi_t} + \cos\phi_t \hat{\mathbf{v}}\theta(\mathbf{z}{\phi_t} ) \big) \
&= {\color{red} \big( \cos\phi_s\cos\phi_t + \sin\phi_s\sin\phi_t \big)} \mathbf{z}{\phi_t} + {\color{green} \big( \sin\phi_s \cos\phi_t – \cos\phi_s \sin\phi_t \big)} \hat{\mathbf{v}}\theta(\mathbf{z}{\phi_t} ) \ &= {\color{red} \cos(\phi_s – \phi_t)} \mathbf{z}{\phi_t} +
{\color{green} \sin(\phi_s – \phi_t)} \hat{\mathbf{v}}\theta(\mathbf{z}{\phi_t}) \quad\quad{\small \text{; тригонометрические тождества.}}
\end{aligned}$$
Рис. 1. Визуализация того, как работает шаг обновления диффузии в угловой координате, где DDIM развивает $\mathbf{z}{\phi_s}$, перемещая его в направлении $-\hat{\mathbf{v}}{\phi_t}$. (Источник изображения: Salimans & Ho, 2022)
Параметризация $\mathbf{v}$ для модели заключается в предсказании $\mathbf{v}_\phi = \cos\phi\boldsymbol{\epsilon} -\sin\phi\mathbf{x} = \alpha_t\boldsymbol{\epsilon} – \sigma_t\mathbf{x}$.
В случае генерации видео, нам нужно, чтобы диффузионная модель выполняла несколько шагов увеличения разрешения для удлинения видео или увеличения частоты кадров. Это требует способности к выборке второго видео $\mathbf{x}^b$, обусловленного первым $\mathbf{x}^b \sim p_\theta(\mathbf{x}^b \vert \mathbf{x}^a)$, где $\mathbf{x}^b$ может быть авторегрессионным продолжением $\mathbf{x}^a$ или пропущенными кадрами между кадрами видео $\mathbf{x}^a$ при низкой частоте кадров.
Выборка $\mathbf{x}b$ должна зависеть от $\mathbf{x}_a$ помимо собственного зашумленного переменного. Видео диффузионные модели (VDM; Ho & Salimans et al., 2022) предложили метод реконструктивного гида, используя скорректированную модель денойзинга, чтобы выборка $\mathbf{x}^b$ могла быть правильно обусловлена на $\mathbf{x}^a$: $$\begin{aligned} \mathbb{E}_q [\mathbf{x}_b \vert \mathbf{z}_t, \mathbf{x}^a] &= \mathbb{E}_q [\mathbf{x}^b \vert \mathbf{z}_t] + \frac{\sigma_t^2}{\alpha_t} \nabla{\mathbf{z}^b_t} \log q(\mathbf{x}^a \vert \mathbf{z}t) \ q(\mathbf{x}^a \vert \mathbf{z}_t) &\approx \mathcal{N}\big[\hat{\mathbf{x}}^a\theta (\mathbf{z}t), \frac{\sigma_t^2}{\alpha_t^2}\mathbf{I}\big] & {\small \text{; точная форма неизвестна.}}\ \tilde{\mathbf{x}}^b\theta (\mathbf{z}t) &= \hat{\mathbf{x}}^b\theta (\mathbf{з}t) – \frac{w_r \alpha_t}{2} \nabla{\mathbf{z}t^b} | \mathbf{x}^a – \hat{\mathbf{x}}^a\theta (\mathbf{з}_t) |^2_2 & {\small \text{; скорректированная модель денойзинга для }\mathbf{x}^b}
\end{aligned}$$
где $\hat{\mathbf{x}}^a_\theta (\mathbf{з}t), \hat{\mathbf{x}}^b\theta (\mathbf{з}_t)$ — это реконструкции $\mathbf{x}^a, \mathbf{x}^b$, предоставленные моделью денойзинга. И $w_r$ — это весовой коэффициент, причем большой $w_r >1$ улучшает качество выборки. Заметьте, что также возможно одновременно условно на видео с низким разрешением расширять выборки до высокого разрешения, используя тот же метод реконструктивного гида.
Архитектура модели: 3D U-Net и DiT
Подобно диффузионным моделям текст-к-изображению, U-net и Трансформер остаются двумя распространенными архитектурными выборами. Существует серия статей по моделированию диффузионного видео от Google на основе архитектуры U-net и недавняя модель Sora от OpenAI, использующая архитектуру Трансформера.
VDM (Ho & Salimans et al., 2022) использует стандартную настройку диффузионной модели, но с измененной архитектурой, подходящей для моделирования видео. Она расширяет 2D U-net для работы с 3D данными (Cicek et al., 2016), где каждая карта признаков представляет собой 4D тензор кадров x высота x ширина x каналы. Этот 3D U-net факторизован по пространству и времени, что означает, что каждый слой работает только на пространственном или временном измерении, но не на обоих:
- Обработка пространства:
- Каждый старый 2D сверточный слой в 2D U-net расширяется до пространственного только 3D сверточного; точнее, 3×3 свертки становятся 1x3x3 свертками.
- Каждый блок пространственного внимания остается вниманием по пространству, где первая ось (
кадры
) рассматривается как размер пакета. - Обработка времени:
- После каждого блока пространственного внимания добавляется блок временного внимания. Он выполняет внимание по первой оси (
кадры
) и обрабатывает пространственные оси как размер пакета. Для отслеживания порядка кадров используется встраивание относительной позиции. Блок временного внимания важен для модели, чтобы захватить хорошую временную согласованность.
Рис. 2. Архитектура 3D U-net. Шумное видео 𝑧𝑡, условная информация 𝑐 и логарифм отношения сигнал-шум (log-SNR) 𝜆𝑡 являются входными данными для сети. Мультипликаторы каналов 𝑀1,…,𝑀𝐾 представляют количество каналов на каждом уровне. (Источник изображения: Salimans & Ho, 2022)
Imagen Video (Ho et al., 2022) построена на каскаде диффузионных моделей для улучшения качества генерации видео и обновлена для вывода видео 1280×768 пикселей при 24 кадрах в секунду. Архитектура Imagen Video включает следующие компоненты, всего насчитывается 7 диффузионных моделей.
- Замороженный T5 текстовый энкодер для предоставления текстовых встраиваний в качестве условного ввода.
- Базовая видеодиффузионная модель.
- Каскад пространственно-временных моделей суперразрешения, включая 3 TSR (временное суперразрешение) и 3 SSR (пространственное суперразрешение) компонента.
Рис. 3. Каскадный процесс выборки в Imagen Video. На практике текстовые встраивания вводятся во все компоненты, а не только в базовую модель. (Источник изображения: Ho et al., 2022)
Базовые модели денойзинга выполняют пространственные операции по всем кадрам с общими параметрами одновременно, а затем временной слой смешивает активации по кадрам для лучшего захвата временной согласованности, что оказалось более эффективным, чем подходы с авторегрессией по кадрам.
Рис. 4. Архитектура одного блока, разделяющего пространство и время в диффузионной модели Imagen Video. (Источник изображения: Ho et al., 2022)
Модели SSR и TSR условны на увеличенных входах, конкатенированных с шумными данными $\mathbf{z}_t$ по каналам. SSR увеличивает разрешение с помощью билинейного изменения размера, в то время как TSR увеличивает разрешение, повторяя кадры или заполняя пустые кадры.
Imagen Video также применяет прогрессивную дистилляцию для ускорения процесса выборки, и каждое повторение дистилляции может уменьшить количество необходимых шагов выборки вдвое. В их экспериментах удалось дистиллировать все 7 видеодиффузионных моделей до всего 8 шагов выборки на модель без заметной потери качества восприятия.
Для достижения лучших масштабируемых результатов, Sora (Brooks et al., 2024) использует архитектуру DiT (Diffusion Transformer), работающую с пространственно-временными патчами видео и латентными кодами изображений. Визуальный вход представлен в виде последовательности пространственно-временных патчей, которые действуют как входные токены для Трансформера.
Рис. 5. Sora — это диффузионная трансформерная модель. (Источник изображения: Brooks et al., 2024)
Адаптация моделей изображений для генерации видео
Другой важный подход для моделирования диффузионного видео — это «раздувание» предварительно обученной модели текст-к-изображению путем вставки временных слоев, после чего можно выбрать только дообучение новых слоев на видеоданных или вообще избежать дополнительного обучения. Предварительные знания пар текст-изображение наследуются новой моделью, что помогает ослабить требования к данным пар текст-видео.
Дообучение на видеоданных
Make-A-Video (Singer et al., 2022) расширяет предварительно обученную диффузионную модель изображений с добавлением временного измерения, состоящего из трех ключевых компонентов:
- Базовая модель текст-к-изображению, обученная на данных пар текст-изображение.
- Пространственно-временные сверточные и внимательные слои для расширения сети до временного измерения.
- Сеть интерполяции кадров для генерации видео с высокой частотой кадров.
Рис. 6. Иллюстрация конвейера Make-A-Video. (Источник изображения: Singer et al., 2022)
Окончательная схема вывода видео может быть сформулирована как:
$$\hat{\mathbf{y}}t = \text{SR}_h \circ \text{SR}^t_l \circ \uparrow_F \circ D^t \circ P \circ (\hat{\mathbf{x}}, \text{CLIP}\text{text}(\mathbf{x}))$$
где:
- $\mathbf{x}$ — входной текст.
- $\hat{\mathbf{x}}$ — закодированный текст методом BPE.
- $\text{CLIP}\text{text}(.)$ — текстовый энкодер CLIP, $\mathbf{x}_e = \text{CLIP}\text{text}(\mathbf{x})$.
- $P(.)$ — прайор, генерирующий встраивание изображения $\mathbf{y}_e$ на основе текстового встраивания $\mathbf{x}_e$ и закодированного текста $\hat{\mathbf{x}}$, $\mathbf{y}_e = P(\mathbf{x}_e, \hat{\mathbf{x}})$. Эта часть обучена на данных пар текст-изображение и не дообучается на видеоданных.
- $D^t(.)$ — пространственно-временной декодер, генерирующий серию из 16 кадров, где каждый кадр — это изображение низкого разрешения 64×64 RGB.
- $\uparrow_F(.)$ — сеть интерполяции кадров, увеличивающая эффективную частоту кадров путем интерполяции между генерированными кадрами. Это дообученная модель для задачи предсказания маскированных кадров для увеличения частоты кадров.
- $\text{SR}_h(.), \text{SR}^t_l(.)$ — пространственные и пространственно-временные модели суперразрешения, увеличивающие разрешение изображения до 256×256 и 768×768 соответственно.
- $\hat{\mathbf{y}}_t$ — окончательное сгенерированное видео.
Пространственно-временные слои суперразрешения содержат псевдо-3D сверточные слои и псевдо-3D внимательные слои:
- Псевдо-3D сверточный слой: Каждый пространственный 2D сверточный слой (инициализированный из предварительно обученной модели изображений) сопровождается временным 1D слоем (инициализированным как тождественная функция). Концептуально, 2D сверточный слой сначала генерирует несколько кадров, а затем кадры преобразуются в видеоклип.
- Псевдо-3D внимательный слой: После каждого (предварительно обученного) пространственного внимательного слоя добавляется временной внимательный слой, используемый для аппроксимации полного пространственно-временного внимательного слоя.
Рис. 7. Как работают псевдо-3D сверточные (слева) и внимательные (справа) слои. (Источник изображения: Singer et al., 2022)
Они могут быть представлены как:
$$\begin{aligned}
\text{Conv}\text{P3D} &= \text{Conv}\text{1D}(\text{Conv}\text{2D}(\mathbf{h}) \circ T) \circ T \ \text{Attn}\text{P3D} &= \text{flatten}^{-1}(\text{Attn}\text{1D}(\text{Attn}\text{2D}(\text{flatten}(\mathbf{h})) \circ T) \circ T)
\end{aligned}$$
где входной тензор $\mathbf{h} \in \mathbb{R}^{B\times C \times F \times H \times W}$ (соответствующий размеру пакета, каналам, кадрам, высоте и ширине); $\circ T$ — операция перестановки временных и пространственных измерений; $\text{flatten}(.)$ — матричная операция для преобразования $\mathbf{h}$ в $\mathbf{h}’ \in \mathbb{R}^{B \times C \times F \times HW}$, а $\text{flatten}^{-1}(.)$ выполняет обратное преобразование.
Во время обучения разные компоненты конвейера Make-A-Video обучаются независимо.
- Декодер $D^t$, прайор $P$ и два компонента суперразрешения $\text{SR}_h, \text{SR}^t_l$ сначала обучаются только на изображениях, без парного текста.
- Затем добавляются новые временные слои, инициализированные как тождественная функция, и дообучаются на неразмеченных видеоданных.
Tune-A-Video (Wu et al., 2023) раздувает предварительно обученную модель диффузии изображений для однократной настройки видео: Дано видео, содержащее $m$ кадров, $\mathcal{V} = {v_i \mid i = 1, \dots, m}$, в паре с описательным запросом $\tau$, задача — сгенерировать новое видео $\mathcal{V}^$ на основе слегка отредактированного и связанного текстового запроса $\tau^$. Например, $\tau = “Человек катается на лыжах”можно расширить до $\tau^* = "Человек-Паук катается на лыжах на пляже"
. Tune-A-Video предназначен для редактирования объектов, изменения фона и переноса стиля.
Помимо раздувания 2D сверточного слоя, архитектура U-Net в Tune-A-Video включает блок ST-Attention (пространственно-временное внимание) для захвата временной согласованности, обращаясь к соответствующим позициям в предыдущих кадрах. Данные латентных признаков кадра $v_i$, предыдущих кадров $v_{i-1}$ и первого кадра $v_1$ проецируются в запросы $\mathbf{Q}$, ключи $\mathbf{K}$ и значения $\mathbf{V}$. Пространственно-временное внимание определяется как:
$$\begin{aligned}
&\mathbf{Q} = \mathbf{W}^Q \mathbf{z}{v_i}, \quad \mathbf{K} = \mathbf{W}^K [\mathbf{z}{v_1}, \mathbf{з}{v{i-1}}], \quad \mathbf{V} = \mathbf{W}^V [\mathbf{z}{v_1}, \mathbf{з}{v_{i-1}}] \
&\mathbf{O} = \text{softmax}\Big(\frac{\mathbf{Q} \mathbf{K}^\top}{\sqrt{d}}\Big) \cdот \mathbf{V}
\end{aligned}$$
Рис. 8. Общий обзор архитектуры Tune-A-Video. Сначала выполняется легкий этап дообучения на одном видео перед этапом выборки. Обратите внимание, что все временные слои самовнимания (T-Attn) дообучаются, потому что они добавлены недавно, но только проекции запросов в ST-Attn и Cross-Attn обновляются во время дообучения, чтобы сохранить предыдущие знания текст-к-изображению. ST-Attn улучшает пространственно-временную согласованность, Cross-Attn уточняет выравнивание текст-видео. (Источник изображения: Wu et al., 2023)
Модель Gen-1 (Esser et al., 2023) от Runway нацелена на задачу редактирования заданного видео в соответствии с текстовыми входами. Она декомпозирует рассмотрение структуры и контента видео $p(\mathbf{x} \mid s, c)$ для генерации на основе условий. Однако выполнение четкой декомпозиции этих двух аспектов не является простой задачей.
- Контент $c$ относится к внешнему виду и семантике видео, который выбирается из текста для условного редактирования. Встраивание CLIP кадра является хорошим представлением контента и остается в значительной степени ортогональным структурным признакам.
- Структура $s$ описывает геометрию и динамику, включая формы, местоположения, временные изменения объектов, и $s$ выбирается из входного видео. Можно использовать оценку глубины или другую специфическую для задачи дополнительную информацию (например, позы человеческого тела или метки лица для синтеза видео с участием человека).
Изменения в архитектуре Gen-1 довольно стандартны, т.е. добавление 1D временного сверточного слоя после каждого 2D пространственного сверточного слоя в его остаточных блоках и добавление 1D временного внимательного блока после каждого 2D пространственного внимательного блока в его внимательных блоках. Во время обучения переменная структуры $s$ конкатенируется с латентной переменной диффузии $\mathbf{z}$, где переменная контента $c$ предоставляется в слое перекрестного внимания. Во время вывода встраивание CLIP преобразуется через прайор, чтобы преобразовать текстовое встраивание CLIP в встраивание изображения CLIP.
Рис. 9. Общий обзор конвейера обучения модели Gen-1. (Источник изображения: Esser et al., 2023)
Video LDM (Blattmann et al., 2023) сначала обучает генератор изображений LDM (Latent Diffusion Models). Затем модель дообучается для создания видео с добавленным временным измерением. Дообучение применяется только к этим вновь добавленным временным слоям на закодированных последовательностях изображений. Временные слои ${l^i_\phi \mid i = 1, \dots, L}$ в Video LDM (см. Рис. 10) чередуются с существующими пространственными слоями $l^i_\theta$, которые остаются замороженными во время дообучения. Это означает, что дообучаются только новые параметры $\phi$, но не параметры предварительно обученной модели изображения $\theta$. Конвейер Video LDM сначала генерирует ключевые кадры с низкой частотой кадров, а затем обрабатывает их через 2 шага латентной интерполяции кадров для увеличения частоты кадров.
Входная последовательность длиной $T$ интерпретируется как пакет изображений (т.е. $B \cdot T$) для базовой модели изображения $\theta$ и затем преобразуется в формат видео для временных слоев $l^i_\phi$. Существует пропускная связь, ведущая к комбинации выходных данных временного слоя $\mathbf{z}’$ и пространственного выхода $\mathbf{z}$ через обучаемый параметр слияния $\alpha$. На практике реализованы два типа временных слоев смешивания: (1) временное внимание и (2) остаточные блоки на основе 3D сверток.
Рис. 10. Предварительно обученная LDM для синтеза изображений расширена до генератора видео. $B, T, C, H, W$ — это размер пакета, длина последовательности, каналы, высота и ширина соответственно. $\mathbf{c}_S$ — это необязательный условный/контекстный кадр. (Источник изображения: Blattmann et al., 2023)
Однако остается проблема с предварительно обученным автоэнкодером LDM, который видел только изображения, но никогда видео. Наивное использование этого для генерации видео может вызвать артефакты мерцания без хорошей временной согласованности. Поэтому Video LDM добавляет дополнительные временные слои в декодер и дообучается на видеоданных с патчевым временным дискриминатором, построенным на основе 3D сверток, в то время как энкодер остается неизменным, чтобы мы все еще могли использовать предварительно обученный LDM. Во время дообучения временного декодера замороженный энкодер обрабатывает каждый кадр в видео независимо, и обеспечиваются временно согласованные реконструкции через кадры с видео-осведомленным дискриминатором.
Рис. 11. Конвейер обучения автоэнкодера в видеолатентных диффузионных моделях. Декодер дообучается для обеспечения временной согласованности с новым дискриминатором по кадрам, в то время как энкодер остается замороженным. (Источник изображения: Blattmann et al., 2023)
Подобно Video LDM, архитектурный дизайн Stable Video Diffusion (SVD; Blattmann et al., 2023) также основан на LDM с вставленными временными слоями после каждого пространственного свертки и слоя внимания, но SVD дообучает всю модель. Существует три этапа для обучения видеолатентных диффузионных моделей:
- Предобучение текст-к-изображению важно и помогает улучшить как качество, так и следование подсказкам.
- Предобучение видео полезно проводить отдельно и желательно на большем масштабе, курируемом наборе данных.
- Дообучение высококачественного видео работает с меньшим, предварительно аннотированным видео с высокой визуальной четкостью.
SVD специально подчеркивает критическую роль курирования наборов данных в производительности модели. Они применили конвейер обнаружения разрезов для получения большего количества разрезов на видео, а затем применили три различных модели аннотации: (1) CoCa для аннотирования середины кадра, (2) V-BLIP для аннотирования видео и (3) аннотирование на основе LLM на основе двух предыдущих аннотаций. Затем они продолжили улучшать наборы данных видео, удаляя клипы с низким движением (отфильтрованы по низким оптическим скоростям, рассчитанным при 2 кадрах в секунду), чрезмерным количеством текста (применяя оптическое распознавание символов для выявления видео с большим количеством текста) или с общим низким эстетическим значением (аннотируя первый, средний и последний кадры каждого клипа с помощью встраиваний CLIP и рассчитывая оценки эстетики и сходства текст-изображение). Эксперименты показали, что отфильтрованный, высококачественный набор данных приводит к лучшему качеству модели, даже если этот набор данных значительно меньше.
Ключевая проблема генерации удаленных ключевых кадров сначала, а затем добавления интерполяции с временным суперразрешением — это как поддерживать высокое качество временной согласованности. Lumiere (Bar-Tal et al., 2024) вместо этого использует архитектуру Space-Time U-Net (STUNet), которая генерирует всю временную длительность видео за один раз через один проход, устраняя зависимость от компонентов TSR (временное суперразрешение). STUNet уменьшает видео как по времени, так и по пространству, что позволяет проводить дорогие вычисления в компактном пространственно-временном латентном пространстве.
Рис. 12. Lumiere удаляет модели TSR (временное суперразрешение). Расширенная сеть SSR может работать только с короткими сегментами видео из-за ограничений по памяти, поэтому модели SSR работают с набором более коротких, но перекрывающихся видеофрагментов. (Источник изображения: Bar-Tal et al., 2024)
STUNet раздувает предварительно обученную текст-к-изображению U-net для возможности уменьшения и увеличения видео как по временным, так и по пространственным измерениям. Блоки, основанные на свертках, состоят из предварительно обученных слоев текст-к-изображению, за которыми следует факторизованная пространственно-временная свертка. А блоки на основе внимания на самом грубом уровне U-Net содержат предварительно обученные слои текст-к-изображению, за которыми следует временное внимание. Дальнейшее обучение происходит только с новыми добавленными слоями.
Рис. 13. Архитектура (а) Space-Time U-Net (STUNet), (б) блока на основе сверток и (в) блока на основе внимания. (Источник изображения: Bar-Tal et al., 2024)
Адаптация без обучения
Довольно неожиданно, но возможно адаптировать предварительно обученную модель текст-к-изображению для вывода видео без какого-либо обучения 🤯.
Если мы наивно выберем последовательность латентных кодов случайным образом, а затем составим видео из декодированных соответствующих изображений, нет гарантии согласованности объектов и семантики во времени. Text2Video-Zero (Khachatryan et al., 2023) позволяет генерировать видео без обучения, усиливая предварительно обученную модель диффузии изображений с двумя ключевыми механизмами для временной согласованности:
- Выборка последовательности латентных кодов с динамикой движения, чтобы сохранять глобальную сцену и фоновые временные согласованные;
- Перепрограммирование самовнимания на уровне кадров с использованием нового перекрестного внимания по кадрам каждого кадра на первом кадре, чтобы сохранить контекст, внешний вид и идентичность переднего объекта.
Рис. 14. Общий обзор конвейера Text2Video-Zero. (Источник изображения: Khachatryan et al., 2023)
Процесс выборки последовательности латентных переменных, $\mathbf{x}^1_T, \dots, \mathbf{x}^m_T$, с информацией о движении описан следующим образом:
- Определите направление $\boldsymbol{\delta} = (\delta_x, \delta_y) \in \mathbb{R}^2$ для управления глобальной сценой и движением камеры; по умолчанию установите $\boldsymbol{\delta} = (1, 1)$. Также определите гиперпараметр $\lambda > 0$, контролирующий количество глобального движения.
- Сначала случайным образом выберите латентный код первого кадра, $\mathbf{x}^1_T \sim \mathcal{N}(0, I)$;
- Выполните $\Delta t \geq 0$ шагов обратного обновления DDIM, используя предварительно обученную модель диффузии изображений, например Stable Diffusion (SD) модель в статье, и получите соответствующий латентный код $\mathbf{x}^1_{T’}$, где $T’ = T – \Delta t$.
- Для каждого кадра в последовательности латентных кодов примените соответствующее движение с операцией деформации, определяемой $\boldsymbol{\delta}^k = \lambda(k-1)\boldsymbol{\delta}$, чтобы получить $\tilde{\mathbf{x}}^k_{T’}$.
- Наконец, примените шаги прямого обновления DDIM ко всем $\tilde{\mathbf{x}}^{2:m}{T’}$, чтобы получить $\mathbf{x}^{2:m}_T$. $$\begin{aligned} \mathbf{x}^1{T’} &= \text{DDIM-backward}(\mathbf{x}^1_T, \Delta t)\text{ где }T’ = T – \Delta t \
W_k &\gets \text{операция деформации }\boldsymbol{\delta}^k = \lambda(k-1)\boldsymbol{\delta} \
\tilde{\mathbf{x}}^k_{T’} &= W_k(\mathbf{x}^1_{T’})\
\mathbf{x}^k_T &= \text{DDIM-forward}(\tilde{\mathbf{x}}^k_{T’}, \Delta t)\text{ для }k=2, \dots, m
\end{aligned}$$
Кроме того, Text2Video-Zero заменяет слой самовнимания в предварительно обученной модели SD новым перекрестным механизмом внимания по кадрам с ссылкой на первый кадр. Мотивация заключается в сохранении информации о внешнем виде, форме и идентичности переднего объекта на протяжении всего сгенерированного видео.
$$\text{Cross-Frame-Attn}(\mathbf{Q}^k, \mathbf{K}^{1:m}, \mathbf{V}^{1:m}) = \text{Softmax}\Big( \frac{\mathbf{Q}^k (\mathbf{K}^1)^\top}{\sqrt{c}} \Big) \mathbf{V}^1$$
Опционально, можно использовать маску фона для дальнейшего сглаживания и улучшения согласованности фона. Предположим, что мы получили соответствующую маску переднего плана $\mathbf{M}_k$ для $k$-го кадра с использованием какого-либо существующего метода, и сглаживание фона объединяет фактический и деформированный латентный код на шаге диффузии $t$, относительно матрицы фона:
$$\bar{\mathbf{x}}^k_t = \mathbf{M}^k \odot \mathbf{x}^k_t + (1 − \mathbf{M}^k) \odot (\alpha\tilde{\mathbf{x}}^k_t +(1−\alpha)\mathbf{x}^k_t)\quad\text{для }k=1, \dots, m$$
где $\mathbf{x}^k_t$ — фактический латентный код, а $\tilde{\mathbf{x}}^k_t$ — деформированный латентный код на фоне; $\alpha$ — гиперпараметр, установленный равным 0.6 в экспериментах.
Text2Video-Zero можно комбинировать с ControlNet, где предварительно обученная копия ветви ControlNet применяется к каждому кадру на $\mathbf{x}^k_t$ для $k = 1, \dots, m$ на каждом временном шаге диффузии $t = T, \dots, 1$ и добавляет выходы ветви ControlNet к пропускным соединениям основного U-net.
ControlVideo (Zhang et al., 2023) нацелен на генерацию видео, условленного на текстовый запрос $\tau$ и последовательность движения (например, карты глубины или контурные карты), $\mathbf{c} = {c^i}_{i=0}^{N-1}$. Модель адаптирована от ControlNet с добавлением трех новых механизмов:
- Перекрестное внимание по кадрам: добавляет полное перекрестное взаимодействие по кадрам в модулях самовнимания. Вводит взаимодействия между всеми кадрами, отображая латентные кадры на всех временных шагах в матрицы $\mathbf{Q}, \mathbf{K}, \mathbf{V}$, в отличие от Text2Video-Zero, который конфигурирует все кадры для внимания только к первому кадру.
- Сглаживатель чередующихся кадров: механизм для применения интерполяции кадров на чередующихся кадрах для уменьшения эффекта мерцания. На каждом временном шаге $t$ сглаживатель интерполирует четные или нечетные кадры, чтобы сгладить их соответствующие трехкадровые клипы. Обратите внимание, что количество кадров уменьшается со временем после сглаживания.
- Иерархический семплер: использует иерархический семплер для создания длинных видео с временной согласованностью в условиях ограниченной памяти. Длинное видео разбивается на несколько коротких клипов, и для каждого клипа выбирается ключевой кадр. Модель предварительно генерирует эти ключевые кадры с полным перекрестным вниманием для обеспечения долгосрочной согласованности, а каждый соответствующий короткий клип синтезируется последовательно, обусловленный ключевыми кадрами.
Рис. 15. Общий обзор ControlVideo. (Источник изображения: Zhang et al., 2023)
Полезные ссылки, что почитать/посмотреть
- «Что такое диффузионные модели?»
- Диффузионные методы генерации видео по тексту
- Генеративные диффузионные модели. Разработка, обучение и релиз модели Kandinsky 2.1/ Андрей Кузнецов
- How I Understand Diffusion Models