Быстрый Deepfake: замена лица на фотографии без использования Photoshop

Пост опубликован в блогах iXBT.com, его автор не имеет отношения к редакции iXBT.com
| Гайд | Программы, сервисы и сайты

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

Подготовка

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

1. Создаём аккаунт на Gmail. Он нам потребуется для бесплатного использования удалённого оборудования компании Google.

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

Копирование скрипта

Замена лица

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

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

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

Я остановил свой выбор на молодой фотографии Саши Грей и случайной косплеерши из интернета.

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

Имена файлов и настройки алгоритма

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

5. Если всё прошло удачно, то в конце вывода консоли скрипта вы увидите надпись [ROOP.CORE] Processing to image succeed, а в левой колонке появится файл Rezultat.png. Скачиваем файл через правый клик и радуемся результату.

Скачивание результата

Результат

Deepfake Саша Грей

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

Ещё парочка примеров:

Как убрать цензуру

По умолчанию алгоритм мылит картинки с пикантным материалом. Чтобы обойти эту проблему, скачайте файл predictor.py и любым текстовом редактором измените параметр MAX_PROBABILITY=0.85 на MAX_PROBABILITY=1, после чего загрузите его обратно. Или воспользуйтесь моим уже настроенным файлом.

Обход цензуры

Заключение

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

Автор не входит в состав редакции iXBT.com (подробнее »)
Об авторе
Сисадмин и любитель эльфиек.

94 комментария

87638502@vkontakte
Если вы найдёте ошибку или опечатку в тексте, то, пожалуйста, не бойтесь сообщить о ней в комментариях под материалом. Вместе мы сделаем ixbt/live снова великим!
105841563617340988703@google
Есть возможность установить эту нейронку на ПК, чтобы каждый раз заново не прогружать все пункты?
87638502@vkontakte
Если у вас современная видеокарта Nvidia.
105841563617340988703@google
4060 laptop. Фокус работает. А как сабж установить?
87638502@vkontakte
Гуглите установить ROOP на ПК.
A
На самом деле долго думал чем себя можно занять и оторваться от простой рутины. Очень благодарен автору за его постоянные гайды на счет нейронки. Прям чувствую как продвинулся в развитии данной темы с учетом всех новых технологий. Спасибо большое и продолжай в том же духе.
А
Если нейросеть делает за тебя работу, то какой смысл твоей работы? Какое удовольствие получаешь, если не ты это делал? Нейросеть это же не IDE, которые действительно облегчают труд не трогая процесс работы. А тут вмешательство в процесс. Если кратко, то можешь ли ты гордиться своей работой, зная, что ее часть сделана не тобой?
87638502@vkontakte
Спросите у художников, ведь их так пошатнуло появление фотоплёнки.
А
Как думаешь, откуда взялся авангардизм?! Он собственно и появился, как ответ на фотографию, художники не дураки, хорошо понимают, что лучше фотоаппарата, то что существует, они не изобразят, вот и стали всякую дичь рисовать, потом арты, накал шызы упал, но по прежнему рисовали то, чего нет, разве что фотографически точно, но с нейронками, для художников снова стало некуда деться, максимум поправлять их косяки…
87638502@vkontakte
Такова плата за прогресс.
А
Ну, как плата, просто для нынешней соци-экономической системы полная автоматизация невозможна.
87638502@vkontakte
Всё возможно, было бы желание и повод.
I
Какое удовольствие можно получить от еды, если ты не сам ее добыл/вырастил и приготовил?!
87638502@vkontakte
Была вставлена не та ссылка! Гайд обновлён!
https://colab.research.google.com/github/dream80/roop_colab/blob/main/roop_v1_3.ipynb
P
А по контраснее лица взять нельзя было? Они и так не сильно отличаются, а при замене вряд-ли бы даже оригинал себя узнал.
А все потому что не работает по факту это ещё нормально. Попробуйте свое лицо на замену вставить увидите как все криво работает.
87638502@vkontakte
Всё работает. Отключите алгоритмы улучшения и проверьте снова.
P
Реальное лицо вставьте, а не студийной фото модели которая ещё и внешне похожа.
На ваших примерах если не сказать людям что это другой человек, хрен кто дагадается. Подумают что просто немного отретушировали фото.
18051168@vkontakte
За километр видно, что Саша Грей)
А
Спасибо за статью! Очень полезно и как раз, что мне сейчас нужно =)
С
На шее очень резкий переход от матовой кожи к глянцевой — сразу бросается в глаза
f
Так на оригинальном фото так же
87638502@vkontakte
Шлейфа нет, это вам не Oblivion. А тот что на первой фотографии, так он присутствует и на оригинале, присмотритесь).
j
Павел, а есть аналогичное решение для замены дизайна предметов? Например, на исходном фото на столе зелёная скатерть и белые тарелки с нарисованными тюльпанами. Я выбираю фото тарелки с розами и фото красной скатерти, и скрипт все это красиво заменяет. Или вместо тарелок ставит кружки.
87638502@vkontakte
Да, такие нейронные сети уже есть. Возможно, что чуть позже поделюсь гайдом.
j
Если что, интерес не праздный. Т.е. не за просто так)
A
Спасибо за новую статью по этой теме.Сразу возник вопрос, если вкл опцию ManyFaces, как именно определить какое лицо скрипт будет заменять, если на фото например два лица.И скрипт видимо так же работает с видео?
87638502@vkontakte
Для видео его качество посредственное. ManyFaces будет заменять лицо исходя от его удалённости и частоты появления. Для замены множества лиц сразу, существуют другие скрипты.
A
В таком случае будут ли новые статьи от вас, конкретно по видео? Не считая уже сделанных.Может что то новое появилось, более лучшее и т.д
87638502@vkontakte
Будут, так как некоторые скрипты уже успели поломаться. Но как скоро, не могу сказать, ибо в реальной жизни достаточно проблем.
87638502@vkontakte
Ссылка опять сбилась, вернул...
https://colab.research.google.com/github/dream80/roop_colab/blob/main/roop_v1_3.ipynb
v
Павел, всё это прекрасно, но фулл то будет?
87638502@vkontakte
Фулл? — Вы на что меня подбиваете?
111900111788203862163@google
Уже был подобный гайд на фришном Гугле запускать скрипт без цензуры, но для видео/фото правда ролики не более 50 метров или 3 мин можно было скармливать, качество было вполне хорошее за пару минут
87638502@vkontakte
Это новая версия алгоритма.
109111426116526646666@google
Блин, делаю всё по инструкции, но когда нажимаю создать, вылетает ошибка
NameError: name 'source' is not defined
Имена файлов проверил и перепроверил, все галочки и параметры как на скрианах, пробовал другие файлы, что не так делаю то?
109111426116526646666@google
Попробовал ещё раз, с самого начала, в точности повторяя все шаги, с другими файлами. То же самое.
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-4-92a8082edaa1> in <cell line: 29>()
27
28
---> 29 cmd = f«run.py --execution-provider {Device} -s {source} -t {target} -o {output} --frame-processor {Processor} --output-video-encoder {VideoEncoder} --output-video-quality {VideoQuality} {KeepFPS} {SkipAudio} {KeepFrames} {ManyFaces} --temp-frame-format {TempFormat} --temp-frame-quality {TempQuality}»
30 print(«cmd:»+cmd)
31
NameError: name 'source' is not defined
87638502@vkontakte
Проверил, всё работает. Где-то у вас ошибка.
109111426116526646666@google
А это может быть от того что железо какое-то несоответствующее? У меня FX8350 процессор.
87638502@vkontakte
Обработка идёт на серверах гугла и не зависит от вашего ПК.
109111426116526646666@google
Ивиняюсь, затупил. Всё делал правильно, но забыл после замены имён файлов запустить четвёртый скрипт.
109111426116526646666@google
Может все файлы должны быть одного размера? Ещё вот этот момент не понял. «Что такое вывод, я думаю, объяснять не нужно. „
Это как? Какой файл я должен вставлять в результат? Разве я не должен получить результат после манипуляций? Где я его возьму заранее? Поясните, пожалуйста.
87638502@vkontakte
Размер и разрешение фотографий не влияет на работу скрипта. Вывод это название будущего конечного файла. Появится слева в скрытых папках, рядом с загружаемыми фотографиями.
117070295959790579654@google
Всё работает? Сейчас делаю, лицо не меняется
109111426116526646666@google
Всё работает, только что несколько фоток поменял так, для проверки. Хотя часто приходится допиливать фотошопом, бывает артефачит.
117958082425074658506@google
Очень сложно! Нереально. У кого-нибудь вообще получилось это или очередной трешак??? Можете сделать видео — я даже заплачу если это реально будет работать. Я слишком тупой
87638502@vkontakte
Вы серьёзно?
117958082425074658506@google
Ну, я немного тупой… не могу сделать как тут написано. Слишком сложно и мудрёно. Может если бы видео чтобы просто вот так медленно, как для тупых совсем. А вообще есть ли прога для замены лица адекватная? Без плясок с бубном сложных? Пусть с артефактами — фотошопить по старинке умею
87638502@vkontakte
Пожалуйста, попробуйте вникнуть. Ничего сложного в инструкции нет.
T
Когда нажимаю заменить лицо, появляется ошибка. --------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-11-e0946fd0612c> in <cell line: 29>()
27
28
---> 29 cmd = f«run.py --execution-provider {Device} -s {source} -t {target} -o {output} --frame-processor {Processor} --output-video-encoder {VideoEncoder} --output-video-quality {VideoQuality} {KeepFPS} {SkipAudio} {KeepFrames} {ManyFaces} --temp-frame-format {TempFormat} --temp-frame-quality {TempQuality}»
30 print(«cmd:»+cmd)
31
NameError: name 'source' is not defined
Подскажите что не так сделал.
87638502@vkontakte
Пишет, что файлы не найдены. Попробуйте ещё раз.
T
Спасибо, попробую.
G
Автор, если вы пишите гайд, то пишите его от и до, а не выборочно — что-то написали, что-то — нет. Непонятно, откуда брать файл для строчки «вывод». судя по скринам, он у вас был изначально, а не был создан в результате действия алгоритма.
87638502@vkontakte
Я не люблю ругаться матом, но если вы не разобрались в инструкции, то, возможно, вам и не стоит ею пользоваться. Я не могу влезть в голову к каждому человеку.
G
При чем здесь влезть в голову? достаточно нормально объяснить каждый шаг, а не отписываться выражениями в стиле «сами додумайте». Гайд на то и гайд, что в нем автор все объясняет, а не предлагает додумать. А если вы не можете что-то объяснить, то незачем было составлять инструкцию.
87638502@vkontakte
Гайд написан куда более чем подробно, если вы не в состоянии следовать расписанным шагам, то виноват уже не автор.
G
ну если вы все можете объяснить, то ответьте тогда на мой вопрос, а не ставьте минусы, будто вас за живое задели, а вы обиделись). это лишь конструктивная критика, при чем уместная, не более.
87638502@vkontakte
Когда автору говорят, что делать, вместо вопроса с описанием проблемы. — Чего вы ещё хотите?
G
понятно. конструктивную критику вы воспринимать не умеете и обижаетесь. еще раз повторю — раз вы не готовы к такому, то не надо было вообще составлять инструкцию.
87638502@vkontakte
Скажите спасибо, что я с вами ещё виду диалог после вашего хамства.
G
если вы видите везде хамство, то это ваши проблемы. у меня вообще не было цели вас задеть, вы сами задеваться рады, как я погляжу. еще раз повторю, что этого диалога не было бы, если бы вы просто подробно расписали каждый пункт в инструкции или бы ответили сразу на вопрос, но на критику вы обиделись и ответить уже не можете, зато можете придумывать хамство в свой адрес.
G
добавлю, что если бы проблемы были в моем понимании, то другие комментаторы не задавали тех же вопросов, что и я. а так как вопросы к гайду имеются (причем есть комментарий с точно таким же вопросом, как у меня), то это уже проблема не комментаторов, а автора гайда
87638502@vkontakte
Всё, что я вижу, так это невнимательность.
G
«Что такое вывод, я думаю, объяснять не нужно».
Ага, понятно, во всем виновата моя невнимательность. Комментарии тут излишни.
J
Гспади, какой же вы ту… годум. Автор максимально пошагово описал процесс, но все равно находятся недовольные.
Вы заметили, что все, кто писал про ошибки, по итогу косячили сами?
Успешного вам развития.
G
о, еще один «умник» нашелся. может вы тогда объясните, что такое вывод?
J
Хотел в ответ написать что-нибудь оскорбительное, но не стал опускаться до такого.
Хотел прикрепить изображение из ЭТОГО гайда, но тут нельзя..
Так вот, на скрине серым по белому написано: «Вывод — это путь вывода». Ещё подробней надо? Здесь указывается место и имя конечного файла.
Не благодарите
113544969871787150383@google
А если на фото 2 лица, но заменить нужно только одно
87638502@vkontakte
Вырезать или заблюрить, а после склеить.
113544969871787150383@google
Как мне самому в голову не пришло. Спасибо!
R
Спасибо за инструкцию, вопросов нет. Правда сначала была ошибка связанная с картинкой-источником, со второй попытки решил, но теперь хоть тресни не выдает результат в указанную папку, хотя процесс идет вроде без ошибок. Бог любит троицу, как говорится.
I
На большинстве фото получилась скорее другая Саша, не Грей, а Холланд. С Грей тоже сходство есть, но это прям сильно больше широгану напоминает.
87638502@vkontakte
Неудачное исходное фото.
v
Спасибо за ваш труд. Есть ИИ которые бы просто исправляли имеющиеся фотографии? Типа фотография сделана с большого расстояния или в тёмное время и вместо лиц каша. Чтоб добавить деталей, сделать лица узнаваемыми?
87638502@vkontakte
Попробуйте прогнать. Мне часто помогает.
https://snapedit.app/ru/enhance (Не реклама).
254349325@vkontakte
Замена лиц реально работает очень круто, я пробовала на таких фотках, от которых вообще ничего хорошего не ждала, но результат прям удивил. Но есть дурацкий вопрос: существует какой-то способ сделать подобный дипфейк вместе с прической источника?) Вот прям ооочень нужно… Заранее спасибо за ответ.
87638502@vkontakte
Это возможно, но займёт слишком много времени).
254349325@vkontakte
мне важно не время, а результат… только не говорите, что вы имели ввиду правку руками в фотошопе)
87638502@vkontakte
Нет, нужна другая нейросеть и новый гайд.
254349325@vkontakte
а можете просто название ее подсказать, пожалуйста? ну очень нужно, правда) мне подарок очень важному человеку сделать нужно довольно экзотичный)
87638502@vkontakte
Тут не название, тут писать новый гайд надо).
N
Спасибо огромное! Всё работает как надо. Надеюсь, работать будет вечно. Мне было необходимо для замены лица на своё с игровых персонажей, чтобы создавать превью для ютуба. Специально зарегистрировался, чтобы поблагодарить)
v
Спасибо за статью и ссылки! Как заменить несколько лиц???
100432463320983261621@google
Добрый день! Подскажите пожалуйста, программа всё время работала отлично но с сегодняшнего когда дохожу до пункта 5, через 10 сек. дня вдруг выскакивает такое сообщение.
File "/usr/local/lib/python3.10/dist-packages/keras/api/_v2/keras/__internal__/backend/__init__.py", line 3, in
from keras.src.backend import _initialize_variables as initialize_variables
ImportError: cannot import name '_initialize_variables' from 'keras.src.backend' (/usr/local/lib/python3.10/dist-packages/keras/src/backend/__init__.py)
Может вы знаете в чём ошибка.
k
Спасибо за инструкцию! Быстро примерила новый образ)).

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

Сейчас на главной

Новости

Публикации

Обзор компьютерного корпуса PowerCase Mistral Micro A3W ARGB CMMAW-A3

Компания PowerCase постоянно расширяет ассортимент компьютерных корпусов, предлагая покупателям интересные и доступные модели. В этом обзоре рассмотрим корпус Mistral Micro A3W ARGB в белом цвете....

Секрет мокрого носа у кошек

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

Обслуживание посудомоечной машины: что чистить, и какие средства применять

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

Космическое шоу в эти выходные: метеорный поток Эта-Аквариды, отголоски кометы Галлея

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

Укус клеща: что делать и как защитить себя

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

ChatGPT vs. Вселенная: сможет ли ИИ найти «кирпичики» мироздания?

ChatGPT взорвал информационное пространство, заставив задуматься о грядущей революции, которую принесёт искусственный интеллект. Физики и астрофизики, в свою очередь, задались вопросом: а...