ИИ-замена лица выдаёт чужого человека: где ломается сходство
Сходство ломается не случайно. Искажение черт почти всегда сводится к одной из пяти причин: слабый референс, режим text-to-image вместо image-to-image, стилизующие слова в промпте, встроенная тяга модели к 'средней красоте' и завышенный параметр креативности. Сначала определите масштаб: уплыли одна-две черты или всё лицо целиком. Эта развилка делит проблему надвое и ведёт к разным фиксам. Дальше вы сопоставляете симптом с причиной и применяете точечное исправление вместо слепой перегенерации. Ниже каждая причина разобрана как ветка диагностического дерева, плюс готовый Identity Lock блок для удержания уникальных черт.
Как быстро понять, что именно пошло не так
Поставьте оригинал и результат рядом в одном масштабе и обрежьте всё, кроме лица. На общем плане мозг сам достраивает сходство, вблизи же обман виден сразу.
- Расстояние между глазами и их посадка: это выдаёт подмену первым.
- Ширина носа и форма ноздрей.
- Изгиб верхней губы.
- Родинки, шрамы и природная асимметрия лица, которую модель особенно любит стирать.
- Форма ушей и мочек, если они в кадре.
Есть проверка надёжнее линейки. Покажите результат тому, кто хорошо знает героя фото, и не предупреждайте, что картинку рисовал ИИ. Спросил, что не так с лицом? Значит, сходство потеряно объективно, а не в вашем воображении.
Теперь оцените масштаб потери. Уплыли одна-две конкретные черты, скажем нос стал шире, а губы тоньше? Это узкая правка. Лицо изменилось целиком и человек стал чужим? Корень глубже, в качестве референса или самом режиме генерации. Две ситуации ведут по разным веткам, поэтому развилку проходим до выбора фикса.
Причина 1: плохой референс, модель не видит лицо достаточно чётко
Модель восстанавливает лицо только из того, что есть на референсе, и слабое исходное фото остаётся самой частой причиной потери сходства. Подробный разбор требований к референсу публикует qreator.ru.
- Разрешение от 1500 px по короткой стороне, как требует qreator.ru.
- Лицо занимает минимум 30% кадра.
- Поворот головы не больше 45°, иначе модель додумывает скрытую половину (наблюдение dtf.ru).
- Держите в кадре одного человека: чужие лица уводят модель с цели.
- Снимок без фильтров и без компрессии, в идеале сделанный специально под генерацию с ровным светом и нейтральным фоном.
Источник файла решает не меньше цифр. Фильтры FaceApp и TikTok перекраивают геометрию и текстуру лица ещё до загрузки, и нейросеть честно копирует уже испорченное лицо. Снимки из сторис и пересланные в мессенджере фото ужаты алгоритмами доставки: стёртые компрессией детали не вернёт ни одна модель. Классический провал: аватарка из Telegram на 400 px выдаёт мыльного незнакомца, а тот же человек в несжатом оригинале с нейтральным фоном снова узнаётся.
Быстрый тест перед загрузкой. Откройте референс во весь экран. Видите зерно, мыло или квадраты пикселей? Модель видит ровно то же самое и недостающее не угадает.
Причина 2: неправильный режим генерации, text-to-image не сохраняет конкретного человека
Каждая перегенерация выдаёт новое чужое лицо? Дело не в промпте, а в режиме. text-to-image не получает вашего фото вообще: модель собирает лицо из латентного пространства по текстовому описанию, и попадание в конкретного человека здесь чистая случайность.
image-to-image устроен иначе. Режим берёт исходное изображение за опору и держит сходство заметно лучше. Для сохранения конкретного человека выбирайте сервисы с поддержкой image-to-image, например Nano Banana 2 / PRO или Seedream 4.5.
Midjourney, Stable Diffusion и DALL-E в чистом text-to-image не созданы удерживать конкретное лицо без специальных надстроек вроде IPAdapter или обученной LoRA. Запрос 'женщина 35 лет с каре' выдаст женщину 35 лет с каре, но не вашу подругу.
Причина 3: промпт запускает стилизацию и отрывает результат от референса
Часть слов тихо переключает модель из режима копирования в режим художника. cinematic, epic, dramatic, artistic, stylized, award winning, professional photo: по наблюдениям qreator.ru, каждое смещает приоритет с сохранения референса на эффектную интерпретацию. Вычистите их полностью.
Длина промпта работает против вас не меньше. Текст на 2000 символов и больше с десятками деталей сцены распыляет внимание модели по всем токенам, и вес инструкции про лицо падает. Оставьте Identity Lock блок плюс две-три фразы о сцене, остальное лишнее.
Минимальный вариант для чат-ботов вроде ChatGPT: дописать в запрос 'сохранить идентичность, не менять черты лица'. Грубо, но уже лучше, чем ничего.
Надёжнее работает готовый Identity Lock блок: короткий список черт, которые модель обязана повторить дословно. Базовая версия умещается примерно в 250 символов.
Keep the exact identity of the person in the reference photo. Do not change facial geometry: eye spacing, nose width, nostril shape, the curve of the upper lip. Preserve every mole, freckle and the natural left-right asymmetry. Keep the real skin texture and age. Same face, same person.
Для упрямых случаев, когда лицо всё равно уплывает, разверните блок примерно до 650 символов и перечислите черты подробно.
Preserve the precise identity of the person from the reference image with photographic accuracy. Lock these traits exactly: the distance between the eyes, the width and bridge of the nose, the shape of the nostrils, the curve of the upper lip, the shape of the ears and earlobes, the jaw and chin line. Keep every mole, freckle and scar, and the natural asymmetry between the left and right sides of the face. Do not smooth wrinkles, do not slim the face, do not change skin tone, eye color or ethnic features. Match the person's real age. The result must read as the same individual photographed under different light, never a younger or beautified lookalike.
Каждая фраза тут несёт нагрузку. eye spacing держит посадку глаз, nostril shape запрещает перерисовывать ноздри, preserve every mole and natural asymmetry прямо блокирует симметризацию, а match the real age гасит автоомоложение. Модель исполняет конкретику, а не размытое 'сделай похоже'. Сохраните рабочий блок как шаблон и вставляйте его в каждый новый промпт.
В поле отрицательных подсказок добавьте: без искажений, без асимметрии, без деформированных черт, анатомически правильно. Это отсекает грубый брак анатомии, хотя само сходство держит Identity Lock, а не негативы.
Причина 4: регрессия к среднему, модель сглаживает индивидуальность
Иногда лицо не ломается, а молодеет и хорошеет без вашей просьбы. Это регрессия к среднему: модель подтягивает любое лицо к статистическому центру обучающей выборки.
Откуда берётся этот центр. Сети учились на миллионах отретушированных, симметричных, заведомо 'красивых' портретов, поэтому усреднённое лицо для них и есть эталон. Классический датасет CelebA, описанный на habr.com, содержит 200 000 фотографий 10 000 знаменитостей: на нём обучали GAN, и смещение к глянцевым лицам встроено в саму выборку.
Без явной команды модель убирает то, что считает изъянами: асимметрию, родинки, морщины, иногда этнические черты и природный цвет глаз. На выходе приглаженный незнакомец вместо конкретного человека.
Старые GAN-архитектуры страдают сильнее. ProGAN и StyleGAN, по данным habr.com, обучают на стандартных и зеркально отражённых версиях изображений, отсюда вечные сбои с асимметрией: разные серьги и перекошенный взгляд, парные детали не совпадают.
Противоядие одно: тот же Identity Lock с поимённым перечислением уникальных черт. Пока асимметрия и родинки не названы прямо, модель считает их шумом и стирает.
Причина 5: высокий параметр стилизации или неправильный порядок загрузки
Последняя группа причин прячется в настройках. Ползунок transformation strength или creativity на высоком значении прямо разрешает модели уходить от референса. Опустите его к минимуму и перегенерируйте, нередко одного этого хватает. Привычка начинать с низкого значения и поднимать только при необходимости экономит десятки попыток.
Порядок загрузки тоже влияет. По данным dtf.ru, при пакетной загрузке первые 3–4 кадра получают больший вес при анализе, поэтому ставьте лучшие снимки в начало очереди, а не в конец.
Одного фото мало. Дайте модели 2–3 качественных референса с разных ракурсов: анфас, поворот на 45°, профиль. Обратный случай встречается постоянно: человек грузит 10 кадров строго анфас, модель не видит лицо сбоку и лепит усреднённую маску. Десять одинаковых ракурсов проигрывают трём разным.
Диагностическое дерево: какая причина у вас
Сведём всё в одну развилку. Найдите свой симптом в левом столбце и идите по строке к фиксу.
| Симптом | Вероятная причина | Что сделать |
|---|---|---|
| Уплыло всё лицо, человек стал чужим | Слабый референс или режим text-to-image | Проверить разрешение и переключиться на image-to-image |
| Уплыли 1–2 конкретные черты | Модель не получила их как обязательные | Назвать черты явно в Identity Lock и перегенерировать |
| Лицо омоложено и симметрично | Регрессия к среднему | Добавить в Identity Lock родинки, морщины и асимметрию |
| Кино-эффект, живопись, глянец | Стилизующие слова в промпте | Удалить cinematic, epic, artistic и подобные |
| Лицо размыто или пластиковое | Низкое разрешение референса | Взять фото от 1500 px по короткой стороне |
Что делать, если ничего не помогло: fallback-стратегия
Иногда ни один фикс не держит лицо. Тогда меняют стратегию, а не параметры.
Разбейте задачу на этапы. Сгенерируйте сцену без лица или с любым лицом, а затем наложите нужное отдельным проходом face-swap. Модели проще сохранить лицо, когда это её единственная задача в кадре.
Если результат почти удачен, выручает inpainting. Замаскируйте только фон или одежду и перегенерируйте маскированную область, не трогая лицо. Так удачное сходство не разрушается при правке остального.
Уплыли всего одна-две черты? Часто быстрее поправить их в Photoshop, чем гонять полную перегенерацию ради одного носа. К этому пути приходят многие, когда лицу не хватает совсем чуть-чуть.
Технические пользователи в Stable Diffusion копают глубже: обученная LoRA на лицо конкретного человека и IPAdapter, переносящий черты прямо с референса. Это не для новичка, но именно сюда стоит смотреть, когда сходство нужно стабильно и в потоке.