Sora — нейросеть, которая создаёт гиперреалистичные видеоролики длиной до минуты по текстовым запросам. Даты официального релиза пока нет, но, скорее всего, Sora от OpenAI станет доступна в ближайшие месяцы. Сейчас нейросетью пользуются тестировщики и ограниченный круг художников и кинематографистов. Разбираемся, как работает одна из самых продвинутых нейросетей, что она умеет хорошо, а с чем справляется не очень.
Как работает
Sora сочетает в себе две архитектуры: диффузионную и трансформер (преобразователь). Диффузионная архитектура работает так же, как в нейросетях DALL-E 3, Stable Diffusion и Midjourney. Они не генерируют каждый кадр напрямую. Нейросеть начинает со случайного шума, и затем картинки постепенно преобразуются в нечто, напоминающее описание в промте — текстовом запросе.
От других генеративных нейросетей Sora отличается использованием пространственно-временных патчей. Они позволяют одновременно анализировать как изображение на каждом кадре — пространственную информацию, так и изменения в этом изображении с течением времени — временную информацию. За это как раз отвечает архитектура «Трансформер».
GPT — пример нейросети с такой архитектурой. Нейронка разбивает входной текстовый запрос на последовательность токенов, которые затем преобразуются в числовое векторное представление для дальнейшей работы.
В Sora вместо токенов используются патчи. Нейросеть получает на вход текстовый запрос от пользователя и зашумлённые сгенерированные патчи. Затем сеть пытается предсказать выходные патчи, которые бы соответствовали описанию.
Sora обучена на очень большом массиве данных «текст — видео». Она хорошо понимает языковые нюансы, чтобы корректно перевести их в визуальные данные. Сначала входные данные сжимаются, и видео преобразуется в латентное, то есть скрытое, пространство с низким разрешением. Затем данные снова разбиваются на пространственно-временные патчи. И в этот момент происходит вся магия: именно на этих патчах сеть обучается и создаёт контент.
В Sora используются методы динамического моделирования. Они позволяют предсказывать и визуализировать движение на видео так, чтобы оно выглядело достоверным и плавным. На выходе сгенерированные моделью данные преобразуются в видео высокого разрешения с помощью декодера. Чем больше таких итераций, тем лучше качество выходного видео.
Базовые вычисления. Источник: openai.com
Четырёхкратные вычисления. Источник: openai.com
32-кратные вычисления. Источник: openai.com
Высокая реалистичность достигается комбинацией подходов:
- трансформеры работают с физикой и временем,
- диффузия улучшает качество видео с каждой итерацией.
По словам представителя проекта Sora, алгоритм нейронки был создан путём обучения на бесчисленных часах видео, полученных по лицензии от других компаний, и на публичных данных, взятых из интернета.
Что умеет
Sora генерирует сложные сцены с несколькими персонажами, заданным типом движения и детализацией объекта и фона. Модель понимает не только то, что пользователь запрашивает в промте, но и то, как всё это взаимодействует друг с другом в физическом мире. Но не всегда — об этом дальше.
Вот реальный аэрофотоснимок побережья Биг-Сур в Калифорнии:
А вот видео с тем же побережьем Биг-Сур, сгенерированное Sora:
Искусственное видео выглядит максимально реалистично. Сеть распознаёт языковые нюансы и может правильно понять даже поэтически-философский промт. Например, такой (в оригинале на английском):
Седовласый мужчина с бородой в возрасте 60 лет крупным планом. Он глубоко задумался, размышляя об истории Вселенной. Он сидит в кафе в Париже, сосредоточенно наблюдает за людьми на улице, которые остаются за кадром. Мужчин сидит практически неподвижно. Он одет в шерстяное пальто с рубашкой на пуговицах. Носит коричневый берет и очки, у него «профессорский» вид. В конце видео он незаметно улыбается с закрытым ртом, как будто нашёл ответ на загадку жизни. Освещение в видео кинематографическое, с золотым светом и улицами Парижа на заднем плане. Глубина резкости кинематографическая, 35 мм плёнка.
Вот что сгенерировала Sora по этому промту:
Нейросеть генерирует и анимационные сцены:
Sora может не только создавать видео по текстовым запросам, но и использовать для этого другое статичное изображение, чтобы сделать видео из него. Кроме этого, Sora может взять существующее видео, дополнить его или добавить недостающие кадры.
Вот картинка, сгенерированная нейросетью DALL·E 2:
А вот видео, сгенерированное из этого изображения нейросетью Sora:
Ещё Sora умеет «сшивать» два поданных на вход видео, создавая плавные переходы между совершенно разными сюжетами и композициями.
Вот один видеоролик с летающим дроном:
Вот второй — с бабочкой на дне моря:
А это видео, в котором первый ролик с дроном плавно переходит во второй с бабочкой:
Все ролики от Sora можно посмотреть здесь:
Что умеет не очень хорошо
Несмотря на все продвинутые технологии, у Sora есть типичные проблемы. Она не всегда справляется с пониманием конкретных причинно-следственных связей, точным моделированием физики сложной сцены или генерацией частей тела. Например, в этом видео у котика какие-то проблемы с передней левой лапой: пока он ей двигает, на её месте вырастает другая. Рука человека выглядит в целом нормально, но находится в странном месте:
Sora не всегда точно моделирует физику базовых взаимодействий. В этом видео стакан ведёт себя нереалистично:
А здесь и вовсе происходит что-то странное со стулом:
Сейчас OpenAI устраняет критические недостатки и разрабатывает инструменты, которые могут определить сгенерированный видеоконтент. Классификатор текста будет проверять и отклонять запросы, которые нарушают политику использования. Это поможет снизить риск злоупотребления нейросетью.
Что дальше
Через год-полтора мы будем смотреть на SORA с ностальгией, потому что появятся более крутые инструменты и нейросети. А пока ждём публичного релиза и наслаждаемся красивыми картинками.