Ещё пару лет назад сама идея подставить своё лицо в картинку, сгенерированную нейросетью, казалась чем-то из области научной фантастики — или, как минимум, требовала серьёзных навыков работы в Photoshop и часов кропотливой ретуши. Сегодня же львиная доля пользователей Midjourney даже не задумывается о том, какие вычислительные махинации происходят «под капотом», когда они вбивают пару команд и получают портрет с нужными чертами за считанные секунды. Да и зачем задумываться, если результат приковывает внимание с первого взгляда? Но чтобы не разочароваться в итоговой картинке и выжать из инструмента максимум, стоит всё-таки разобраться, как эта функция устроена и где скрываются подводные камни.
Что стоит за понятием «face» в Midjourney?
Начать нужно с терминологии. Когда речь заходит о работе с лицами в Midjourney, обыватель обычно подразумевает сразу несколько вещей — и перенос черт конкретного человека на сгенерированное изображение, и сохранение одного персонажа от кадра к кадру, и даже «подмену» лица на уже готовой картинке. Вся суть в том, что под одним коротким словом «face» скрывается целый набор приёмов, каждый из которых работает по-своему. Одни тяготеют к технологии image-to-image, другие опираются на встроенные алгоритмы распознавания черт, а третьи и вовсе задействуют сторонние сервисы вроде InsightFace. К слову, сама команда Midjourney довольно долго шла к тому, чтобы пользователи могли удобно оперировать лицами — ранние версии генератора с этой задачей справлялись, мягко говоря, неоднозначно.
Как нейросеть «запоминает» лицо?
Механика процесса. Midjourney не хранит где-то в базе фотографию вашего лица в привычном понимании. Вместо этого алгоритм извлекает из загруженного снимка так называемый «эмбеддинг» — компактный числовой вектор, описывающий геометрию скул, расстояние между глазами, форму подбородка, пропорции носа и десятки других параметров. Этот вектор занимает ничтожно мало места (буквально пару килобайт), но содержит достаточно информации, чтобы при генерации нового изображения нейросеть «подтянула» нужные черты. Дело в том, что диффузионная модель на этапе шумоподавления ориентируется именно на такие числовые якоря, постепенно формируя из хаотичного пикселя узнаваемый облик. Звучит довольно просто. Но нюансов хватает.
Во-первых, качество исходного снимка критически влияет на результат. Размытое селфи, снятое в полумраке бара на камеру 2015 года, — не лучший кандидат для эмбеддинга. Нейросеть просто не сможет корректно вычислить пропорции, и вместо вашего лица на выходе всплывёт нечто усреднённое, лишь отдалённо напоминающее оригинал. Во-вторых, ракурс играет колоссальную роль: фронтальный портрет с ровным освещением даёт на порядок более точный вектор, чем снимок в три четверти или, тем более, профиль. Ну и, наконец, не стоит забывать про очки, головные уборы и густую бороду — всё это алгоритм воспринимает как часть лица и может «вплести» в генерацию.
Нереальный визуал и кинематографичное видео в пару кликов 🎬
Нужен крутой концепт-арт, реалистичная анимация или профессиональный апскейл? Теперь у вас есть единый доступ к лучшим визуальным нейросетям планеты: Midjourney, Runway, Kling и Sora. Улучшайте качество готовых роликов до максимума с помощью встроенных ИИ-инструментов. Никаких сложных настроек, мощного ПК или зарубежных карт. Всё работает прямо в браузере или в Telegram-боте!
Откройте новые горизонты для творчества. Жмите на ссылку, регистрируйтесь и создавайте шедевры 👉 https://clck.ru/3RNCRL
Персонаж из кадра в кадр: задача не из лёгких
Сохранение одного и того же персонажа на протяжении серии изображений — это, пожалуй, самый щепетильный момент для тех, кто работает над комиксами, раскадровками или визуальными новеллами. Буквально год назад добиться стабильного лица от картинки к картинке было практически невозможно без внешних костылей. Сейчас ситуация стала лучше, но идеальной её назвать всё ещё нельзя.
Один из самых популярных подходов — использование параметра —cref (character reference). Он появился в Midjourney относительно недавно и творит настоящие чудеса с консистентностью персонажа. Работает это так: вы загружаете одно или несколько референсных изображений персонажа, добавляете флаг —cref с URL-адресом, и модель старается «привязать» черты лица и общий облик к новой генерации. Рядом с ним идёт параметр —cw (character weight), регулирующий силу привязки — от нуля до ста. При значении сто нейросеть скрупулёзно копирует не только лицо, но и одежду, причёску, даже позу. А вот при сниженном весе (скажем, двадцать-тридцать) сохраняются только основные черты лица, а остальное модель домысливает сама. Это удобно. Ведь иногда нужно «переодеть» героя, не потеряв его идентичность.
Стоит ли использовать сторонние боты?
InsightFace. Это имя то и дело мелькает на форумах и в Discord-серверах, посвящённых Midjourney. Бот, построенный на одноимённой библиотеке распознавания лиц, позволяет делать то, чего встроенные инструменты Midjourney пока не умеют — а именно, точечно заменять лицо на уже сгенерированной картинке. Вы отправляете боту фотографию, он создаёт так называемый «ID» (сохранённый слепок лица), а затем командой /swapid вы можете подставить это лицо в любое изображение. Результат зачастую впечатляет: освещение корректируется автоматически, тени ложатся на скулы естественно, даже выражение глаз подстраивается под контекст сцены.
Но есть и ложка дёгтя. Качество замены сильно зависит от совпадения ракурса: если на исходном фото человек смотрит прямо, а на целевой картинке персонаж повёрнут на сорок пять градусов, артефакты практически гарантированы. Кроме того, бот иногда «съедает» мелкие детали — родинки, шрамы, характерные морщинки. Для кого-то это мелочь, а для кого-то — потеря самой изюминки портрета. Да и вопрос конфиденциальности тут всплывает во всей красе: загружая своё лицо стороннему боту, вы по сути передаёте биометрические данные на чужой сервер. Стоит задуматься, прежде чем отправлять снимок паспортного формата.
Промт и его роль в работе с лицами
Многие считают, что достаточно просто загрузить фото и нажать «сгенерировать». На самом деле грамотный текстовый промт вносит колоссальную лепту в финальный результат. Нейросеть ведь не просто копирует лицо — она встраивает его в контекст, заданный словами. И если в промте написано «epic cinematic portrait, dramatic lighting, 8k», модель будет подтягивать черты лица совсем иначе, чем при запросе «casual snapshot, soft daylight». Это связано с тем, что стилистические токены влияют на все этапы диффузии, включая тот, где формируются черты.
Отдельно стоит упомянуть негативные промты. Конструкция —no в Midjourney позволяет исключить нежелательные элементы, и при работе с лицами она бывает спасительной. Двойной подбородок, слишком широкая улыбка, лишние зубы (да, классическая нейросетевая проблема) — всё это можно попытаться убрать через негативный промт. Конечно, стопроцентной гарантии никто не даст, однако в семидесяти процентах случаев результат становится заметно чище. К тому же полезно добавлять «deformed face, extra fingers, blurry eyes» в список исключений — проверено не одной сотней генераций.
Какие версии Midjourney лучше справляются с лицами?
Эволюция впечатляет. Если вспомнить третью версию Midjourney, лица там больше напоминали восковые фигуры из музея ужасов — глаза на разных уровнях, зубы сливались в сплошную белую полосу, а симметрия считалась роскошью. Четвёртая версия сделала серьёзный шаг вперёд, но всё ещё спотыкалась на руках и ушах (что, впрочем, к лицам напрямую не относится, но общее впечатление портило). Настоящий прорыв случился с пятой версией, а затем версия 5.2 и 6.0 довели детализацию лица до уровня, когда без пристального разглядывания отличить генерацию от фотографии стало довольно сложно.
Версия 6.1, актуальная на момент написания этого текста, работает с лицами наиболее стабильно. Поры кожи, едва заметный пушок над верхней губой, лёгкая асимметрия бровей — все эти мелочи, которые раньше были недоступны генеративным моделям, теперь воспроизводятся с пугающей точностью. Но есть нюанс: чем реалистичнее лицо, тем сильнее бросаются в глаза малейшие огрехи. Один чуть «поплывший» зрачок — и иллюзия рушится. Такова обратная сторона медали прогресса.
Этические подводные камни
Нельзя не упомянуть этическую сторону вопроса. Технология замены лиц — мощный инструмент, и, как любой мощный инструмент, она может быть использована во вред. Deepfake-скандалы последних лет наглядно показали, к чему приводит бесконтрольная генерация чужих лиц в компрометирующих контекстах. Midjourney, к слову, вводит всё более строгие ограничения: генерация изображений реальных публичных фигур без их согласия уже сейчас карается баном аккаунта. И правила продолжают ужесточаться.
С другой стороны, у технологии масса добросовестных применений. Иллюстраторы используют face-функции для создания персонажей на основе собственных черт. Маркетологи генерируют «лица бренда», не прибегая к дорогостоящим фотосессиям. А независимые разработчики игр получают возможность создавать десятки колоритных NPC без единого часа работы 3D-моделлера. Ведь именно доступность и скорость делают этот инструмент таким привлекательным для малых команд и одиночек-энтузиастов.
Практические советы для тех, кто только начинает
Первый и, пожалуй, самый важный совет — не стоит гнаться за идеальным результатом с первой попытки. Генерация лиц в Midjourney — процесс итеративный. Даже опытные пользователи прогоняют по пять-десять вариаций, прежде чем получают то, что их устраивает. Полезно завести привычку сохранять удачные сиды (seed) — числовые идентификаторы генерации, позволяющие воспроизвести конкретный результат. Если лицо на одном из четырёх превью вышло удачно, зафиксировав сид, можно дальше экспериментировать с фоном и стилем, не теряя найденную удачную «формулу» черт.
Следующий важный момент — разрешение. Midjourney по умолчанию генерирует изображения в довольно скромном разрешении (около 1024×1024 пикселей). Для соцсетей этого хватает, но если речь идёт о печати или крупноформатной презентации, лица при увеличении «мылятся». Тут на помощь приходят внешние апскейлеры вроде Topaz Gigapixel AI или встроенный upscale в самом Midjourney. Впрочем, даже добротный апскейлер не спасёт изначально некачественную генерацию — тем более в области вокруг глаз и губ, где человеческий глаз особенно чувствителен к неестественности.
Сравнение встроенных и внешних инструментов
Что выбрать — —cref или InsightFace? Вопрос не праздный. Встроенный параметр —cref работает «изнутри» модели, а значит, интеграция лица в сцену происходит органичнее: освещение, текстура кожи, даже цветовая палитра — всё это нейросеть согласовывает на этапе генерации. InsightFace же действует «снаружи», подставляя лицо постфактум, что иногда создаёт эффект «наклеенной маски» при неудачном совпадении условий. Однако InsightFace выигрывает в точности передачи конкретных черт: если нужно, чтобы на картинке был именно ваш нос и именно ваши глаза — бот справится лучше, чем —cref, который всё-таки «интерпретирует» лицо через призму своей модели.
Разумеется, ничто не мешает комбинировать подходы. Опытные пользователи нередко сначала генерируют основу через —cref, добиваясь нужной композиции и стиля, а затем «доводят» лицо через InsightFace, подставляя точные черты. Этакий конвейер из двух этапов. Процесс не быстрый, но кропотливый, и результат зачастую неотличим от профессиональной иллюстрации. Тем более что оба инструмента бесплатны (при наличии подписки на Midjourney, само собой).
Чего ждать в будущем?
Генеративные модели развиваются с грандиозной скоростью. Буквально полгода назад сохранение персонажа между кадрами было из разряда «колдовства с бубном», а сейчас это рутинная операция. Следующий логичный шаг — полноценный контроль мимики. Уже появляются прототипы, позволяющие задавать выражение лица через текст: «лёгкая улыбка, прищуренные глаза, приподнятая бровь». И если текущие версии справляются с этим лишь приблизительно, то через пару итераций точность наверняка выйдет на совершенно иной уровень.
Отдельно стоит упомянуть видеогенерацию. Midjourney уже анонсировал движение в сторону анимации, и перенос стабильного лица из статичной картинки в видеоряд — это, безусловно, следующий рубеж. Когда (а не «если») это случится, возможности для контент-мейкеров станут практически безграничными. Впрочем, и ответственность вырастет пропорционально.
Инструменты для работы с лицами в Midjourney уже сейчас дают внушительный результат, а ведь технология стоит лишь в начале пути. Не стоит бояться экспериментировать: пробовать разные ракурсы референсов, играть с параметром —cw, миксовать встроенные команды со сторонними ботами. Каждая неудачная генерация — это шаг к пониманию того, как нейросеть «видит» человеческое лицо. А понимание — лучший спасательный круг в мире, где технологии меняются быстрее, чем успеваешь к ним привыкнуть. Удачи в экспериментах и пусть каждый сгенерированный портрет радует точностью черт.

