ИИ-модель от Netflix удаляет любого актера из любой сцены (Разбор модели VOID)
BBetter Stack
컴퓨터/소프트웨어영화사진/예술AI/미래기술
Transcript
00:00:00Ого, это выглядит довольно грустно, бедная Кейт Уинслет, боже мой, она просто стоит там одна, с
00:00:09кем-то вместо Джека.
00:00:11Netflix только что выпустил очень интересный ИИ-инструмент с открытым исходным кодом под названием Video Object and Interaction
00:00:17Deletion или VOID.
00:00:19Большинство ИИ-инструментов для видео уже отлично стирают объекты, в этом нет ничего нового.
00:00:24Но они ужасно справляются с удалением последствий присутствия этих объектов в сцене.
00:00:29Например, если вы удаляете шар для боулинга, сбивающий кегли, большинство моделей оставят кегли
00:00:34падающими без причины, но VOID пытается решить эту проблему.
00:00:39Это новый фреймворк от Netflix и Insight, который понимает причинно-следственные связи и изменяет
00:00:44видеоконтент на основе удаленных объектов.
00:00:47В этом видео мы подробнее рассмотрим эту модель, узнаем, как она работает, и я даже
00:00:52создал веб-приложение, чтобы протестировать её во всей красе, так что мы проведем несколько видеотестов
00:00:57самостоятельно.
00:00:58Будет очень весело, так что давайте приступим.
00:01:05Итак, VOID расшифровывается как Video Object and Interaction Deletion (Удаление объектов и взаимодействий в видео).
00:01:09Чтобы понять, почему это так важно, нужно посмотреть, как обычно работает
00:01:15инпейнтинг видео.
00:01:16Стандартные ИИ-ластики — это, по сути, функция «заливка с учетом содержимого» на стероидах.
00:01:20Они анализируют пиксели вокруг пустой области и пытаются угадать, что там должно быть.
00:01:24Это работает для водяного знака или неподвижного человека, но всё рушится, как только
00:01:29происходит физическое взаимодействие.
00:01:31Если удалить девушку, делающую смузи в блендере, обычный ИИ сотрет человека,
00:01:36но оставит блендер вращающимся и работающим без всякой причины.
00:01:40Он исправляет внешний вид, но игнорирует физику окружающих объектов.
00:01:46VOID разработан для решения этой проблемы «фантомных взаимодействий» путем переосмысления альтернативной реальности.
00:01:53По сути, это версия видео, в которой этого объекта или человека никогда не существовало
00:01:57изначально.
00:01:58И то, как он это реализует, на самом деле довольно умно.
00:02:01Он не просто начинает закрашивать сразу.
00:02:03Вместо этого он использует двухэтапную систему.
00:02:06На первом этапе происходит фаза рассуждения.
00:02:08Сначала VOID использует визуально-языковую модель и SAM2 (Segment Anything Model 2) для анализа
00:02:15сцены.
00:02:16Я уже делал отдельное видео о том, как работает SAM2, так что посмотрите его, если интересно.
00:02:22Пока SAM2 создает идеальный попиксельный трекинг объекта, который вы хотите удалить, ИИ задает
00:02:28себе вопрос: «Если я удалю это, что еще изменится?»
00:02:32Если вы удалите одну костяшку из стопки домино, ИИ определит, что другие костяшки
00:02:38косвенно затронуты.
00:02:39Затем он создает то, что исследователи называют «Quad Mask» — специфическую карту, которая говорит
00:02:44диффузионной модели не только где стереть, но и где переписать физику окружающей
00:02:50области.
00:02:51Затем второй шаг — генерация и уточнение.
00:02:54Как только карта создана, диффузионная видеомодель генерирует новые кадры.
00:03:00Иногда эти модели могут быть немного «галлюциногенными», объекты могут искажаться или терять форму.
00:03:05Чтобы исправить это, у VOID есть опциональный второй проход.
00:03:08Он использует технологию flow warp noise, чтобы зафиксировать формы на месте, гарантируя,
00:03:14что пока физика меняется, остальные объекты остаются цельными и стабильными.
00:03:19Но вам может быть интересно, как научить ИИ тому, чего не происходило?
00:03:23Команда из Netflix и Insight не могла просто снять автокатастрофу, а затем «отменить» ее
00:03:28в реальной жизни, чтобы получить данные для обучения.
00:03:30Вместо этого они использовали синтетические среды, такие как Kubric.
00:03:34Они запустили тысячи физических симуляций, где у них была версия «до» и «после».
00:03:40Одна версия со столкновением, а другая — где объекта никогда не было.
00:03:44Показывая ИИ обе версии, он выучил связь между присутствием объекта и
00:03:49его влиянием на окружающую среду.
00:03:51Всё это звучит супер увлекательно, но давайте протестируем этот инструмент на деле.
00:03:57Лучший способ запустить его — использовать облачный GPU, например модуль RunPod на
00:04:02H100 GPU или чем-то эквивалентном.
00:04:05Но сразу скажу, настройка совсем не тривиальная.
00:04:10В документации на GitHub много пробелов и вводящей в заблуждение информации.
00:04:14Чтобы всё заработало правильно, нужно обратить внимание на несколько вещей.
00:04:18Например, эта команда, скорее всего, не сработает, потому что они не указали, что вам
00:04:23нужна модель SAM3 для этой процедуры.
00:04:25И эта команда может не сработать, потому что не указано, что маски должны
00:04:30называться строго «quad_mask_0.mp4» для корректной работы.
00:04:35Здесь много таких мелких проблем, которые не задокументированы.
00:04:38Их демо в Gradio хорошее, если у вас уже есть сегментированная маска из SAM2, но они
00:04:44не предоставляют графический интерфейс для создания этой маски.
00:04:48Поэтому я создал кастомное веб-приложение, которое решает все эти проблемы и дает
00:04:54готовый UI, включающий этап сегментации, этап инференса и
00:05:00даже систему двух проходов.
00:05:02Вы можете просто загрузить видео, сегментировать маску и отрендерить финальный результат.
00:05:07Именно это мы сейчас и сделаем.
00:05:09Сначала нужно запустить инстанс RunPod с мощным GPU.
00:05:14Для этого теста я буду использовать H100.
00:05:17В разделе шаблонов обязательно увеличьте размер контейнера до 100 ГБ.
00:05:22В разделе портов добавьте порт 8998, так как именно через него мы будем открывать
00:05:27наше веб-приложение.
00:05:29Затем просто подключитесь по SSH к поду, клонируйте мой репозиторий, перейдите в него и запустите
00:05:36команду run.sh.
00:05:38Программа попросит вас предоставить токен Hugging Face для загрузки
00:05:42моделей. Также убедитесь, что у вас есть доступ к репозиторию SAM3, так как это
00:05:48закрытая модель, и вам нужно запросить разрешение на её использование.
00:05:51Обычно процесс довольно быстрый, и одобрение приходит за несколько минут.
00:05:55Также вам понадобится API-ключ Gemini, так как на этапе сегментации модель
00:06:00использует Gemini для оценки позы для точной генерации Quad Mask.
00:06:06Хорошо.
00:06:07Если у вас есть оба ключа, позвольте скрипту run.sh всё установить.
00:06:13Как только это будет готово, мы можем запустить веб-приложение с помощью команды,
00:06:18указанной здесь.
00:06:19Теперь на странице RunPod нужно нажать на этот порт, и откроется наше
00:06:24веб-приложение.
00:06:25Теперь мы наконец можем начать тестирование модели.
00:06:28Для первого теста я возьму знаменитую сцену из «Матрицы» и попробую удалить
00:06:32Нео из кадра, чтобы посмотреть, что получится.
00:06:35Первое, что нужно сделать — указать промпт с инструкцией по удалению.
00:06:41В данном случае мы можем написать: «удалить бойца в белом кимоно из
00:06:45сцены».
00:06:46После этого переходим в раздел, где нужно просто отметить несколько точек вокруг
00:06:51объекта или человека, которого нужно удалить, чтобы SAM2 понимал, на какой фигуре сфокусироваться,
00:06:57а затем указать папку для вывода, где будут храниться файлы результатов.
00:07:02Запомните название этой папки, так как это будет уникальный идентификатор,
00:07:06который мы будем использовать в других вкладках для работы с этим видео.
00:07:11После этого переходим ко второй вкладке, которая запустит этап сегментации и
00:07:16весь процесс.
00:07:17Как только это закончится, идем в третью вкладку — этап инференса, где
00:07:22модель фактически попытается удалить нужный объект или человека.
00:07:26Здесь снова нужно ввести название папки.
00:07:29И здесь нужно указать промпт, описывающий, как должно выглядеть видео без
00:07:34удаленного объекта или человека.
00:07:37В нашем случае это будет что-то вроде: «боец в темном кимоно стоит
00:07:42внутри спортзала».
00:07:43Также рекомендуется не упоминать удаляемый объект, а сосредоточиться только на том,
00:07:48что должно остаться в видео, и запустить инференс.
00:07:52Когда всё будет готово, переходим во вкладку результатов и смотрим финальное видео.
00:07:58И снова нужно указать папку с видео.
00:08:01Ну вот, смотрите.
00:08:03Только взгляните на это.
00:08:04Да, похоже, Морфеус сражается с призраком.
00:08:07Видно некоторые несоответствия при удалении рук и прочих деталей.
00:08:12Это не идеально, но есть еще кое-что, что мы можем сделать для улучшения.
00:08:18Мы можем прогнать видео через фильтр второго прохода во вкладке 4, чтобы добиться лучших результатов.
00:08:24После запуска второго прохода у нас появляется дополнительное окно,
00:08:29где виден результат этого этапа.
00:08:32И снова это выглядит немного странно.
00:08:34Всё еще кажется, что Морфеус дерется с призраком, танцует или типа того.
00:08:39Как видите, это работает не для каждой сцены.
00:08:42Некоторые сцены будут смотреться очень странно, но модель хорошо справилась с
00:08:48полным удалением Нео из кадра.
00:08:49Тем не менее, давайте попробуем еще два забавных примера.
00:08:53Вот знаменитая танцевальная сцена из «Ла-Ла Ленда».
00:08:56Здесь я попробую удалить Эмму Стоун из кадра и посмотрю, что выйдет.
00:09:01Ого, вы только посмотрите.
00:09:03Это выглядит почти безупречно.
00:09:05Я реально готов поверить, что Райан Гослинг просто танцует здесь один.
00:09:09И посмотрите на момент, где Эмма Стоун проходит перед Райаном Гослингом.
00:09:13Этот переход практически бесшовный.
00:09:15Заметны небольшие артефакты, но в целом — вау, это потрясающий результат.
00:09:21Из всех протестированных мною результатов этот — лучший.
00:09:24Почему-то я думал, что это будет самый сложный пример для обработки.
00:09:28Но, как ни странно, он показал лучшие результаты среди всех моих тестов.
00:09:33Хорошо.
00:09:34Я хочу попробовать еще один пример.
00:09:35На этот раз я попробую удалить Леонардо Ди Каприо из знаменитой сцены в «Титанике»,
00:09:41и посмотрим, что из этого выйдет.
00:09:42О, вау, это выглядит довольно грустно.
00:09:48Бедная Кейт Уинслет.
00:09:49Боже мой.
00:09:50Просто стоит там одна, без Джека.
00:09:53Выглядит интересно.
00:09:55Мы видим, что эта модель отлично справилась с удалением Лео из сцены.
00:09:59Хотя на руке Кейт Уинслет видны остаточные артефакты.
00:10:03И боже, это так жутко.
00:10:06Там всё еще видна призрачная рука, придерживающая Кейт за локоть с другой стороны.
00:10:10О нет.
00:10:11Теперь я не смогу это развидеть.
00:10:14Честно говоря, это моя ошибка, так как я не отметил эти конкретные точки
00:10:19для удаления на этапе сегментации.
00:10:21Так что это на моей совести.
00:10:23Мы также видим, что лицо Кейт Уинслет немного искажается.
00:10:26Так что эффект «зловещей долины» здесь определенно присутствует.
00:10:30В целом, я думаю, этот инструмент делает то, что заявлено.
00:10:33Всё зависит от конкретного видео и его характера.
00:10:37Очевидно, мы не можем заставить Морфеуса стоять смирно в этой сцене.
00:10:41Но если посмотреть на другие примеры на странице их проекта, они просто невероятны.
00:10:46Так что я считаю, что у этой модели солидный потенциал, и, возможно, с дополнительным обучением
00:10:51она станет еще лучше.
00:10:52Вот так, друзья.
00:10:53Это модель VOID в двух словах.
00:10:55Честно говоря, мне было очень весело это тестировать.
00:10:58И так как она разработана Netflix, мне безумно любопытно, для чего они будут
00:11:03это использовать?
00:11:04Может ли это использоваться для изменения сюжета видео на основе предпочтений или выбора пользователя?
00:11:09Подобно тому, как Netflix добавил интерактивный опыт типа «выбери свое приключение»
00:11:15в серии «Чёрное зеркало: Брандашмыг»?
00:11:17Помните такое?
00:11:18Кто знает?
00:11:19В любом случае, будет очень интересно наблюдать, как использование этого инструмента будет развиваться
00:11:23в будущем.
00:11:24Ну а что вы думаете об этом фреймворке?
00:11:27Для каких сценариев использования этот инструмент был бы полезен?
00:11:30Поделитесь своими мыслями в комментариях под видео.
00:11:33И если вам нравятся такие технические разборы, пожалуйста, дайте мне знать,
00:11:37нажав кнопку «лайк» под этим видео.
00:11:39А также не забудьте подписаться на наш канал.
00:11:42С вами был Андрес из Better Stack, увидимся в следующих видео.