Как сделать дипфейк видео

Как сделать дипфейк видео

6 лучших Deepfake приложений и инструментов

Как сделать дипфейк видео. Смотреть фото Как сделать дипфейк видео. Смотреть картинку Как сделать дипфейк видео. Картинка про Как сделать дипфейк видео. Фото Как сделать дипфейк видео

Различные методы манипулирования изображениями были введены в 19 веке и позднее применялись к кинофильмам. Эти методы быстро улучшились с цифровым видео.

В начале 1990-х годов исследователи из академических институтов разработали технологию Deepfake, которая впоследствии была доработана разработчиками в онлайн-сообществах. В последнее время подделки Deepfake привлекают большое внимание за их использование в финансовых махинациях, розыгрышах и фальшивых новостях.

Это заставило правительство и промышленность выявлять и ограничивать их незаконное использование. Тем не менее технология имеет большой потенциал, если ее правильно использовать.

Что такое технология Deepfake?

Deepfakes относятся к манипулируемому визуальному контенту, генерируемому сложным искусственным интеллектом, который дает сфабрикованные изображения и звуки, которые кажутся реальными. В большинстве случаев, человек в существующем видео или изображении заменяется на чье-то подобие.

Хотя трудно создать хороший deepfake на обычном компьютере, есть много инструментов, доступных в интернете, чтобы помочь людям сделать достойные deepfakes. Технология все еще находится в зачаточном состоянии, поэтому не ожидайте идеального результата.

Мы тщательно собрали несколько хороших deepfake приложений и инструментов, которые не требуют высокого класса рабочего стола с мощными графическими картами (за исключением одного или двух). Вы можете использовать их как в исследовательских целях, так и просто для развлечения, но не нарушайте чью-либо частную жизнь.

6. Doublicat

Как сделать дипфейк видео. Смотреть фото Как сделать дипфейк видео. Смотреть картинку Как сделать дипфейк видео. Картинка про Как сделать дипфейк видео. Фото Как сделать дипфейк видео

Платформа: Android / iOS
Цена: Бесплатно

Doublicat позволяет вам сделать селфи и поместить свое лицо на мем или GIF в своей библиотеке. Это займет около 5 секунд, чтобы ваше лицо было наложено на лицо Брэда Питта, Леонардо Ди Каприо или Тейлора Свифта.

Вы будете удивлены, увидев, насколько хорошо ваше наложенное лицо принимает те же выражения, что и оригинал. Вы можете переслать результаты своей семье и друзьям или опубликовать их в Instagram.

Вывод будет довольно странным, если будет много движений лица, но в целом это интересный эксперимент. По словам разработчиков приложения, само изображение удаляется с серверов сразу после его обработки. Однако при этом сохраняется представление черт лица.

5. FaceApp

Как сделать дипфейк видео. Смотреть фото Как сделать дипфейк видео. Смотреть картинку Как сделать дипфейк видео. Картинка про Как сделать дипфейк видео. Фото Как сделать дипфейк видео

Платформа: Android / iOS
Цена: Бесплатно

FaceApp разработан российской компанией Wireless Lab. Он использует нейронные сети для генерации высокореалистичных преобразований лиц на фотографиях.

Приложение может преобразить ваше лицо, чтобы заставить его улыбаться, выглядеть старше, выглядеть моложе или просто смены пола, а также многих других захватывающих преобразований. Татуировки, виньетки, размытие объектива и наложение фона также являются частью FaceApp.

В 2018 году приложение привлекло много внимания со стороны трансгендерных и ЛГБТ-сообществ из-за его реалистичных преобразований гендерных изменений. Он также столкнулся с критикой как в социальных сетях, так и в прессе за конфиденциальность пользовательских данных.

4. Deepfakes web β

Как сделать дипфейк видео. Смотреть фото Как сделать дипфейк видео. Смотреть картинку Как сделать дипфейк видео. Картинка про Как сделать дипфейк видео. Фото Как сделать дипфейк видео

С помощью этого инструмента вы можете создавать deepfake видео в интернете. Однако кривая обучения здесь немного больше, чем то, что вы найдете в других приложениях.

Вам нужно зарегистрироваться и загрузить свои видео. Все остальное происходит в облаке, где используются мощные графические процессоры. На изучение видео/изображений и смену лиц уходит почти 4 часа. Вы также можете использовать обученную модель, чтобы менять лица, что занимает около 30 минут.

Качество выходного видео зависит от значений «потерь»: чем ниже значения потерь (при обучении из загруженных видео), тем выше качество. И, конечно, только вы можете получить доступ к своим видео и учебным данным.

3. DeepFaceLab

Как сделать дипфейк видео. Смотреть фото Как сделать дипфейк видео. Смотреть картинку Как сделать дипфейк видео. Картинка про Как сделать дипфейк видео. Фото Как сделать дипфейк видео

Платформа: Windows
Цена: Бесплатный

DeepFaceLab является ведущим программным обеспечением для создания подделок. Она использует новые нейронные сети для замены лиц в видео. Она размещена на GitHub и породила бесчисленное множество видео в интернете.

По словам его разработчиков, более 95% глубоких подделок видео создаются с помощью DeepFaceLab. Его используют несколько популярных каналов YouTube, таких, как Ctrl Shift Face, iFake и Shamook.

DeepFaceLab прекрасно работает, но для его использования необходимы технические знания. Как только вы загрузите и разархивируете инструмент, вы увидите множество папок и ряд командных файлов. Существует папка с именем «workspace», которая содержит все обучающие модели, исходные видео и выходные данные. Инструмент работает с определенными именами и местоположениями файлов, чтобы пакетный файл мог функционировать.

2. FaceSwap

Платформа: Windows | MacOS | Linux
Цена: бесплатно

FaceSwap похож на DeepFaceLab, но предоставляет больше возможностей, лучшую документацию и лучшую онлайн-поддержку. И да, он также доступен на Mac и Linux.

Это инструмент с открытым исходным кодом, наполненный функциональностью для выполнения каждого шага процесса Deepfake, от импорта первоначального видео до создания финального видео Deepfake. Чтобы запустить этот инструмент, вам нужна мощная видеокарта, так как замена лица происходит невероятно медленно.

Работая на Python, Keras и Tensorflow, Faceswap имеет активное сообщество, поддерживающее и разрабатывающее программное обеспечение. Есть много учебников, которые помогут вам начать работу.

1. Zao

Как сделать дипфейк видео. Смотреть фото Как сделать дипфейк видео. Смотреть картинку Как сделать дипфейк видео. Картинка про Как сделать дипфейк видео. Фото Как сделать дипфейк видео

Платформа: Android | iOS
Цена: бесплатно

Технология глубокой подделки Zao позволяет вам модулировать голоса знаменитостей и накладывать свое лицо на тело актера в сцене.

Просто нажмите на одну фотографию и попробуйте тысячи модных причесок, одежды и макияжа. Приложение предоставляет вам множество видеоклипов, нарядов и буквально неограниченные возможности для изучения.

В 2019 году Zao за короткое время приобрел значительную популярность, позволив пользователям обмениваться лицами с любимыми актерами в коротких клипах из телепередач и фильмов. За месяц он стал самым загружаемым бесплатным приложением в Китае. С ростом популярности, его разработчики также столкнулись с критикой политики конфиденциальности приложения.

Это займет всего несколько секунд, чтобы поменять ваше лицо, но так как алгоритм в основном обучен на китайских лицах, это может выглядеть не так естественно, как вы ожидаете.

Тем не менее все эти инструменты демонстрируют, как быстро развивался базовый ИИ: то, что раньше требовало тысячи картинок, чтобы сделать достаточно убедительное глубокое поддельное видео, теперь требует только одного изображения и дает лучшие результаты.

🎥 Делаем DeepFake на коленке: пошаговое практическое руководство

Как сделать дипфейк видео. Смотреть фото Как сделать дипфейк видео. Смотреть картинку Как сделать дипфейк видео. Картинка про Как сделать дипфейк видео. Фото Как сделать дипфейк видео

Сергей Кравченко

Как сделать дипфейк видео. Смотреть фото Как сделать дипфейк видео. Смотреть картинку Как сделать дипфейк видео. Картинка про Как сделать дипфейк видео. Фото Как сделать дипфейк видео

Сейчас термин стал общеупотребительным для обозначения алгоритмов и технологий картографирования лиц и изменения видео. Под DeepFake мы понимаем:

Хотя манипуляции с видео далеко не новое явление, за последние годы произошло два больших изменения:

Для создания DeepFake чаще всего используется две технологии, которые стоит рассмотреть немного подробнее.

При использовании GAN совместно обучаются две конкурирующие нейронные сети: «Дискриминатор» и «Генератор». Затем модель генератора создает искусственные изображения с использованием случайного шума, а дискриминатор обучается различать настоящие образцы и подделки. Если вы выровняете GAN с достаточно большим набором обучающих данных (человеческих лиц), он научится генерировать довольно реалистичные подделки.

Как сделать дипфейк видео. Смотреть фото Как сделать дипфейк видео. Смотреть картинку Как сделать дипфейк видео. Картинка про Как сделать дипфейк видео. Фото Как сделать дипфейк видеоПринцип работы GAN

Автоэнкодеры

Другой популярный подход – использование автоэнкодеров.

Если не вдаваться в подробности, основная идея метода заключается в том, что если у вас есть пара обучающихся отдельно (но с общим кодировщиком) автокодировщиков, два автокодера будут изучать лица как цели, так и источника. Декодер для цели затем можно комбинировать с общим кодировщиком. Если в кодер поступает исходное видео, но он подключен к декодеру для целевого, это генерирует синтетический выходной сигнал с подобием источников и характеристиками цели.

Мобильные приложения

Теперь мы последовательно разберем создание DeepFake на примере трех коммерческих мобильных приложений и сравним результаты.

Reface

На веб-сайте Reface говорится, что программа реализует «прорывную технологию AI/ML с использованием Generative Adversarial Networks», но никакой конкретики не приводится.

Приложение позволяет подставлять лица в одно из множества видео или выбрать собственное видео из интернета. Можно также обрабатывать и сохранять несколько лиц – это дает возможность повторно использовать их без импорта. Поскольку Reface распознает все лица в видео, можно установить отдельное лицо для каждого персонажа.

Большинство функций приложения доступно бесплатно, но чтобы избавиться от водяных знаков, придется оплатить подписку Pro.

Impressions

Приложение накладывает лица известных людей на записанные пользователем видео. Выбрав знаменитость, загрузите ролик, а программа создаст дипфейк-версию.

Impressions также включает каталог аудиозаписей из популярных фильмов и телесериалов, которые можно синхронизировать по губам. Приложение загружает и обрабатывает видео на своих серверах, поэтому для работы требуется подключение к Интернету.

Пока Impressions доступен только на iPhone или iPad, но компания-разработчик утверждает, что скоро появится версия и для Android. Приложение бесплатно при условии, что на клипах остается водяной знак.

Jiggy

Как сделать дипфейк видео. Смотреть фото Как сделать дипфейк видео. Смотреть картинку Как сделать дипфейк видео. Картинка про Как сделать дипфейк видео. Фото Как сделать дипфейк видео

Jiggy позволяет воспользоваться технологией создания дипфейков для развлечения. Приложение предлагает десятки танцевальных видео, в которые можно втиснуть свое или чужое лицо, загрузив фотографию. Jiggy также сканирует верхнюю часть тела, чтобы наложить ее на танцующего персонажа.

Как сделать дипфейк видео. Смотреть фото Как сделать дипфейк видео. Смотреть картинку Как сделать дипфейк видео. Картинка про Как сделать дипфейк видео. Фото Как сделать дипфейк видео

Как и Reface, Jiggy оживляет выражение и движения лица.

Приложения вроде Reface, Impressions и Jiggy позволяют легко попробовать модную технологию, не прибегая к программированию и вообще не вникая в технологические нюансы. Мы на этом не остановимся и далее рассмотрим более полное руководство по созданию DeepFake на коленке.

Делаем DeepFake при помощи модели движения первого порядка за 5 минут

Методология и подход

Модель отслеживает движения головы, разговоры, слежение за глазами и даже движения тела.

Как сделать дипфейк видео. Смотреть фото Как сделать дипфейк видео. Смотреть картинку Как сделать дипфейк видео. Картинка про Как сделать дипфейк видео. Фото Как сделать дипфейк видео

Пошаговое руководство

Чтобы сделать собственный DeepFake, мы используем бесплатный облачный сервис Google Colab . Он основан на Jupyter Notebook и предоставляет всё необходимое для машинного обучения прямо в браузере. Вам понадобится только аккаунт Google.

Шаг 1. Откройте в браузере файл ipynb и скопируйте его на свой Google Диск. Это заранее подготовленный алгоритм машинного обучения.

Как сделать дипфейк видео. Смотреть фото Как сделать дипфейк видео. Смотреть картинку Как сделать дипфейк видео. Картинка про Как сделать дипфейк видео. Фото Как сделать дипфейк видео

Шаг 2. Запустите первый процесс, чтобы скачать ресурсы и настроить параметры модели.

Как сделать дипфейк видео. Смотреть фото Как сделать дипфейк видео. Смотреть картинку Как сделать дипфейк видео. Картинка про Как сделать дипфейк видео. Фото Как сделать дипфейк видео

Как сделать дипфейк видео. Смотреть фото Как сделать дипфейк видео. Смотреть картинку Как сделать дипфейк видео. Картинка про Как сделать дипфейк видео. Фото Как сделать дипфейк видео

Шаг 4. При помощи второго скрипта можно протестировать алгоритм, используя заранее заготовленную коллекцию видео и фото. Выберите исходное изображение, запустите run и дождитесь результатов.

Как сделать дипфейк видео. Смотреть фото Как сделать дипфейк видео. Смотреть картинку Как сделать дипфейк видео. Картинка про Как сделать дипфейк видео. Фото Как сделать дипфейк видео Как сделать дипфейк видео. Смотреть фото Как сделать дипфейк видео. Смотреть картинку Как сделать дипфейк видео. Картинка про Как сделать дипфейк видео. Фото Как сделать дипфейк видео

Шаг 5. Чтобы сделать собственное видео, вам потребуется перетащить в папку проекта изображение и исходное видео для анимации.

Как сделать дипфейк видео. Смотреть фото Как сделать дипфейк видео. Смотреть картинку Как сделать дипфейк видео. Картинка про Как сделать дипфейк видео. Фото Как сделать дипфейк видео

Шаг 6. После этого скопируйте путь к ним, пропишите его в соответствующих полях третьего сценария и нажмите запуск.

Как сделать дипфейк видео. Смотреть фото Как сделать дипфейк видео. Смотреть картинку Как сделать дипфейк видео. Картинка про Как сделать дипфейк видео. Фото Как сделать дипфейк видео

Вуаля, Сталлоне уже требует от вас одежду, ботинки и мотоцикл:

Подводные камни

Представленный способ не универсален и может иногда выдавать неожиданные результаты. Учитывая личный опыт, приведем несколько рекомендаций:

DeepFaceLab

Для ознакомления с технологией создания DeepFakes или для развлечения вполне можно попробовать Reface или Impressions. Этих мобильных приложений хватит, чтобы подшутить над друзьями или сделать забавное видео. Если вы хотите чуть глубже разобраться в технологии, но без дорогого железа и многих часов рендера, стоит попробовать модель движения первого порядка для анимации изображений в Google Colab: алгоритм позволит поэкспериментировать с разными исходниками и параметрами, но также не требователен к ресурсам вашего компьютера. Для более серьезных манипуляций присмотритесь к возможностям DeepFaceLab. Удачи!

Программы, использующие технологию Deepfake. Максимально реалистичная замена лица на видео

Для редактирования видео вы можете использовать Movavi Видеоредактор Плюс.

Вы хотели бы побывать на бразильском карнавале? А может, на космической станции? Или станцевать менуэт на балу в Версале во времена Людовика XIV? Современные технологии позволяют создать видеоролик о вашем пребывании в любой точке мира или другой эпохе. Достаточно лишь найти подходящий видеофрагмент и заменить лицо на видео: вставить туда ваше лицо или лицо человека, которому вы хотите сделать сюрприз.

Технологии, на основе которых выполняется замена лица на видео, получили общее название Deepfake. Буквально слово переводится с английского как «глубокая подделка». Прослеживается аналогия с распространенным термином deep learning, означающим «глубокое обучение».

Фактически дипфейк и есть глубокое обучение искусственного интеллекта, внимательно исследующего черты и мимику объекта, чье лицо необходимо вставить в видео. Алгоритмы, при помощи которых проводится замена лица в видео, строятся по принципу GAN – генеративно-состязательных сетей. Генеративная часть программы отвечает за обучение ИИ (искусственного интеллекта) на основе фото и видео человека, состязательная – сравнивает настоящее изображение с подмененным, добиваясь высокой достоверности результата.

Дипфейки востребованы в рекламе, кино- и игровой индустрии, обучающих видео. К примеру, один из самых удачных дипфейков был создан в Сколково, где «оживили» Мону Лизу. В музее Сальвадора Дали посетителей встречает видео с выступающим из темноты великим художником, рассказывающим о своем творчестве. Очень достоверно выглядит созданный по технологии дипфейк ролик, где герой фильма «Иван Васильевич меняет профессию» Жорж Милославский рекламирует «Сбер».

Лучшие программы для замены лица в видео на смартфоне и ПК – Топ-3

Работать с программами для изменения лица на видео непросто. Первая сложность, возникающая при попытке вставить лицо в видео, связана с разницей в овалах лиц. Если лицо главного героя видео уже, чем у того, чье изображение нужно вставить, при создании дипфейка, придется помучиться: может быть испорчена прическа, нарушены пропорции. Несколько проще провести подмену, если герой оригинального ролика полнее того, чье изображение вставляется. Много времени порой отнимает коррекция цвета и фона видео.

1. Reface

Одно из самых популярных и удобных приложений для создания дипфейков на мобильных устройствах, работающих под управлением Android и iOS. С помощью Reface даже неопытный пользователь легко сгенерирует мем или дружеский шарж. Программа использует универсальную нейросеть, которую разработчики обучили на миллионах изображений из открытых библиотек. Благодаря тому, что пользователю обучать нейросеть не нужно, создание дипфейкового видео или фотографии занимает несколько минут. Приложение вместе с библиотекой анимированных GIF-файлов можно скачать бесплатно.

Прежде чем поменять изображение, необходимо сделать селфи или найти подходящие фотографии в галерее. Главное условие – крупное изображение лица.

После запуска приложения следует выбрать GIF-файл, на котором предстоит заменить лицо. Библиотека программы достаточно велика, GIF-файлы отсортированы по категориям. Реализован поиск по ключевым словам. В некоторых видео несколько героев. В такие GIF-анимации с помощью Reface легко вставить несколько лиц. Удобно, что при желании понравившиеся GIF-файлы можно добавить в Избранное.

Затем на соседней вкладке нужно выбрать лицо (или лица, если в видео будет несколько героев). Приложение быстро рассчитает параметры лица и выполнит замену. На саму операцию по подмене изображения уйдет меньше минуты.

При работе в бесплатной версии пользователю постоянно придется смотреть рекламу, а на готовое видео накладывается водяной знак. Если хочется поменять лицо в GIF-файле, которого нет в библиотеке, придется купить PRO-версию программы. Зато в этом варианте пользователь будет избавлен от рекламы и водяных знаков на видео.

2. DeepFaceLab

Программа для замены лица в видео представляет собой проект с открытым кодом. Заархивированную библиотеку можно бесплатно скачать на сайте github.com. Доступны сборки для Windows, Linux, отдельно – для CentOS.

Процесс создания дипфейка включает этап обучения ИИ, который может занять много времени. Чем мощнее видеокарта и больше оперативной памяти на ПК, тем быстрее будет сгенерирован дипфейк. Минимальные требования – 2 ГБ оперативной памяти с возможностью подкачки и наличие OpenCL-совместимой видеокарты. Но для стабильной работы приложения требуется 8 ГБ и видеокарта с объемом видеопамяти не менее 6 ГБ. В зависимости от параметров видеокарты пользователь выбирает модель работы (SAEHD для 6 ГБ+, Quick96 – при объеме видеопамяти 2-4 GB).

В библиотеке содержатся тестовые видео, пользователь может заменить их своими. Приложение поддерживает форматы MP4, MKV, AVI. Максимальное разрешение – 1080p.

Для обучения ИИ требуется заснять лицо, которое будет вставлено, с тщательно убранными назад волосами, в разных ракурсах, с открытыми и закрытыми глазами. Один из BAT-файлов проекта предназначен для разбивки видео на отдельные кадры, из которых пользователь должен будет удалить лишние.

В проекте предусмотрены инструменты для нарезки видео, в которое будет вставлено лицо. Нужный фрагмент сохраняется вместе со звуковой дорожкой. Чтобы изменить лицо на видео, требуется последовательно запускать пакетные (BAT) файлы согласно инструкции.

Тренировка нейросети на отснятых кадрах длится минимум сутки, а зачастую и больше. Пользователь сам задает количество итераций. Процесс разрешается прерывать, при повторном запуске он будет возобновляться с того же места. Результаты обучения выводятся в виде графика в отдельном окне.

В программе предусмотрено множество тонких настроек. Так, можно задать точность совпадения лиц, вручную совмещать их части. Многие параметры приходится подбирать интуитивно. Готовое видео нуждается в коррекции цвета.

Приложение DeepFaceLab рассчитано на продвинутых пользователей. По мнению специалистов, первый ролик можно создать уже через 7–10 дней после начала знакомства с программой. Но для того, чтобы получить хороший результат, понадобится не меньше месяца. В дальнейшем на создание ролика будет уходить несколько дней.

3. Faceswap

Бесплатный проект, который можно скачать на сайте github.com. Приложение написано на языке Python и предназначено для ПК, работающих под управлением Windows, Linux и MacOS. Предусмотрены функции для разбивки ролика на отдельные кадры и склейки их в целое видео.

Необходимо заснять лицо, которое предстоит вставлять в видео, в разных ракурсах. Первая тренировка ИИ занимает довольно много времени (около суток). По утверждению разработчиков, впоследствии при использовании тех же моделей для обучения нейросети понадобится меньше времени. После вставки изображения в видео требуется цветокоррекция. Программа предназначена для опытных пользователей, знакомых с основами программирования.

При создании дипфейков необходима обработка как исходного, так и результирующего видео. Чтобы быстро вырезать фрагмент из фильма, а при необходимости преобразовать его в GIF-анимацию, проще всего использовать Movavi Видеоредактор Плюс. Специально для таких случаев в приложении предусмотрен инструмент автоматического распознавания и вырезания отдельных сцен.

Готовое видео с замененным лицом также удобно обрабатывать в этой программе. В Movavi Видеоредакторе Плюс множество фильтров для коррекции цвета. Есть готовые шаблоны, позволяющие пользователю с любым уровнем навыков быстро улучшить качество изображения. В редакторе можно работать с несколькими видео- и аудиодорожками: вставлять одно видео в другое, удалять или добавлять аудиотреки, субтитры, если нужно – записывать речь или вокал с микрофона.

Интерфейс видеоредактора интуитивно понятен и логичен. Экспериментируя с настройками Movavi Видеоредактора Плюс, можно повысить достоверность дипфейка и получить клип профессионального качества, порадовав результатами своего творчества родных и друзей.

3 способа сделать дипфейк путем замены лиц на видео

Наверняка вы видели в интернете небольшие коротенькие видео, в которых одно лицо заменено другим. Это и есть так называемые deepfake, основанные на работе искусственного интеллекта, или нейросети.

Что такое дипфейк?

Наибольшей популярностью пользуются короткие отрывки из фильмов, где лицо главного героя заменено на лицо обычного человека. Делают такие дипфейки чаще всего ради прикола, забавы.

Как сделать дипфейк видео. Смотреть фото Как сделать дипфейк видео. Смотреть картинку Как сделать дипфейк видео. Картинка про Как сделать дипфейк видео. Фото Как сделать дипфейк видео

Согласитесь, если бы я не сказал вам, что это не реальные фотографии людей, вы никогда бы не догадались об этом. Но это статичные картинки, а как же происходит то же самое в видео?

Как заменяется лицо в видео?

Прежде чем рассказать как это делается, лучше будет наглядно посмотреть как это выглядит. Вот один из популярных роликов с лицом Илона Маска. Почему-то именно этот персонаж очень часто является героем дипфейков 🙂

Если говорить упрощенно, то в случае с видео работа нейросети заключается в объединении нескольких картинок между собой. Искусственный интеллект анализирует черты лица и характер мимики персонажа на видео, строя из него цифровой шаблон. Потом лицо на фотографии преобразуется в набор чисел, и уже он «натягивается» на шаблон.

Звучит достаточно просто, но на деле за этим стоят довольно серьезные вычислительные мощности и алгоритмы. Ведь помимо совмещения лиц надо еще «подогнать» их черты друг под друга, учесть освещение кожи в оригинальном ролике, добавить смещения из-за движений головы, туловища и пр.

Как самому сделать дипфейк?

Теория – это конечно хорошо, но не ради неё же мы собрались 🙂 Далее расскажу вам про три лучшие бесплатные программы и приложения для замены лиц в видео. Воспользоваться ими может каждый желающий.

Reface

Ранее это приложение для Андроид и iOS называлось Doublicat. Оно получило очень много положительных отзывов от пользователей из разных стран мира и имеет достаточно высокий рейтинг: 4,6 на Google Play и 4,9 на AppStore.

Работать с приложением очень просто:

Как сделать дипфейк видео. Смотреть фото Как сделать дипфейк видео. Смотреть картинку Как сделать дипфейк видео. Картинка про Как сделать дипфейк видео. Фото Как сделать дипфейк видео

В наличии есть как коротенькие видеоклипы, так и анимированные гифки. Их подборки обновляются в приложении практически ежедневно, самые популярные попадают в тренды на главном экране приложения.

Дипфейки получаются очень смешные и прикольные. Их с успехом можно послать друзьям или разместить на своей страничке в соцсети, чтобы всех повеселить. Однако не всегда стоит ожидать полной замены лица героя на своё – там скорее происходит совмещение черт, но всё равно получается очень здорово.

DeepFaceLab

Эта программа для Windows с открытым исходным кодом. Её можно бесплатно скачать с сайта GitHub. Она имеет достаточно серьезные и даже профессиональные настройки по замене лиц, поэтому является, пожалуй, лидером в своей области.

Как сделать дипфейк видео. Смотреть фото Как сделать дипфейк видео. Смотреть картинку Как сделать дипфейк видео. Картинка про Как сделать дипфейк видео. Фото Как сделать дипфейк видео

Вот пример того, как выглядел бы Терминатор, если бы его играл на Шварценеггер, а Сталлоне (создано в DeepFaceLab):

А вот как заменено лицо Джека Николсона лицом Джима Керри в знаменитом фильме «Сияние». Не чудо ли?

На YouTube и TikTok существуют даже специализированные каналы, контентом которых являются дипфейки, созданные в данной программе, и они пользуются огромной популярностью.

FaceSwap

FaceSwap – схожая с DeepFaceLab программа, но помимо Windows её можно установить на MacOS и Linux. Софт тоже полностью бесплатен и тоже свободно скачивается с GitHub.

Как сделать дипфейк видео. Смотреть фото Как сделать дипфейк видео. Смотреть картинку Как сделать дипфейк видео. Картинка про Как сделать дипфейк видео. Фото Как сделать дипфейк видео

FaceSwap имеет серьезный алгоритм замены лиц, требовательный к железу. Поэтому если компьютер у вас достаточно слабый, имеет устаревший CPU и слабую видеокарту, создание дипфейка займет очень много времени.

Программа имеет активное сообщество в сети, благодаря которому в неё постоянно привносятся какие-то новшества, фишки и улучшения. Так же есть много обучающих материалов по работе в FaceSwap, преимущественно англоязычных.

Несмотря на то, что большинство дипфейков создается с ради шутки, прикола, эту технологию можно использовать и со злым умыслом. Именно таким образом можно заставить человека говорить то, чего он никогда не говорил, или делать то, чего он никогда не делал. Вы можете легко манипулировать практически любым цифровым контентом, создавая виртуальные подделки.

Так, например, в Америке справедливо считается, что дипфейки могут представлять угрозу национальной безопасности, и их создание и распространение запрещены в ряде штатов. Поэтому призываю вас применять указанные в статье программы и приложения только в мирных целях, исключительно ради доброй шутки и лучше всего с использованием своего лица, а не лица другого человека, особенного без его разрешения.

Создавая это видео, я научился многому

Технология дипфейков использует глубокие нейронные сети для убедительной замены на видео одного лица другим. У этой технологии есть очевидный потенциал для злонамеренного использования, и она становится всё более распространённой. По поводу социальных и политических последствий этого тренда было написано уже много хороших статей.

И это не одна из них. Вместо этого я сам поближе ознакомлюсь с этой технологией: как работает ПО для дипфейков? Насколько сложно их создавать, и насколько хорошими получаются результаты?

И всё же довольно примечательно, что такой новичок, как я, может создать достаточно убедительное видео, причём так быстро и дёшево. Есть все основания полагать, что дипфейк-техологогия в следующие года будет становиться только лучше, быстрее и дешевле.

В данной статье я проведу вас за руку по моему дипфейк-пути. Я объясню каждый шаг, который необходимо предпринять для создания дипфейк-видео. По пути я буду объяснять, как работает эта технология и какие у неё есть ограничения.

Дипфейкам нужно много вычислительных мощностей и данных

Мы называем эти видео дипфейками [«глубокими подделками»] потому, что они создаются с использованием глубоких нейросетей. За последнее десятилетие специалисты по информатике обнаружили, что нейросети становятся всё более мощными при добавлении дополнительных слоёв из нейронов. Но чтобы раскрыть весь потенциал глубоких нейросетей, нужно очень много данных и огромные вычислительные мощности.

То же верно и для дипфейков. Для данного проекта я арендовал виртуальную машину с четырьмя мощными видеокартами. И даже со всеми этими лошадками на обучение моей модели ушла почти неделя.

Мне также требовалась гора изображений Марка Цукерберга и Дейты. У меня получилось видео длиной 38 сек, но для обучения мне требовались куда как более длинные видеозаписи, причём как Цукерберга, так и Дейты.

Для этого я скачал кучку видео, содержащих их лица: 14 роликов с клипами из «Звёздного пути» и девять роликов с Марком Цукербергом. Среди последних были формальные доклады, несколько интервью по телевизору и даже видео, на котором Цукерберг у себя во дворе готовит барбекю.

Я загрузил все эти клипы в iMovie и удалил кадры, не содержавшие лиц Цукерберга и Дейты. Также я порезал на части самые длинные отрывки. Дипфейк-программе нужно не просто огромное количество изображений, но большое количество разных изображений. Нужна была съёмка лиц с разных ракурсов, с разными выражениями и при разном освещении. Часовое видео, на котором Цукерберг читает доклад, может дать не более ценных кадров, чем пятиминутный его отрезок, поскольку оно снято с одного и того же ракурса, в одном освещении и показывает одно и то же выражение лица. Поэтому я обрезал несколько часов видео до 9 минут с Дейтой и до 7 минут с Цукербергом.

Faceswap: пакет программ для создания дипфейков

Затем настало время использовать ПО для дипфейка. Сначала я попробовал использовать программу DeepFaceLab и у меня получилось создать довольно грубое видео. Затем я попросил совета на форуме SFWdeepfakes, и тогда несколько человек посоветовало мне Faceswap. Люди отметили, что у этой программы больше функций, лучше документация и лучше онлайн-поддержка. Я решил последовать их совету.

Faceswap работает на Linux, Windows и Mac. В пакете есть инструменты для работы на всех этапах создания дипфейка, от импортирования изначальных видеороликов до создания законченного дипфейк-видео. ПО не является интуитивно понятным, однако с ним идёт подробный обучающий материал, покрывающее все шаги процесса. Материал написан создателем Faceswap Мэттом Торой, который также очень здорово помог мне в чате на канале Deepfake в Discord.

Для Faceswap требуется мощная графическая карта. Я знал, что мой MacBook Pro не справится с этим. Я попросил техников нашей редакции арендовать мне виртуальную машину под Linux у лидирующего провайдера облачных сервисов. Я начал с виртуалки с Nvidia K80 GPU и 12GB видеопамяти. Через несколько дней я перешёл на модель с двумя GPU, а потом и на 4 GPU. У неё было четыре Nvidia T4 Tensor Core GPU с 16 Gb памяти в каждой (а ещё 48 CPU и 192 RAM, которые по большей части простаивали).

Рабочий процесс в Faceswap состоит из трёх базовых шагов:

Обучение же легко настроить, и оно практически не требует человеческого участия. Однако для получения хороших результатов могут потребоваться дни или даже недели компьютерного времени. Я начал обучать свою итоговую модель 7 декабря, и она работала до 13 декабря. Возможно, что после ещё одной недели работы качество моего дипфейка улучшилось бы. И это ещё я использовал своего облачного монстра с четырьмя передовыми графическими картами. Если вы работаете на своём компьютере с единственным GPU меньшей мощности, на обучение хорошей модели у вас может уйти много недель.

Итоговый шаг, преобразование, проходит быстро и для человека, и для компьютера. Получив подходящим образом обученную модель, вы можете выдать дипфейк-видео меньше, чем за минуту.

Как работают дипфейки

Перед описанием процесса обучения Faceswap нужно пояснить, как работает технология, лежащая в её основе.

В сердце Faceswap – и других ведущих программных пакетов для создания дипфейков – находится автоэнкодер. Это нейросеть, обученная принимать на вход изображение и выдавать идентичное изображение. Само по себе это умение может быть не таким уж полезным, но, как мы увидим далее, это ключевой строительный кирпичик в процессе создания дипфейка.

Как сделать дипфейк видео. Смотреть фото Как сделать дипфейк видео. Смотреть картинку Как сделать дипфейк видео. Картинка про Как сделать дипфейк видео. Фото Как сделать дипфейк видео

Автоэнкодер структурирован по принципу двух воронок, соединённых узким концом. С одной стороны сети находится энкодер, принимающий изображение и сжимающий его до небольшого числа переменных. В модели, которую я использовал в Faceswap, это 1024 32-битных числа с плавающей запятой. С другой стороны нейросети находится декодер. Он берёт это компактное представление, известное, как «латентное пространство», и пытается развернуть его, получив изначальное изображение.

Искусственно ограничение количества данных, передаваемых от энкодера к декодеру, заставляет две этих сети разработать компактное представление человеческого лица. Энкодер – это что-то вроде алгоритма сжатия с потерями, который пытается сохранить как можно больше информации о лице при ограничениях на объём хранилища. Латентное пространство должно каким-то образом извлечь важные детали, например, в какую сторону смотрит субъект, открыты у него глаза или закрыты, улыбается он или хмурится.

Важно, что автоэнкодеру нужно сохранить только те особенности лица, которые меняются во времени. Ему не нужно хранить неизменные вещи тип цвета глаз или формы носа. Если на каждой фотографии Цукерберга у него голубые глаза, тогда декодер его сети обучится автоматически рисовать его лицо с голубыми глазами. Нет нужды запихивать в тесное латентное пространство информацию, не меняющуюся при переходе от одного изображения к другому. Как мы увидим далее, то, что автоэнкодеры по-разному относятся к постоянным и меняющемся чертам лица, крайне важно для их способности выдавать дипфейки.

Каждому алгоритму для обучения нейросети нужен какой-то способ оценить качество работы сети, чтобы его можно было улучшить. Во многих случаях это делается через обучение с учителем, когда человек обеспечивает правильный ответ для каждого элемента из набора обучающих данных. Автоэнкодеры работают по-другому. Поскольку они просто пытаются воспроизвести собственные входные данные, обучающее ПО может судить об их качестве работы автоматически. На жаргоне машинного обучения это называется обучением без учителя.

Как и любая нейросеть, автоэнкодеры в Faceswap обучаются при помощи обратного распространения. Обучающий алгоритм скармливает определённое изображение в нейросеть и смотрит, какие пиксели на выходе не соответствуют входу. Затем он подсчитывает, какие из нейронов последнего слоя внесли наибольший вклад в ошибки и немного подправляет параметры каждого нейрона так, чтобы он выдавал результаты получше.

Затем эти ошибки распространяются обратно, к предыдущему слою, где параметры каждого нейрона подправляются вновь. Ошибки распространяются таким способом всё дальше назад, пока каждый из параметров нейросети – как у энкодера, так и у декодера – не окажутся исправленными.

Затем обучающий алгоритм скармливает ещё одно изображение сети, и весь процесс повторяется снова. Могут понадобиться сотни тысяч таких повторов для того, чтобы получился автоэнкодер, хорошо воспроизводящий собственный вход.

Как сделать дипфейк видео. Смотреть фото Как сделать дипфейк видео. Смотреть картинку Как сделать дипфейк видео. Картинка про Как сделать дипфейк видео. Фото Как сделать дипфейк видео

ПО для дипфейка работает, параллельно обучая два автоэнкодера, один для оригинального лица, а второй – для нового. Во время процесса обучения каждому автоэнкодеру выдают изображения только одного человека, и он обучается выдавать изображения, очень похожие на оригинал.

Есть, однако, подвох: обе сети используют один и тот же энкодер. Декодеры – нейроны в правой части сети – остаются раздельными, и каждый из них обучается выдавать разное лицо. Но нейроны в левой части сети имеют общие параметры, меняющиеся каждый раз, когда обучается любой из автоэнкодеров. Когда сеть Цукерберга обучается на лице Цукерберга, это меняет половину сети, принадлежащую энкодеру и в сети для Дейты. Каждый раз, когда сеть Дейты обучается на лице Дейты, энкодер Цукерберга наследует эти изменения.

В итоге у двух автоэнкодеров есть один общий энкодер, способный «считывать» либо лицо Цукерберга, либо лицо Дейты. Цель энкодера в том, чтобы использовать одинаковое представление таких вещей, как угол наклона головы или расположение бровей, получил ли он на вход фото Цукерберга или фото Дейты. А это, в свою очередь, означает, что когда вы сжали лицо при помощи энкодера, его можно распаковать при помощи любого декодера.

Как сделать дипфейк видео. Смотреть фото Как сделать дипфейк видео. Смотреть картинку Как сделать дипфейк видео. Картинка про Как сделать дипфейк видео. Фото Как сделать дипфейк видео

Итак, обучив таким способом пару автоэнкодеров, остаётся простой шаг создания дипфейка: вы меняете декодеры местами. Вы кодируете фото Цукерберга, но используете декодер Дейты на шаге декодирования. В итоге получается реконструированная фотография Дейты – но с тем же положением головы и выражением лица, как и у оригинальной фотографии Цукерберга.

Помните, я упоминал, что латентное пространство схватывает переменные черты лица человека – выражение, направление взгляда, расположение бровей – а такие постоянные вещи, как цвет глаз или форма рта выдаёт декодер. Это значит, что если вы закодируете изображение Цукерберга, а потом декодируете его при помощи декодера Дейты, вы получите лицо с постоянными чертами Дейты – к примеру, форму лица – но с выражением и ориентацией оригинального лица Цукерберга.

Применяя эту технику к последовательным кадрам видео с Цукербергом, вы получите новое видео, где лицо Дейты исполняет те же движения – улыбается, моргает, поворачивает голову – которые делал Цукерберг в оригинальном видео.

Эта ситуация симметрична. Когда вы обучаете нейросеть получать фото Цукерберга и выдавать фото Дейты, вы одновременно обучаете её получать фото Дейты и выдавать фото Цукерберга. Инструмент преобразования видео из Faceswap – последний шаг в процессе создания дипфейка – включает полезную галочку «поменять модели местами», позволяющую пользователю поменять местами декодеры. В итоге вместо того, чтобы подставлять лицо Дейты на место лица Цукерберга, программа делает противоположное, выдавая очень смешные видео типа такого:

Обучающие данные

На практике получить хорошие результаты при создании дипфейка нелегко.

Как я уже упомянул, я набрал семь минут видео для Дейты и девять минут для Цукерберга. Затем я использовал инструмент извлечения изображений из Faceswap для нарезки видео и получения обрезанных изображений лиц обоих мужчин. В видео содержится примерно по 30 кадров в секунду, однако я извлекал лишь каждый шестой – эту практику рекомендуют в документации по Faceswap. Всё оттого, что разнообразие изображений значит больше, чем просто их количество, и сохранение каждого кадра привело бы к получению огромного количества очень похожих изображений.

Инструмент извлечения Faceswap выдал достаточно много ложных срабатываний. Также он обнаруживал реальные лица на заднем фоне некоторых кадров. Пару часов я вручную удалял все извлечённые фотографии, не принадлежавшие ни одному из двух моих подопытных. В итоге я получил 2598 изображений лица Дейты и 2224 изображения лица Цукерберга.

И в этот момент, наконец, настало время перейти к реальному обучению модели. Сейчас у Faceswap в комплекте есть 10 различных алгоритмов создания дипфейка, поддерживающих разные размеры изображений и требующие разных вычислительных мощностей. Среди самых неприхотливых есть «легковесная» модель, работающая с изображениями лиц не более 64 пикселей размером. Её можно запускать на машине, имеющей не более 2 Гб видеопамяти. Другие модели работают с изображениями размером 128, 256 или даже 512 пикселей – однако требуют гораздо больше видеопамяти, а также больше времени на обучение.

Я начал обучать модель DFL-SAE, полученную на основе алгоритмов от DeepFaceLab. Однако в документации Faceswap было предупреждение, что эта модель страдает от «утечки идентичности», при которой некоторые черты одного лица могут просачиваться в другое. Мне показалось, что я видел что-то подобное в паре первых пробных видео, поэтому через день я переключился на модель Villain, работающую с изображениями размером 128 пикселей. В руководстве Faceswap её описывают как очень требовательную к VRAM, и как «хороший выбор для желающих получить модель более высокого разрешения без подстройки каких бы то ни было параметров».

Затем я подождал. И ещё подождал. Процесс обучения всё ещё не закончился, когда в пятницу наступил мой дедлайн – и это после шести дней обучения. На тот момент моя модель выдавала достаточно неплохой дипфейк. Скорость прогресса замедлялась, но возможно, что у меня получился бы результат получше, будь у меня ещё неделя компьютерного времени.

Faceswap хорошо приспособлено для долгой вычислительной работы. Если вы запускаете команду на обучение из графического интерфейса, интерфейс программы регулярно обновляет экран предварительного просмотра, где видны примеры того, как ПО создаёт портреты Дейты и Цукерберга. Если вы предпочитаете вести обучение из командной строки, это тоже возможно. В интерфейсе Faceswap есть полезная кнопка «генерировать», выдающая точную команду, которую нужно выполнить для обучения модели с текущими настройками, сделанными в интерфейсе.

Насколько хорошо получился дипфейк?

В процессе обучения Faceswap постоянно выводит числовую оценку «потерь» для каждого из двух автоэнкодеров. Эти оценки показывают, насколько хорошо автоэнкодер Цукерберга может воспроизводить фото Цукерберга – и насколько хорошо автоэнкодер Дейты может воспроизводить фото Дейты. И эти числа всё ещё уменьшались, когда в пятницу я остановил обучения, хотя скорость прогресса значительно замедлилась.

Конечно, на самом-то деле нам важно, насколько хорошо декодер Дейты может превратить лицо Цукерберга в лицо Дейты. Мы не знаем, как «должен» выглядеть конечный результат, поэтому никак нельзя измерить качество работы в точных цифрах. Лучшее, что мы можем сделать – это рассматривать видео и решать, выглядит ли оно реалистично.

Видео выше показывает качество дипфейка на четырёх этапах процесса обучения. Видео за 10 и 12 декабря показывают частично обученную модель Villain. Видео от 6 декабря слева вверху – это ранний тест с другой моделью. Справа внизу – итоговый результат. В процессе обучения детали его лица становились всё чётче и правдоподобнее.

9 декабря, после трёх дней обучения я опубликовал предварительный ролик на внутреннем канале редакции в слаке. Видео было похоже на то, что расположено в левом верхнем углу. Наш гуру дизайна Аурих Лоусон отреагировал на него язвительно.

«В целом выглядит хреново», — написал он, добавив, что оно «не выглядит убедительным. Жду одно из тех видео, которые не выглядят поддельными».

Думаю, что в его критике есть рациональное зерно. Я удивился тому, как быстро Faceswap смогла создавать изображения лиц, которые очень сильно напоминали Брента Спайнера, больше чем Цукерберга. Однако, если присмотреться, вы увидите характерные признаки цифрвого обмана.

На некоторых кадрах граница между поддельным лицом Дейты и головой Цукерберга выглядит не совсем правильно. Иногда видно, как бровь Цукерберга выглядывает из-под лица Дейты. В других местах края поддельного лица закрывают несколько пикселей на ушах Цукерберга. Эти проблемы с композицией, возможно, получится исправить в ручной постобработке человеком – но кому-то понадобиться прокручивать видео кадр за кадром и подправлять маску для каждого.

Однако более фундаментальная проблема состоит в том, что алгоритмы дипфейка пока ещё не в состоянии достаточно хорошо воспроизводить мельчайшие подробности человеческих лиц. Это довольно очевидно, если посмотреть параллельно на начальное и конечное видео. Faceswap удивительно неплохо передал общую структуру лица Дейты. Но даже после недели тренировки лицо выглядит размытым, и важных деталей в нём не хватает. К примеру, ПО для дипфейков с трудом справляется с рисованием зубов человека. Иногда зубы становятся явно видны, а в следующем кадре они пропадают, оставляя черноту.

Одна из основных причин этого в том, что задача Faceswap экспоненциально усложняется при повышении разрешения. Автоэнкодеры неплохо справляются с изображениями размером 64х64 пикселя. Но воспроизводить более мелкие детали изображений 128х128 пикселей – не говоря уже об изображениях размером 256 пикселей или более – уже гораздо сложнее. Возможно, это одна из причин того, почему наиболее впечатляющие дипфейки имеют довольно широкий угол зрения, без крупных планов лиц.

Однако не стоит считать это фундаментальным ограничением технологии дипфейка. В ближайшие годы исследователи вполне могут разработать технологии, способные преодолеть эти ограничения.

Часто основу ПО для дипфейка ошибочно описывают как генеративно-состязательные сети (ГСС), или такие нейросети, которые позволяют ПО «представлять» несуществующих людей, объекты или ландшафты. На самом деле дипфейки работают при помощи автоэнкодеров. Однако последние достижения технологии ГСС говорят о том, что у дипфейков ещё есть возможности для улучшения.

ГСС, впервые появившиеся в 2014 году, могли выдавать только грубые изображения небольшого разрешения. Но в последнее время исследователи придумали, как создавать ГСС, выдающие фотореалистичные изображения размером до 1024 пикселей. Конкретные техники, используемые в этих научных работах, возможно, и неприменимы для создания дипфейка, но легко представить, как кто-либо разработает сходную технологию для автоэнкодеров – или, возможно, совершенно новую архитектуру нейросети, предназначенную для замены лиц.

Перспектива дипфейков

Рост популярности дипфейков очевидно вызывает тревогу. До недавнего времени люди могли с достаточно легко принимать видеозапись с человеком за чистую монету. Появление ПО для создания дипфейков и других цифровых инструментов привело к тому, что мы теперь относимся к видеозаписям со скептицизмом. Если мы видим ролик, в котором человек утверждает что-то скандальное – или раздевается – мы должны рассмотреть возможность того, что некто подделал это видео с целью дискредитации того человека.

Однако мой эксперимент подчёркивает ограничения технологии дипфейков – по крайней мере, в текущем виде. Требуются обширные знания и усилия для создания полностью убедительного виртуального лица. У меня этого не получилось, и я не уверен, что кто-то уже смог изготовить дипфейк-видео, реально неотличимое от настоящего.

Более того, сегодня инструменты типа Faceswap занимаются лишь заменой лиц. Они не меняют лоб, волосы, руки и ноги. И даже если лицо будет идеальным, возможно будет определить дипфейк-видео на основе элементов, которые выглядят не так, как надо.

Однако эти ограничения технологии дипфейков могут и исчезнуть. Через несколько лет ПО, возможно, научится выдавать такие видео, которые невозможно будет отличить от настоящих. Что тогда?

В данном случае полезно будет помнить, что другие типы носителей уже давно легко подделать. Тривиальной задачей будет сделать снимок экрана с электронным письмом, где кто-то пишет что-то, что он на самом деле не писал. И это не привело к росту количества оборванных карьер из-за подложных емейлов, а также не дискредитировало снимки экрана с письмами как доказательства, используемые в публичных обсуждениях.

Но люди знают, что емейлы можно подделать, и ищут дополнительные подтверждения в подобных случаях. Какая цепочка событий привлекла к письмам внимание общественности? Получали ли другие люди копии такого емейла во время его предполагаемого написания? Признал ли предполагаемый автор письма своё авторство, или заявляет о подлоге? Ответы на такие вопросы помогают людям решать, насколько серьёзно можно относиться к опубликованному письму.

Один раз можно обмануться

Так же и с видеороликами. Возможно, будет какой-то краткий период времени, когда обманщики смогут уничтожить карьеру человека, опубликовав видео, где он говорит или делает что-то возмутительное. Но вскоре общество научится относиться к видеозаписям со скептицизмом, если только у ролика не будет какого-то документального подтверждения, свидетелей или других подтверждающих факторов.

Думаю, что это сработает даже в случаях наиболее возмутительных злоупотреблений технологией дипфейка: вставкой лица человека в порнографический ролик. Это очевидно неуважительно и неприемлемо. Но люди волнуются, что такие видео могут уничтожить репутацию и карьеру. Думаю, что это не так.

Ведь в интернете можно найти полно изображений известных личностей (в основном, женщин), головы которых при помощи фотошопа приставлены к телам порнозвёзд. Страдания женщин понятны. Но общественность не заключает автоматически, что эти женщины позировали нагишом – мы знаем о существовании фотошопа и о возможности создания поддельных фотографий.

Мэтт Тора, автор Faceswap, говорит мне, что это соображение было одной из составляющих для его мотивации к созданию пакета. Он считает, что ПО для подмена лиц неизбежно будут разрабатывать. Он надеется, что создав удобный для пользователя инструмент для подмены лиц с открытым кодом, он поможет снять завесу тайны с этой технологией и рассказать общественности о её возможностях и ограничениях. А это, в свою очередь, поможет нам быстрее прийти к той точке, где общественность будет с соответствующей долей скептицизма относиться к видеороликам, которые могут оказаться поддельными.

В долгосрочной перспективе мы рискуем тем, что маятник отношения общественности слишком сильно качнётся в другую сторону, и возможность создания дипфейков уничтожит веру в доказательную силу видеозаписей. Некоторые политики уже взяли в привычку отнекиваться от критики со стороны СМИ, как от «ложных новостей». Эта тактика будет становиться более эффективной с ростом информированности общества по поводу технологии дипфейков.

Как делают deepfake-видео и почему лучше говорить «face swap»

Рассказываем о работе технологии face swap, создании известных сегодня deepfake-видео, как трансфер лиц поможет медиарынку и в каком направлении развивается эта область машинного обучения.

Каждый день из многочисленных Telegram-каналов, изданий об ИТ прилетают новости о создании алгоритмов, работающих над преобразованием контента.

Недавно компания Тимура Бекмамбетова и разработчики робота «Вера» придумали технологию синтеза голосов знаменитостей. Учёные из МФТИ научили компьютер воспроизводить изображения, которые видит человек в данный момент, а компания OpenAI создала алгоритм, пишущий почти осмысленный текст на основе минимальных исходных данных.

Нейросети оперируют и видеоконтентом: генерируют движущиеся пейзажи, убирают объекты или же заставляют танцевать людей на фото.

Сложнее обстоят дела с трансфером человеческих лиц или тел на изображениях. Эту сферу начинают осваивать стартапы, которые создают продукты для оптимизации процессов производства контента: Dowell (проект компании Everypixel Group, Россия), Synthesia (Великобритания), а также RefaceAI — создатели приложений Doublicat и Reflect (Украина).

Есть несколько сервисов вроде Reflect, Doublicat или Morhine, которые работают в реальном времени со статичным форматами или GIF. Недавно китайские разработчики зашли на поле видеоформата и выпустили приложение Zao, которое встраивает лица пользователей в известные фильмы.

В остальном широкая аудитория остаётся непричастной к созданию такого контента и потребляет deepfake-видео, которые выпускают известные продакшн-студии или свободные художники на YouTube.

Существуют разные архитектуры алгоритмов, которые переносят лица с видео на видео. Мы расскажем о нескольких самых распространённых.

Метод перемещения лица, в основе которого — кодировщик и декодировщик. Работает это так:

Один из распространённых кодов для переноса лиц таким методом написал российский разработчик-энтузиаст Иван Перов. В его репозитории DeepFaceLab на GitHub есть подробнейшие руководства с комментариями, системные требования к оборудованию и программному обеспечению и даже видеоинструкция.

В подходе с использованием этого метода улучшить результат можно только вручную, корректируя базы данных перед обучением или на постпродакшене.

Поэтому всё чаще в архитектуру с кодировщиком и декодировщиком вплетаются генеративно-состязательные сети. Их суть заключается в соревновании генератора и дискриминатора (отсюда — GAN, Generative Adversarial Network, генеративно-состязательная сеть).

Генераторы учатся создавать наиболее реалистичную картинку, дискриминаторы — определять, какая из них сгенерированная, а какая оригинальная. По мере того как генераторы обучаются обманывать дискриминатор, изображение получается всё более реалистичным.

Таким образом, кодировщик и декодировщик отвечают за перенос изображения, а дискриминатор от генеративных сетей — за улучшение результата. По этой логике работает архитектура Face Swap GAN, созданная японским разработчиком Shaoanlu.

Ещё один подход — архитектуры с использованием нескольких генеративно-состязательных сетей. Каждая сеть отвечает за свою операцию, что сводит к минимуму количество этапов с применением ручного труда.

Чтобы обучить такую нейросеть, требуется несколько суток и мощный кластер видеокарт. Несмотря на это, такой подход является наиболее перспективным, потому что даёт лучший результат.

Одно из решений, созданных по этой технологии, — FSGAN, которое в скором времени обещает опубликовать в открытом доступе его создатель, израильский исследователь Юваль Ниркин.

Здесь одна нейросеть учится подгонять лицо донора под параметры целевого видео (поворот головы, наклон вбок или вперёд), вторая переносит черты лица, а третья делает image blending (слияние изображений), чтобы картинка была более реалистичной, без разрывов или артефактов.

Сегодня перенос лиц, если он выполняется исключительно алгоритмами, всё ещё заметен человеческом глазу: выдают либо визуальные артефакты, например мимика или положение глаз, либо непохожесть нового лица ни на реципиента, ни на донора — в результате получается третья сущность.

Гладкий трансфер лиц всё ещё обеспечивают не нейросети, а навыки в CGI (многие широко известные сегодня создатели deepfake-видео вроде Corridor Crew и Ctrl Shift Face правят работу алгоритмов вручную на постпродакшене или же совершают манипуляции перед самим обучением).

Как правится контент до или после обучения нейросети, нам рассказал моушн-дизайнер студии Clan Андрей Чаушеску, который несколько месяцев назад создал нашумевший в России ролик с актёром Михаилом Ефремовым в трейлере фильма «Ангелы Чарли».

Недавно он опубликовал новую работу, поместив в фильм «Великий Гэтсби» изображение актёра Сергея Бурунова, который обычно озвучивает Леонардо Ди Каприо в русском дубляже. Свои проекты Андрей делает в программе DeepFaceLab, поэтому мы будем говорить о правках, которые требуются для работы именно с этим алгоритмом.

На этапе препродакшена проводится работа с данными перед началом обучения нейросети. Когда два видео разложены на наборы кадров, нужно отсмотреть эти базы и обратить внимание на несколько моментов.

Во-первых, не все люди могут обменяться друг с другом лицами незаметно. Сегодня переносимая алгоритмами область — от бровей до подбородка и от уха до уха (то есть уши, лоб и волосы остаются в целевом видео родными). Поэтому на схожесть результата влияют влияют пол, возраст, цвет кожи и волос, а также комплекция и форма лица.

Некоторые студии, делая поддельные видео с известными артистами, ищут максимально похожих на них людей: ребята из Corridor нашли человека, очень похожего на Тома Круза, а актёр, играющий в ролике с Киану Ривзом, надел чёрный парик, чтобы воссоздать образ актера.

Ctrl Shift Face недавно выпустил три ролика с разными актёрами в одной сцене из фильма «Старикам здесь не место». Лучше всего получился Арнольд Шварценеггер, так как форма его головы больше всего подходит под форму актёра Хавьера Бардема, в отличие от Дефо и Ди Каприо.

Во-вторых, если в донорском видео лицо всегда анфас, а в целевом голова поворачивается и виден профиль, алгоритм не перенесёт лицо корректно, потому что не знает, как выглядит человек в профиль. Так же обстоят дела с положением глаз, движением губ, мимикой и эмоциями (смех или плач): оба человека должны побывать в максимально совпадающем диапазоне ситуаций.

Часто нейросеть некорректно распознаёт глаза. Конечно, больше пользы принесёт подбор фотографий с нужным положением глаз, хорошо считываемой мимикой, но «обман» нейросети тоже может дать хороший результат.

После обучения то, что не углядели в начале, и то, в чём оказался бессилен алгоритм, докрашивается на постпродакшене. В ролике с Сергеем Буруновым Андрею пришлось столкнуться с проблемой разной формы лица двух актеров, которую он решал уже на завершающем этапе.

Самый быстрый способ сделать поддельный ролик — наложить лицо, не выходя за рамки головы человека с целевого видео (в данном случае — Ди Каприо). Лицо Бурунова шире, и, как мне кажется, сходство терялось, поэтому приходилось вручную масками прорисовывать его овал.

Основная программа, которой я пользуюсь на постпродакшене, — Adobe After Effects. Я делаю цветокоррекцию, добавляю размытие для имитации движения камеры и шум для эффекта кинопленки.

Отдельная история — работа с изображениями, в которых перед лицом есть искажающая преграда: скафандр, искривлённое зеркало или очки. Тут единственный выход — ПО вроде After Effects, Cinema 4D.

В них вручную создаётся текстура материала, которая затем ставится перед лицом, чтобы выглядело, как в оригинале. Из-за таких ограничений часто бывает, что очень классные сцены фильмов сложно использовать в deepfake-роликах.

Для YouTube-формата, когда каждый вышедший ролик становится информационным поводом и предполагает вау-реакцию аудитории, такой подход применим. Видео можно долго шлифовать, а потом ещё отдельно описывать процесс, как это часто делают в Corridor Crew.

Очевидно, рынок сервисов для пользователей не предполагает какой-либо постпродакшн: результат нужен сейчас. Того же хочет и профессиональная индустрия (кино и реклама), которая руками переносить лица уже умеет, но сейчас фокусируется на удешевлении и автоматизации процесса.

Монетизируется технология face swap по двум стандартным моделям. Для b2c-аудитории создаются развлекательные приложения вроде Zao или Doublicat. Для b2b-аудитории — продукты, которые используются для оптимизации продакшена, маркетинговых коммуникаций, персонализации брендированного контента или в игровой индустрии.

Среди них Dowell и RefaceAI, создатели которых рассказали, по какой логике работает их продукт и какую нишу на рынке они планируют освоить.

Dowell вырос в офисе компании Everypixel Group, которая занимается производством контента и создаёт продукты на основе искусственного интеллекта. Изучив рынок, создатели стартапа поняли, что развитие продуктов для пользователей и демонстрация deppfake-публикаций на YouTube не их путь, и проработали сценарии использования в киноиндустрии и маркетинге.

Один из кейсов они реализовали с BBDO — рекламный ролик с изображением генерального директора крупного автомобильного бренда, в съёмках которого этот человек не принимал непосредственного участия.

Жизненный цикл сервисов, которые позволяют заменять лица, ограничен: пользователи не будут заходить туда каждый день. Это инструмент, который позволяет «пошуметь», рассказать о себе, оседлать волну хайпа. Но мы решили сосредоточиться на решении бизнес-задач.

Во-первых, это маркетинговая коммуникация брендов с аудиторией. Мы создаём персонализированный контент и с помощью видео помогаем обрести их клиентам пользовательский опыт перед покупкой.

Во-вторых, решаем проблему увеличения доходности агентств, работающих со звёздами, их клиентов. Представьте, что Джордж Клуни одновременно снимается в голливудском фильме, рекламном ролике Nespresso и проводит презентацию нового Mercedes в Штутгарте.

В таком формате доступ к «телу» звёзд появится у тех брендов и организаций (вроде благотворительных фондов), которые никогда не могли себе позволить пригласить звезду живьём.

На старте разработки продукта изучение алгоритмов, находящихся в открытом доступе, помогло нам понять логику работы, увидеть слабые места, но зависеть от чужого кода — тупиковый путь. Это чёрный ящик, содержание которого слабо можно представить, результат будет непредсказуемым.

В процессе собственных разработок мы одновременно проводили несколько исследований. Во-первых, искали влияние одних признаков и черт лица на другие, чтобы ими можно было управлять независимо друг от друга, по отдельности переносить глаза, нос, форму лица и губы.

Во-вторых, мы разделяем персону (черты лица) и контент (условия, в которой лицо появляется: свет, сюжет, эмоции), после чего можем взять персону и поместить её в те условия, которые нам нужны.

Чем страдают все открытые алгоритмы, так это маленьким разрешением переносимой области — 256 на 256 пикселей. Продакшн-студии работают с более качественными изображениями, и здесь мы задались целью увеличить область до стороны в 1024 пикселей.

Проблему можно решить, обучив нейросеть наращивать разрешение с 256 до 1024 пикселей и с помощью дискриминатора оценивать, насколько хорошо это получилось сделать. По такому же принципу можно «деблюрить» изображения, делая из размытых чёткие.

DeepFake-туториал: создаем собственный дипфейк в DeepFaceLab

Как сделать дипфейк видео. Смотреть фото Как сделать дипфейк видео. Смотреть картинку Как сделать дипфейк видео. Картинка про Как сделать дипфейк видео. Фото Как сделать дипфейк видео

Библиотека программиста

Как сделать дипфейк видео. Смотреть фото Как сделать дипфейк видео. Смотреть картинку Как сделать дипфейк видео. Картинка про Как сделать дипфейк видео. Фото Как сделать дипфейк видео

DeepFake – технология синтеза изображения, основанная на искусственном интеллекте и используемая для замены элементов изображения на желаемые образы. Если вы не слышали о дипфейках, посмотрите приведенный ниже видеоролик. В нём актёр Джим Мескимен читает стихотворение «Пожалейте бедного пародиста» в двадцати лицах знаменитостей.

Название технологии – объединение терминов «глубокое обучение» (англ. Deep Learning) и «подделка» (англ. Fake). В большинстве случаев в основе метода лежат генеративно-состязательные нейросети (GAN). Одна часть алгоритма учится на фотографиях объекта и создает изображение, буквально «состязаясь» со второй частью алгоритма, пока та не начнет путать копию с оригиналом.

В следующем видео показаны процессы, происходящие за кулисами обучения нейросети. Как пишет автор проекта Sham00K, на итоговое видео потрачено более 250 часов работы, использовались 1200 часов съемочных материалов и 300 тыс. изображений. Объем сгенерированных данных составил приблизительно 1 Тб.

Области применения технологии

Уже имеются целые YouTube- и Reddit-каналы c дипфейк-роликами. Технология DeepFake может применяться для самых разных целей.

Кинопроизводство. Производство фильмов сегодня – крайне затратный процесс с арендой камер, студий и оплатой работы актёров. Развитие технологии DeepFake позволит сократить затраты на съемочный процесс, монтаж и спецэффекты.

Локализация рекламы. Достаточно записать один рекламный ролик со знаменитостью, после чего записанное лицо можно переносить в видео с местными актерами, произносящими рекламные слоганы на родном языке. То есть можно добиться эффекта, как будто знаменитость говорит на языке страны дистрибуции продукта.

Виртуальная и дополненная реальности. Технология переноса мимики может применяться для создания цифровых двойников в играх, виртуальной и дополненной реальностях. Источниками лица могут также служить знаменитости или участники игры. Это повышает эмоциональное вовлечение.

Очевидно, что технология должна использоваться с особой осторожностью. Злоумышленниками могут преследоваться цели компрометирования личности или создания фейковых новостей. В начале октября 2019 г. члены Комитета по разведке Сената США призвали крупные технологические компании разработать план для борьбы с дипфейками. Ранее, в сентябре этого года, Google создала специальный датасет дипфейков.

Отметим, что данная публикация подготовлена исключительно в исследовательских целях.

Создадим собственный DeepFake

Для синтеза дипфейка мы будем использовать популярную библиотеку DeepFaceLab. Библиотека стремительно развивается, сейчас доступно несколько релизов:

Ниже описан базовый процесс создания дипфейка на примере Windows.

Важно понимать, что на качество результата влияет множество свойств исходных видеофайлов (разрешение и длительность, разнообразность мимики персонажей, освещение и т. д.). За любыми подробностями и деталями настроек перенаправляем к оригинальному репозиторию.

Системные требования для DeepFaceLab

Минимальные системные требования для работы с инструментом:

Рекомендуемые системные требования:

Алгоритм работы с DeepFaceLab

Предварительно договоримся о терминологии:

Архив сборки нужно распаковать как можно ближе к корню системного диска. После распаковки в каталоге DeepFaceLab вы найдете множество bat-файлов.

Как сделать дипфейк видео. Смотреть фото Как сделать дипфейк видео. Смотреть картинку Как сделать дипфейк видео. Картинка про Как сделать дипфейк видео. Фото Как сделать дипфейк видеоПримерная структура каталога workspace

Папка _internal используется алгоритмом.

data_dst – это папка, в которой будут храниться кадры, извлеченные из файла data_dst.mp4 – целевого видео, в котором мы меняем местами лица. Папка также будет содержать две подпапки, которые создаются после запуска «извлечения» лиц:

Как вы могли заметить, bat-файлы в корне распакованного каталога имеют в начале имени номер. Каждый номер соответствует определенному шагу выполнения алгоритма. Некоторые пункты опциональны. Пройдемся по этой последовательности.

1. Очистка рабочего каталога

2. Извлечение кадров из видеофайла источника (data_src.mp4)

Пропускаем пункт, нажав Enter, чтобы извлечь все кадры.

3. Извлечение кадров сцены для переноса лица (опционально)

4. Составление выборки лиц источника

Пример вывода программы при запуске на видеокарте NVIDIA GeForce 940MX:

4.1. Удаляем большие группы некорректных кадров

Как сделать дипфейк видео. Смотреть фото Как сделать дипфейк видео. Смотреть картинку Как сделать дипфейк видео. Картинка про Как сделать дипфейк видео. Фото Как сделать дипфейк видео

На этом этапе необходимо удалить крупные группы некорректных кадров, чтобы далее не тратить на них вычислительный ресурс. К некорректным кадрам относятся все, что не содержат четко различимого лица. Лицо также не должно быть закрыто предметом, волосами и пр. Не тратьте время на мелкие группы. Мы удалим их на следующем шаге.

4.2. Сортировка и удаление прочих некорректных кадров

Файл 4.2) data_src sort.bat служит для для сортировки и выявления групп некорректных кадров. Не закрывая обозреватель, последовательно запускайте bat-файл с нужной опцией и удаляйте группы некорректных кадров (обычно находятся в конце). Доступные опции:

4.2) data_src util faceset enhance.bat использует специальный алгоритм машинного обучения для масштабирования/«улучшения» качества представления лиц в наборе данных. Полезно, если кадры немного размыты и вы хотите сделать их более резкими.

4.2) data_src util faceset pack.bat и 4.2) data_src util faceset unpack.bat служат для упаковки (распаковки) лиц из папки aligned в один файл. Используется для подготовки настраиваемого набора данных для предварительного обучения, упрощает совместное использование в виде одного файла и значительно сокращает время загрузки набора данных (секунды вместо минут).

4.2.other) data_src util recover original filename возвращает имена изображений лиц к исходному порядку/именам файлов. Запускать не обязательно – обучение и слияние будут выполняться независимо от имен файлов источника.

5. Составление выборки лиц принимающей сцены (dst)

5) data_dst faceset extract.bat выполняет автоматическое извлечение с использованием алгоритма S3FD.

5) data_dst faceset extract + manual fix.bat позволяет вручную указать контуры лица на кадрах, где лицо не было определено. При этом в конце извлечения файлов открыто окно ручного исправления контуров. Элементы управления описаны вверху окна (вызываются клавишей H ).

Как сделать дипфейк видео. Смотреть фото Как сделать дипфейк видео. Смотреть картинку Как сделать дипфейк видео. Картинка про Как сделать дипфейк видео. Фото Как сделать дипфейк видео

5.1. Извлечение лиц вручную (manual extractor)

После запуска 5) data_dst faceset extract MANUAL.bat откроется окно, в котором вы можете вручную найти лица, которые хотите извлечь или переизвлечь:

5.2. Очистка данных сцены

Перейдите в папку data_dst/align и используйте следующую, откройте Powershell и с помощью следующей команды удалите суффиксы _0 из имен файлов с размеченными лицами:

Дождитесь завершение процесса – по окончании снова отобразится адрес папки.

Если вы хотите еще больше улучшить качество разметки, используйте альтернативную модель разметки XSeg, работа с которой подробно описана в п. 5.3 официального руководства.

6. Обучение

Обучение нейросети – самая времязатратная часть, которая может длиться часы и сутки. Для тренировки необходимо выбрать одну из моделей. Выбор и качество результата определяются объемом памяти видеокарты. В текущей версии программы доступно две модели:

При первом запуске программа попросит указать параметры, применяемые при последующих запусках (при нажатии Enter используются значения по умолчанию). Большинство параметров понятно интуитивно, прочие – описаны в руководстве.

Обратите внимание, что некоторые параметры не могут быть изменены после начала обучения, например:

Рассмотрим также некоторые другие параметры модели.

Autobackup every N hour : автоматическое резервное копирование вашей модели каждые N часов. По умолчанию отключено.

Target iteration : модель прекратит обучение после достижения заданного количества итераций, например, если вы хотите обучать модель только 100 тыс. итераций, вы должны ввести значение 100000. Если оставить значение равным 0, модель будет работать до тех пор, пока вы не остановите ее вручную.

Flip faces randomly : полезный вариант в случаях, когда в исходном наборе данных нет всех необходимых углов поворота лица.

Batch_size : параметр влияет на количество лиц, сравниваемых друг с другом на каждой итерации. Наименьшее значение — 2, но вы можете увеличить значение, если с этим справится ваш графический процессор. Чем выше разрешение, размеры и больше особенностей у моделей, тем больше потребуется VRAM, поэтому может потребоваться меньший размер пакета. Рекомендуется не использовать значение ниже 4. Для начальной стадии можно установить более низкое значение, чтобы ускорить начальное обучение, а затем повысить его. Оптимальные значения – от 6 до 12.

Прочие настройки подробно описаны в оригинальном руководстве.

При корректных условиях параллельно с консолью откроется окно Training preview, в котором будет отображаться процесс обучения и кривая ошибки. Снижение кривой отражает прогресс тренировки. Кнопка p (английская раскладка) обновляет предпросмотр.

Как сделать дипфейк видео. Смотреть фото Как сделать дипфейк видео. Смотреть картинку Как сделать дипфейк видео. Картинка про Как сделать дипфейк видео. Фото Как сделать дипфейк видео

Процесс обучения можно прерывать, нажимая Enter в окне Training preview, и запускать в любое время, модель будет продолжать обучаться с той же точки. Чем дольше длится тренировка, тем лучший результат мы получим.

7. Наложение лиц

В новой версии DeepFaceLab доступно множество режимов наложения с различными масками и дополнительными настройками. В качестве параметров для первой пробы можно использовать параметры по умолчанию (по нажатию Enter) и варьировать их, если вас не устроит результат соединения сцены и нового лица.

8. Склейка кадров в видео

Если результат вас не удовлетворил, попробуйте разные опции наложения, либо продолжите тренировку для повышения четкости, используйте другую модель или другие видео с исходным лицом. О неописанных особенностях работы с библиотекой, прочих советах и хитростях читайте в оригинальном руководстве и комментариях к нему.

Что такое deepfake-видео (Face Swap) и как его сделать

Как сделать дипфейк видео. Смотреть фото Как сделать дипфейк видео. Смотреть картинку Как сделать дипфейк видео. Картинка про Как сделать дипфейк видео. Фото Как сделать дипфейк видео

Сотрудник аналитического отдела Falcongaze

С момента появления дипфейки вызывали много вопросов касательно своей легитимности и опасности. По поводу этих вопросов ходят весьма противоречивые мнения: кто-то считает, что это всё невинная шалость и что в интернете должна быть свобода, кто-то, наоборот, видит в дипфейках лишь угрозу и считает, что их нужно полностью запретить. Кто же прав?

Чтобы это понять, нужно разобраться в том, что такое дипфейки и где они применяются. Павел Пармон, сотрудник аналитического отдела Falcongaze, изучил этот вопрос.

Вы узнаете:

Что такое дипфейки?

Дипфейки — это синтетически произведённый медиаконтент, в котором оригинальный человек (тот, кто изначально находится на фото или видео) замещается другим человеком.

Началом истории дипфейков можно считать 19 век, когда разработали методики манипуляций над фото. Далее технология развивалась как в научных учреждениях, так и простыми энтузиастами интернет-сообщества. Сам термин «дипфейки» появился лишь в 2017 году, когда на Reddit Популярная на западе интернет-платформа для агрегации новостей и дискуссий. появилась ветка r/deepfakes. В основном там выкладывали контент либо порнографического содержания, в которых к актёрам «приклеивали» лица знаменитостей, либо видео, в которых лицо Николаса Кейджа вставляли в различные фильмы.

Как сделать дипфейк видео. Смотреть фото Как сделать дипфейк видео. Смотреть картинку Как сделать дипфейк видео. Картинка про Как сделать дипфейк видео. Фото Как сделать дипфейк видео

Как они работают?

В основе работы дипфейк-алгоритмов лежит нейросеть-автокодировщик. Позднее эту нейросеть улучшили генеративно-состязательной сетью.

Если рассматривать принцип создания дипфейков в общих чертах, то основные этапы в создании дипфейков следующие:

Где применяются дипфейки?

Практически везде, где можно использовать видео или звук. Фильмы, видео, записи голосов — во всех этих сферах применяются дипфейки.

Например, в фильме «Хан Соло. Звёздные войны: истории» с помощью дипфейк-технологий «омолодили» Хана Соло, которого играл Харрисон Форд.

Но основная доля использования дипфейков приходится на развлекательный или политический видеоконтент. Как правило, это либо создание видеомемов или видео категории «18+», в которые подставляют лица знаменитостей, либо манипуляции с видеозаписями политиков.

Как создать свои дипфейки?

На просторах сети есть куча программ, функция которых — создание дипфейков. С помощью них можно сделать многое, например, заменить лицо на видео на совершенно другого человека или изменить движения губ говорящего. А изменение движения губ и наложение новой звуковой дорожки с голосом говорящего (которую, кстати, тоже можно сделать с помощью отдельных дипфейк-программ) позволят сделать контент, в котором человек говорит совершенно другие вещи, нежели в оригинале.

Наиболее популярной программой для создания такого контента является DeepFaceLab. По заявлениям создателей продукта, с его помощью создаётся около 95% дипфейк-видеоконтента. Скачать программу можно с гитхаба.

Однако есть и другие программы, такие как:

У каждой программы есть свои нюансы, будь то необходимость технических знаний разного уровня или оплаты подписки. Но свою функцию они выполняют неплохо.

Теоретически можно создать свою нейросеть и её обучить. Однако такой вариант — дорогой, сложный и маловероятный в сегодняшних реалиях, поэтому в материале было решено опустить его как околомифический.

Как дипфейки влияют на жизнь людей?

В основном произведённый с помощью дипфейк-технологий контент не оказывает особого влияния на жизнь человека. Да, те же мемы развлекают и веселят людей, но какого-то вау-эффекта не будет.

Однако дипфейки, созданные в политических целях или нацеленные на конкретного человека, могут оказать ощутимый эффект на цель. Например, во время избирательной кампании в законодательное собрание Дели в феврале 2020 года партия Джаната использовала дипфейк-технологии для создания версии речи лидера на диалекте харьянви. В итоге изначально англоязычное видео с помощью технологии липсинка Синхронизация движения губ со звуком. стало доступным для понимания людям, которые говорят на этом диалекте и английского не знают.

Как сделать дипфейк видео. Смотреть фото Как сделать дипфейк видео. Смотреть картинку Как сделать дипфейк видео. Картинка про Как сделать дипфейк видео. Фото Как сделать дипфейк видео

Аналогично можно и нанести ущерб. С помощью дипфейк-технологий можно обучить нейросеть воспроизводить необходимый текст голосом нужного человека, потом применить те же методы, что и в случае с индийской партии — и можно распространить видео, как человек говорит то, что нужно, без участия его самого.

Дипфейки также могут стать (и уже становятся) инструментом для мошенничества. Например, недавно мошенники запустили рекламу мастер-класса по якобы успешному использованию нейросетей и блокчейн-технологий. Всё это якобы разработано командой Dbrain, а на видео проект представляет Дмитрий Мацкевич. Только вот ни Dbrain, ни сам Дмитрий к этому проекту, который предлагает быстрые крупные доходы с минимальным капиталовложением, отношения никакого не имеют. Просто лицо спикера с помощью дипфейк-технологий «приклеили» к другому человеку, который уже от лица Дмитрия и рассказывал о проекте и зазывал людей на мастер-класс.

Или, например, случай летом 2019 года, когда мошенники применили дипфейк-технологии, чтобы сделать видео с участием Дмитрия Нагиева. В этом видео он предлагал поучаствовать в розыгрыше ценного приза. Перейдя на сайт розыгрыша, пользователи попадали на фишинговую страницу и, как правило, теряли деньги.

Вместо резюме

Дипфейки — это не добро, но и не зло. Это всего лишь инструмент. С его помощью можно как сделать смешной видеомем или донести важную информацию конкретной группе людей. Но в то же время можно нанести кому-то вред.

В итоге всё, как и всегда, зависит исключительно от того, к кому в руки этот инструмент попадёт. К сожалению, контролировать и регулировать распространение и использование подобных программ очень сложно.

Поэтому мы очень надеемся, что дипфейк-технологии подарят людям как можно больше полезных и весёлых видео и как можно меньше будут использоваться со злым умыслом.

Как создать дипфейк?

Подробная инструкция по созданию дипфейк видео с использованием DeepFaceLab 2 без мощного железа.

Как сделать дипфейк видео. Смотреть фото Как сделать дипфейк видео. Смотреть картинку Как сделать дипфейк видео. Картинка про Как сделать дипфейк видео. Фото Как сделать дипфейк видео

Если вы думали, что для создания качественного дипфейка вам нужен супер-компьютер или как минимум мощная видеокарта, то я вас обрадую. Сегодня я расскажу, как создать дипфейк, даже если у вас компьютер из начала 2000-ых.

Как сделать дипфейк видео. Смотреть фото Как сделать дипфейк видео. Смотреть картинку Как сделать дипфейк видео. Картинка про Как сделать дипфейк видео. Фото Как сделать дипфейк видео

Как сделать дипфейк видео. Смотреть фото Как сделать дипфейк видео. Смотреть картинку Как сделать дипфейк видео. Картинка про Как сделать дипфейк видео. Фото Как сделать дипфейк видео

Раньше, чтобы добиться подобного качества, нужно было быть фотошопером от бога. Сначала разбить видео на кадры, на каждом кадре заменить лицо, слепить полученные кадры снова в видео, вот и дипфейк готов. Никто этим не занимался, так как это слишком сложно. Теперь у нас есть нейронные сети, которые позволяют все это сделать за нас.

Вроде все хорошо, но есть загвоздки:

Помимо майнинга, видеокарты отлично справляются с созданием дипфейков. Но что делать, если у вас вместо нормальной видеокарты Intel HD Graphics. Не покупать же новую в эпоху майнинга 😄

Google Colab

К счастью, одну проблему легко решить. Google предоставляет бесплатный облачный сервис Google Colaboratory, который позволяет вам запускать код на Python из браузера, используя при этом мощный графический процессор.

Colab запускается из браузера, и если вы закроете вкладку, то работа программы остановится. На создание одного дипфейка уходит от 2 дней. Все это время компьютер должен работать.

При этом время непрерывной сессии 12 часов. Когда вы подключаетесь к Colab, специальный алгоритм решает давать вам ресурсы GPU или нет. Если вам выделяют ресурсы, то они доступны вам 12 часов. Далее вы снова встаете в очередь. Но на практике это время еще меньше.

Частично эту проблему решает создание нескольких аккаунтов. Но и это не всегда помогает, я создал пять аккаунтов и все равно мог не получить сервер.

Не пугайтесь этой фразы «у вас в распоряжении оказывается сервер». На самом деле все намного проще, так как все управление происходит с помощью сайта. С этим справится даже школьник, поверьте.

Забегая вперед скажу, что существует Pro версия сервиса за 10$, которая лишина многих этих недостатков. Но и с бесплатной версией вполне можно работать.

DeepFaceLab (DFL)

Для создания дипфейка мы будем использовать проект DeepFaceLab [DFL 2.0], а точнее его слегка урезанную версию для Colab. У полноценной версии DFL есть визуальный редактор, который упрощает создание дипфейка.

Давайте для начала разберемся, как устроено создание дипфейка в общих чертах.

Общее описание работы

Для создания дипфейка нам нужна обученная модель нейронной сети. Именно нейронная сеть будет «превращать» одно лицо в другое. А чтобы она смогла это делать, ее нужно натренировать.

Тренировка довольно долгий процесс, обычно занимает несколько дней. Чем дольше тренируется модель, тем более правдоподобный получится результат.

Далее на наборах лиц происходит тренировка модели нейронной сети. Проще говоря, нейронная сеть сама учится что надо изменить, чтобы из первого человка сделать второго.

Тренировка не быстрый итеративный процесс. На первых итерациях у нейронной сети будет получаться какая-то каша, но с каждой новой итерацией нейронная сеть будет приближаться к необходимому результату.

Структура проекта

Я уже упоминал, что нам нужны видео, из которых мы будем извлекать лица:

Оптимальная длина ролика 5-10 минут. Чем длиннее будут ваши видео, тем сложнее и дольше будет создание дипфейка.

Также в процессе обучения может закончиться память на гугл-диске, что приведет к проблемам.

Подготовка к созданию

Перед обучением, нам необходимо получить изображения, из которых DFL сформирует наборы лиц для обучения. Для примера, создадим дипфейк из фрагмента видео Marvel. В нем железный человек забирает у человека-паука костюм.

Получаем набор data_src

Непосредственно набор для нас сделает DFL. От нас требуется предоставить для него изображения, из которых DFL вырежет квадраты с лицами.

Советы для записи видео

Получаем набор data_dst

Загружаем workspace в Google Drive

Нам нужно загрузить нашу папку в Google Drive, чтобы Google Colab мог получить к ней доступ.

Теперь загрузите этот архив на гугл диск.

Создание Deepfake

Переходим в Colab

Открываем проект Colab в браузере.

Установка DFL

Как сделать дипфейк видео. Смотреть фото Как сделать дипфейк видео. Смотреть картинку Как сделать дипфейк видео. Картинка про Как сделать дипфейк видео. Фото Как сделать дипфейк видео

Иногда везет и попадается лучшая из доступных GPU: Nvidea T4

Эта GPU обеспечивают скорость тренировки 0.6-0.7 секунд за итерацию обучения модели. Остальные дают 1.3-1.4 секунд за итерацию. В идеале нужно выполнить 300000+ итераций обучения модели, так что выгоду считайте сами.

Переходим к пункту “Install or update DeepFaceLab”. И жмем на кнопку “Скрыта одна ячейка”, после жмем на треугольник запуска.

Как сделать дипфейк видео. Смотреть фото Как сделать дипфейк видео. Смотреть картинку Как сделать дипфейк видео. Картинка про Как сделать дипфейк видео. Фото Как сделать дипфейк видеоНачинается процесс установки

В процессе установки могут возникать ошибки подобного вида:

Как сделать дипфейк видео. Смотреть фото Как сделать дипфейк видео. Смотреть картинку Как сделать дипфейк видео. Картинка про Как сделать дипфейк видео. Фото Как сделать дипфейк видео

Не обращайте на них внимания, они не повлияют на работу.

Загрузка проекта

Через минут 5, после установки, переходим к “Manage workspace”. Нажимаем на плашку “скрыто 5 ячеек”.

Colab работает как докер, как только вы закрываете проект или браузер, все данные стираются. Поэтому держите браузер открытым, во время работы. Но даже несмотря на это могут происходить сбои, а процесс обучения довольно длинный, поэтому предусмотрено создание бэкапов на гугл диск каждый час.

Нам нужно загрузить workspace.zip с гугл диска. После запуска вам необходимо перейти по ссылке из консоли и разрешить доступ к диску.

Как сделать дипфейк видео. Смотреть фото Как сделать дипфейк видео. Смотреть картинку Как сделать дипфейк видео. Картинка про Как сделать дипфейк видео. Фото Как сделать дипфейк видеоПереходим по ссылке Как сделать дипфейк видео. Смотреть фото Как сделать дипфейк видео. Смотреть картинку Как сделать дипфейк видео. Картинка про Как сделать дипфейк видео. Фото Как сделать дипфейк видеоПолучаем код доступа, который копируем в Colab

Если все прошло успешно, то вы должны увидеть папку вашего проекта. Для этого есть кнопка слева под логотипом Colab.

Как сделать дипфейк видео. Смотреть фото Как сделать дипфейк видео. Смотреть картинку Как сделать дипфейк видео. Картинка про Как сделать дипфейк видео. Фото Как сделать дипфейк видео

Об остальных пунктах в разделе:

Выделяем лица

Разворачиваем пункт “Extract, sorting and faceset tools”.

“Denoise frames” отвечает за понижение шумов на кадрах видео. Запускайте его по желанию.

Очищаем набор лиц

Далее очищаем набор лиц от ложных срабатываний и/или неправильно выровненных лиц.

Скачиваем папки aligned c помощью пункта “Export to Drive” в “Manage workspace”. Этот пункт загрузит папки в виде архива в гугл диск, скачайте их оттуда и распакуйте. После чего проверьте, какие лица попали в выборку, удалите плохие.

Плохие лица для data_src/aligned :

Плохие лица для data_dst/aligned :

Плохие лица для data_dst и data_src отличаются, к data_src предъявляется более строгие требования, тогда как перестаравшись в удалении data_dst вы получите кадры без наложения лица.

Вот пример data_src/aligned перед очисткой с цветовой кодировкой лиц в соответствии с тем, что вы должны с ними делать.

После очистки заархивируйте папки и загрузите на гугл-диск. После чего загрузите обратно в проект очищенные лица.

“Faceset Enhancer”

Пункт “Faceset Enhancer” позволит улучшить детализацию ваших наборов лиц. Используйте по желанию.

Я использую этот пункт только для data_src

XSeg mask

Если в вашем видео заменяемое лицо перекрывается каким-то предметами, например лицо трогают руками, то вам необходимо для data_dst выполнить пункт “Apply or remove XSeg mask to the faces”. Если на видео лицо не перекрывается, то делать этого не надо.

Запускаем тренировку

Теперь мы можем приступить к тренировке нейронной сети. Переходим к пункту “Training”.

Нейронная сеть будет итеративно обучать модель. Как я уже говорил необходимо около 200-300к итераций, чтобы добиться хорошего качества дипфейка. Скорость выполнения одной итерации варьируется от параметров тренировки и вашей GPU и может принимать значения от 0.3 секунд до 1.2 секунд.

Пройдемся по параметрам тренировки. Некоторые параметры можно изменять в процессе обучения, чтобы улучшить обучаемость модели. А некоторые категорически нельзя изменять. Об этих нюансах я расскажу далее.

Параметр Silent_Start отвечает за повторный запуск с последними параметрами тренировки. Отключаем этот пункт, так как у нас не было тренировок. Также этот пункт надо отключать, если вы хотите изменить какой-либо параметр в процессе тренировки. Тогда после выбора модели и GPU надо нажать Enter в течение двух секунд.

Нам сообщают, что бэкап создан, и у нас еще 12 часов серверного времени. И просят ввести название модели.

Как часто делать бекапы, оставляем значение 0. Мы уже указали галкой, что бекапы делать каждый час.

Сохранять изображения предварительного просмотра во время тренировки каждые несколько минут. Если вы выберете «Да», вы получите еще один запрос.

Выберите изображение для истории предварительного просмотра: если вы выберете N, модель будет выбирать грани для предварительного просмотра случайным образом, при выборе Y должно открыться новое окно после, где вы сможете выбрать их вручную.

Так как мы работаем в Colab, то никакого окна не получим, лучше выбрать n.

Количество повторений, после которого обучение прекратится. Если поставить 0, то обучение будет бесконечным.

Чем больше итераций, тем лучше получится дипфейк. Оптимально 300к-500к итераций.

При дефолтных параметрах ниже на Colab Pro вы получаете скорость в 0.3-0.4 секунды за итерацию. Это позволяет за ночь выполнить более 100000 итераций. В бесплатном Colab вы получаете 0.6-0.7 секунды за итерацию, это позволяет за ночь выполнить чуть более 50000 итераций, но скорее всего будет меньше из-за капчи, которая прервет обучение.

Случайно переворачивает грани src по горизонтали. Помогает покрыть все углы, присутствующие в наборе данных dst, гранями src в результате их переворачивания, что иногда может быть полезно. Особенно если в нашем наборе немного разных условий освещения, но во многих случаях результаты будут казаться неестественными, поскольку лица никогда не бывают идеально симметричными.

Рекомендуется использовать только на ранних этапах обучения или не использовать вообще, если наш набор data_src достаточно разнообразен.

Случайное переворачивание граней dst по горизонтали, может улучшить обобщение, если предыдущий параметр отключен.

Чем выше разрешение, размеры и больше функций у ваших моделей, тем больше потребуется VRAM, поэтому может потребоваться меньший размер пакета. Не рекомендуется использовать значение ниже 4. Чем больше размер пакета, тем выше качество за счет более медленного обучения, более продолжительного времени итерации.

Разрешение может быть увеличено с 64×64 до 640×640 с шагом:

Изменение этого параметра ведет к изменениям других параметров, вследствие чего скорость итерации может замедлиться более чем в 2 раза.

Если вы используете Colab Pro, то можете увеличить Resolution до 192.

Half face (HF)

Тренируется только область ото рта до бровей, но в некоторых случаях может отрезать верхнюю или нижнюю часть лица: брови, подбородок, кусочек рта.

Mid-half face (MHF)

Направлена на решение проблемы HF, покрывая на 30% большую часть лица по сравнению с половиной лица, что должно предотвратить возникновение большинства нежелательных обрезаний, но они все же могут произойти.

Full face (FF)

Whole face (WF)

Расширяет эту область еще больше, чтобы покрыть практически все лицо, включая лоб и все лицо сбоку, вплоть до ушей.

Head (HEAD)

Используется для замены всей головы, не подходит для людей с длинными волосами. Лучше всего работает, если исходный набор данных faceset поступает из одного источника, и как SRC, так и DST имеют короткие волосы или волосы, форма которых не меняется в зависимости от угла.

Эта архитектура модели обеспечивает более прямую замену лиц, не трансформирует лица, но требует, чтобы лицо исходного и целевого назначения имело схожую форму, в то время как черты лица (формы рта, глаз, носа) могут отличаться больше, чем при LIAE. Лучше работает с фронтальными снимками и требует, чтобы исходный набор данных имел все необходимые углы, может давать худшие результаты на боковых профилях, чем LIAE.

Эта архитектура модели не столь строгая, когда речь идет о сходстве формы лица между источником и целевым местом назначения, но черты лица (формы глаз, носа, рта) должны быть схожими для хороших результатов. Эта модель предлагает худшее сходство с источником, чем DF, но может лучше обрабатывать боковые профили и более снисходительна, когда дело доходит до набора данных исходного лица, в котором отсутствуют некоторые углы, выражения или условия освещения, часто дает более точные смены лиц с лучшим соответствием цветового освещения.

DF-U/LIAE-U

Этот вариант направлен на улучшение сходства с исходными лицами.

DF-D/LIAE-D

Этот вариант направлен на повышение производительности за счет примерно удвоения возможного разрешения без дополнительных затрат на вычисления (использование VRAM) и аналогичной производительности. Однако для этого требуется более длительное обучение, модель должна быть предварительно обучена для получения оптимальных результатов, а разрешение должно быть изменено на значение 32, в отличие от 16 в других вариантах.

DF-UD/LIAE-UD

Объединяет оба варианта для максимального сходства и повышения разрешения. Также требуется более длительное обучение и предварительная подготовка модели.

Следующие 4 параметра управляют размерами нейронных сетей моделей, которые влияют на способность моделей к обучению, их изменение может иметь большое влияние на производительность и качество.

Если вы повысили пункт Resolution, то необходимо увеличить и эти пункты, иначе улучшения качества не добиться.

Для Resolution: 192
AutoEncoder dimensions: 384
Encoder dimensions: 96
Decoder dimensions: 96
Decoder mask dimensions: 33

Мои параметры для Colab Pro замедляют обучение в 2 раза. Таким образом мы получаем скорость обучения, как в бесплатной версии Colab, но с повышенным качеством.

Настройка AutoEncoder влияет на общую способность модели распознавать лица.

Настройка Encoder влияет на способность модели узнавать общую структуру лиц.

Настройка Decoder, влияет на способность модели распознавать мелкие детали.

Decoder mask влияет на качество изученных масок.

Изменения каждого параметра могут по-разному влиять на производительность, и невозможно измерить влияние каждого из них на производительность и качество без тщательного тестирования.

Для каждого параметра установлено значение по умолчанию, которое должно обеспечивать оптимальные результаты и хороший компромисс между скоростью и качеством обучения.

Кроме того, при изменении одного параметра следует изменить и другие, чтобы отношения между ними оставались одинаковыми.

Отдает приоритет обучению того, что замаскировано (маска по умолчанию или примененная маска xseg), доступно только для типов лиц WF и HEAD, при отключении тренирует всю область образца (включая фон) с тем же приоритетом, что и само лицо.

Попытки исправить проблемы с глазами и ртом, включая зубы, обучив их более высокому приоритету, также могут улучшить их уровень резкости.

Помогает при обучении граней профиля, заставляет модель тренироваться равномерно на всех гранях и устанавливает приоритеты для граней профиля. Может замедлять обучение фронтальных граней, включено по умолчанию во время предварительного обучения. Может использоваться, пока включен “random warp”, для улучшения обобщения сторон профиля лица или когда “random warp” отключен, чтобы улучшить качество и резкость деталей этих лиц.

Полезно, когда в исходном наборе данных не так много снимков профиля. Может помочь снизить размер потерь.

Включение оптимизатора графического процессора нагружает ваш графический процессор, что значительно повышает производительность (время итерации), но приводит к более высокому использованию видеопамяти, отключение этой функции переносит часть работы оптимизатора на центральный процессор, что снижает нагрузку на графический процессор и использование видеопамяти, что позволяет достичь большего размера пакета или запустить более требовательные модели за счет увеличения времени итерации.

Когда эта опция включена, она заменяет оптимизатор RMSProp по умолчанию. Однако эти улучшения происходят за счет более высокого использования VRAM, что требует обучения существующих или новых моделей с меньшим размером пакета.

Эту опцию следует использовать только на новых моделях и всегда с самого начала, никогда не отключайте ее во время обучения, после включения она должна оставаться таковой.

В основном используется в 3 случаях:

Если в вашей модели включен Adabelief, “learning rate dropout” не является обязательным, но все же рекомендуется, особенно при обучении GAN.

Случайная деформация используется для обобщения модели, чтобы она правильно учила черты лица и выражения на начальном этапе обучения. Но пока она включена, у модели могут возникнуть проблемы с изучением мелких деталей. Из-за этого рекомендуется держать эту функцию включенной до тех пор, пока ваши лица все еще улучшаются, и когда все выглядит правильно, вы должны отключить его, чтобы начать изучение деталей. Улучшение проверяйте глядя на уменьшение значений потерь и улучшение лиц в окне предварительного просмотра.

GAN расшифровывается как Generative Adversarial Network, а в случае DFL 2.0 он реализован как дополнительный способ обучения, чтобы получить более подробные и четкие лица. Этот параметр настраивается по шкале от 0,0 до 10,0, и его следует включать только после того, как модель более или менее полностью обучена (после того, как вы отключили случайную деформацию образцов и включили “learning rate dropout”).

Рекомендуется использовать низкие значения, например 0,01. Обязательно сделайте резервную копию своей модели перед началом обучения. После включения будут представлены еще две настройки для настройки внутренних параметров GAN:

Эта функция передаст некоторую информацию о цветовом освещении из DST в результирующее лицо, что может помочь с согласованием цветов и уменьшить мерцание, если передачи цвета недостаточно.

Рекомендуется не использовать значения выше 10. Начните с небольших значений, например 0,001–0,01, и увеличивайте их или начните с более высоких значений, например 1-2, и постепенно уменьшайте их.

Эта функция влияет на производительность, и ее использование увеличит время итерации и может потребовать от вас уменьшить размер пакета, отключить оптимизатор графических процессоров или запустить “learning rate dropout” на ЦП в результате более высокого использования VRAM.

Мы не будем использовать эту функцию на данном этапе, так как она замедляет обучение. Сопоставление цветов можно будет использовать уже на обученной модели, во время Merge.

Эта функция реализована для предотвращения так называемого разрушения модели, которое может произойти при использовании различных функций DFL 2.0. Он имеет небольшое влияние на производительность, поэтому, если вы действительно не хотите его использовать, вы должны включить автоматическое резервное копирование, поскольку свернутая модель не может восстанавливаться и должна быть очищена, а обучение нужно начинать заново.

Разрушение модели, скорее всего, произойдет при использовании “Face style power”, поэтому, если вы их используете, настоятельно рекомендуется включить “gradient clipping” или резервное копирование.

Это экономит время, потому что вы не нужно начинать обучение с нуля каждый раз. Модель будет «знать», как должны выглядеть лица, и, таким образом, ускорит начальный этап обучения.

Когда обучение начнется, вы увидите такую строку

Во время обучения вы можете посмотреть насколько модель получается успешной. Для этого надо зайти в папку

DeepFake своими руками [часть 1]

Не смотря на все прелести интернета, у него есть много минусов, и один из самых ужасных – это введения людей в заблуждение. Кликбейт, монтаж фотографий, ложные новости – все эти инструменты активно используются для обмана обычных пользователей в мировой сети, но в последние годы набирает обороты новый потенциально опасный инструмент, известный как DeepFake.

Меня данная технология заинтересовала недавно. Впервые о ней я узнал из доклада одного из спикеров на “AI Conference 2018”. Там демонстрировалось видео, в котором по аудиозаписи алгоритм сгенерировал видео с обращением Барака Обамы. Ссылка на подборку видео созданных с помощью этой технологии. Результаты меня сильно вдохновили, и мною было принято решение лучше разобраться с данной технологией, чтобы в будущем противодействовать ей. Для этого я решил написать DeepFake на языке C#. В итоге получил такой результат.

Как сделать дипфейк видео. Смотреть фото Как сделать дипфейк видео. Смотреть картинку Как сделать дипфейк видео. Картинка про Как сделать дипфейк видео. Фото Как сделать дипфейк видео

Приятного чтения!

Общие принципы

Отправной точкой стал этот проект. Из него я узнал как именно работает замена лица на видео.

Работу я решил разбить на 3 части:

1-я) Замена лица на одном фото лицом с другого, без использования 3D маски
2-я) Доработка замены с применением 3D маски
3-я) Обработка видео

Замену лица на фото можно разложить на следующие пункты:

Первое с чего я начал работу — это встраивание одного изображения в другое. Для демонстрации встраивания в оригинальном проекте используется скрипт zad1.py.
В результате создается файл «eyeHandBlend.jpg», где глаз встраивается в руку.

Как сделать дипфейк видео. Смотреть фото Как сделать дипфейк видео. Смотреть картинку Как сделать дипфейк видео. Картинка про Как сделать дипфейк видео. Фото Как сделать дипфейк видео

Данный алгоритм состоит из 2х частей, первая переносит цвет из участка с лицом на исходной картинке, на то лицо, которое необходимо вставить. Вторая делает края картинки с нужным лицом прозрачными уменьшая прозрачность по мере приближения к центру изображения.

Первую часть я полностью перенес из оригинального проекта.

Чтобы края были более прозрачными, чем центральная часть изображения, для расчета альфа канала, была введена радиально-базисная функция следующего вида:
Как сделать дипфейк видео. Смотреть фото Как сделать дипфейк видео. Смотреть картинку Как сделать дипфейк видео. Картинка про Как сделать дипфейк видео. Фото Как сделать дипфейк видео

k и n были подобраны эмпирически.
i — индекс пикселя по оси OX
j — индекс пикселя по оси OY
Как сделать дипфейк видео. Смотреть фото Как сделать дипфейк видео. Смотреть картинку Как сделать дипфейк видео. Картинка про Как сделать дипфейк видео. Фото Как сделать дипфейк видео— компонента x центра изображения
Как сделать дипфейк видео. Смотреть фото Как сделать дипфейк видео. Смотреть картинку Как сделать дипфейк видео. Картинка про Как сделать дипфейк видео. Фото Как сделать дипфейк видео— компонента y центра изображения

В итоге я получил следующий результат:

Как сделать дипфейк видео. Смотреть фото Как сделать дипфейк видео. Смотреть картинку Как сделать дипфейк видео. Картинка про Как сделать дипфейк видео. Фото Как сделать дипфейк видео

Для поиска лица на фото существует множество алгоритмов:

Как сделать дипфейк видео. Смотреть фото Как сделать дипфейк видео. Смотреть картинку Как сделать дипфейк видео. Картинка про Как сделать дипфейк видео. Фото Как сделать дипфейк видео

Пример получения Langmarks:

Как сделать дипфейк видео. Смотреть фото Как сделать дипфейк видео. Смотреть картинку Как сделать дипфейк видео. Картинка про Как сделать дипфейк видео. Фото Как сделать дипфейк видео

Лицо можно выделить точнее, находя самую левую, правую, верхнюю и нижнюю точки и строя рамки по ним.

Как сделать дипфейк видео. Смотреть фото Как сделать дипфейк видео. Смотреть картинку Как сделать дипфейк видео. Картинка про Как сделать дипфейк видео. Фото Как сделать дипфейк видео

Потом лицо вырезалось из картинки в правом нижнем углу и вставлялось, с помощью описанного выше алгоритма, в картину: «Caballero de la mano en el pecho».

Был получен следующий результат.

Как сделать дипфейк видео. Смотреть фото Как сделать дипфейк видео. Смотреть картинку Как сделать дипфейк видео. Картинка про Как сделать дипфейк видео. Фото Как сделать дипфейк видео

Источники информации:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *