Пожалуй, замена лиц – одно из самых древних развлечений интернета, вспоминается старая шутка годов 2000-х: «Photoshop – 10 лет на рынке пластической хирургии». И действительно во времена моей юности интернет был просто завален криво сделанными ню-фотографиями знаменитостей. Само собой такие действия являлись аморальными и незаконными, но любителей-умельцев это не останавливало, и сеть всё больше превращалась в помойку.
Давайте сразу оговоримся – я не учу вас делать похабные фейки, и если вы намереваетесь сварганить нечто подобное, сфоткав какую-нибудь Марью Ивановну в школьном коридоре на мобильник, то вспомните, что за это существует уголовная ответственность — ваши действия могут караться статьями за клевету (ст. 128.1 УК РФ), нарушение неприкосновенности частной жизни (ст. 137 УК РФ), нарушение авторских и смежных прав (ст. 146 УК РФ), кражу (ст. 158 УК РФ), мошенничество (ст. 159 УК РФ), вымогательство (ст. 163 УК РФ), причинение имущественного ущерба путём обмана или злоупотребления доверием (ст. 165 УК РФ), распространение и оборот порнографических материалов (ст. 242 УК РФ).

Однако любая программа – инструмент, наподобие ножа: им можно человека зарезать, а можно нарезать хлеб и накормить, так и тут. Замену лица реально использовать для того, чтобы порадовать человека: например, моя подруга Люся с помощью замены лиц (Face swap) сделала мне чудесную аватарку для ВК и телеги, представив меня в образе Кратоса из God of war.
Собственно, сегодня мы установим sfw расширение, позволяющее делать подобное. Что за три непонятные буквы? Весь контент делится на SFW(Safe For Work) и NSFW (Not Safe For Work) – безопасно\небезопасно для работы. Что имеется в виду: вот представьте, сидите вы в офисе, и мимо ходит начальник. Вот вам нормально, что он на вашем экране увидит, допустим, милого котёнка, играющего с бабочкой? Нормально. Значит — безопасный контент. А вот если он увидит на вашем экране 61-й размер выпирающих частей со сломанной спиной – это уже неприемлемо, соответственно – NSFW.

Давайте же, наконец, установим ReActor. Первым делом нам нужно установить дополнительные библиотеки для нашей операционки, иначе работать не будет. Заходим сюда: https://visualstudio.microsoft.com/ru/downloads/ — качаем Community версию и устанавливаем как обычную программу, далее запускаем (каждый раз запускать не придётся). Затем переходим в Extensioms (расширения) Install from URL (установить по ссылке). Дальше в поле URL for extension’s git repository вставляем ссылку на репозиторий расширения: https://github.com/Gourieff/sd-webui-reactor-sfw и нажимаем Install. После установки перезапустите интерфейс удобным вам способом и убедитесь, что на вкладке Txt2img появилась соответствующая панель.
Теперь создадим портретное фото лица и сохраним его в удобное место (можете взять реальное фото). Открываем вкладку ReActor и видим несколько подвкладок – Main, Detection, Upscale, Tools, Settings.
Нас интересует вкладка Main (остальные затрону вскользь). Здесь мы видим подвкладки Image(s), face model и Folder, первая разделяется на Single (одно изображение) и Multiple(несколько). Для лучшего эффекта замены лица следует использовать несколько снятых с разных ракурсов фотографий. Folder позволяет указать путь к папке, где лежат фотки с лицом, которое вы хотите врисовать в новую генерацию.

Settings и Upscale – трогать не стоит вообще, настройки довольно скудные и по умолчанию выставлены лучшие варианты. Вкладка Tools позволяет превратить одиночную фотографию или фотосет одного человека в модель, которую впоследствии можно использовать на вкладке Main вместо фотографий. Нужно это может быть только в случае, если вы часто генерируете одного и того же человека. Допустим, свою любимую. Тогда имеет смысл сохранить её лицо как модель просто для удобства, чтобы не искать подходящие фотки каждый раз.
Таким образом, осталось разобраться только с небольшим количеством настроек на вкладке Main, и вот пояснение к ним:
Save the original image(s) made before swapping – сохраняет генерируемую фотку до замены лица, чтобы в случае неудачной попытки у вас остался исходник.
Face Mask Correction – если наблюдаете пикселизацию по краем встраиваемого лица – жмякайте, может помочь.
Source Image (above) и Target Image (result) – это нужно для замены нескольких лиц. Представим, что у вас на фото мужчина и женщина, скажем, ваше свадебное фото. Расширение пронумерует обнаруженные на фото лица слева направо, начиная с нуля. То есть первое лицо слева будет нулевым и дальше по порядку.

Gender Detection (Source) и Gender Detection (Target) – выбор пола персонажа на исходном и конечном генерируемом фото. No – определяй автоматически (в этом он не силён), Female Only – только женские лица, Male Only – только мужские. Restore Face – восстановление лица после генерации. По факту это настройка алгоритма, который как раз впихивает лицо в готовое фото. Варианты — None, CodeFormer, GFPGAN. Я обычно использую GFPGAN, но, если вам кажется, что не похоже – попробуйте CodeFormer.
Restore Face Visibility – то, насколько сильно нейронка будет прорабатывать вписывание лица в генерируемое фото, по умолчанию стоит максимальное значение – 1, если результат кажется вам неестественным и лицо пластмассовым – понижайте.
CodeFormer Weight (Fidelity) – степень схожести. То, насколько сильно нейронка будет стараться, чтобы лицо соответствовало оригинальной фотографии: 0 — далеко от оригинала, 1 – максимально близко, без изменений. Рекомендуется — 0,5. Почему не 1? Из-за разности ракурсов на исходном и генерируемом изображениях.
Теперь вы знаете, как заменить лица на фотографиях с помощью ReActor. Девочки могут сделать из себя Железных Арни, а мальчики – крылатых фей. Или наоборот? Это уж кому как нравится.
Фото: автор
Специально для Агентства Особых Новостей (on24.media)

