Почему «просто вставь лицо» не работает
Генеративные модели не «знают» ваше лицо. Они оперируют статистическими паттернами. Когда вы пишете «face of Ivan», модель собирает среднее лицо по всем Иванам в обучающей выборке — не ваше.
Вторая ловушка — конфликт внимания. Промт «portrait of a woman in cyberpunk city, face of [reference]» заставляет модель разделять внимание между средой, освещением, позой и идентичностью. Идентичность проигрывает, потому что пикселей лица — 3–5% кадра.
Вывод: без внешнего механизма привязки идентичности (Reference, IP-Adapter, LoRA, InsightFace) стабильного сходства не получить. Промт только управляет контекстом — освещением, стилем, позой.
Четыре архитектуры привязки лица — что выбрать
Parameter —cref + —cw
Нативный механизм character reference. Работает по URL изображения. Параметр --cw (character weight) 0–100 управляет силой: 100 — лицо+одежда+прическа, 0 — только черты лица.
- Сработает для «типовика» лица, не для точного сходства
- Не переносит текстуру кожи, родинки, мимику
- На фото реализма часто даёт «пластиковое» лицо
Reference image в чате
Загружаете фото референса в диалог, пишете: «Use the face from the uploaded image, keep identity, change setting to…». Модель анализирует изображение через vision-энкодер и пытается перенести черты.
- Понимает контекст и позу лучше MJ
- Сходство ~60–70% от InsightFace
- Нельзя контролировать вес признаков отдельно
IP-Adapter FaceID / Plus
Отдельный энкодер (InsightFace) извлекает эмбеддинг лица → передаёт в cross-attention U-Net. Вес ip_adapter_scale 0.5–1.2. Работает с любым чекпоинтом SDXL/1.5.
- Сходство 85–95% при хорошем референсе
- Сохраняет текстуру кожи, волосы, загораемость
- Требует GPU 8GB+ и настройки ComfyUI/A1111
Обучение собственной LoRA
15–25 фото человека → обучение LoRA ранг 32–128 на SDXL. Токен-триггер (например, <person_x>) вставляется в промт. Вес LoRA 0.7–1.0.
- Максимальное сходство, стабильность по ракурсам
- Работает офлайн, нет ограничений по генерациям
- Время обучения 20–60 мин, нужен набор фото
Готовые шаблоны промтов — копируйте и адаптируйте
Каждый блок — рабочая формула. Замените части в квадратных скобках на свою задачу. Для Midjourney добавляйте --cref URL --cw N, для SD — подключайте IP-Adapter, для DALL·E — загружайте референс.
Кинопортрет: свет, текстура, характер
Ключ: split lighting или Rembrandt lighting раскрывают объём лица и сохраняют узнаваемые плоскости. subsurface scattering заставляет модель рендерить кожу, а не пластик.
Стилизация: иллюстрация, 3D, винтаж
Ключ: явное указание preserve facial proportions + одна яркая чертка (distinctive jawline) — якорь для IP-Adapter в стиле. Без этого стиль «съедает» лицо.
Полный рост в окружении: поза, камера, контекст
Ключ: face visible, eye contact — принудительный маркер для внимания к лицу. 24mm даёт контекст, но искажает лицо — компенсируйте IP-Adapter scale 0.9–1.1.
Серия: один персонаж — разные сцены
Ключ: генерируйте character sheet один раз → используйте лучшие кадры как референсы для последующих сцен. flat lighting на сите устраняет конфликт теней.
Воркфлоу: от референса к результату за 5 шагов
Подготовка референса
1 фото: лицо фронтом, равномерный свет, без очков, маски, сильных теней. Разрешение 512×512+. Для LoRA — 15–25 фото разных ракурсов.
Выбор инструмента
Быстрый тест → MJ —cref / DALL·E. Серия / контроль → SD + IP-Adapter FaceID. Макс. качество → обучение LoRA (15 мин на 3080/4090).
Сборка промта
Возьмите шаблон из раздела выше. Добавьте: lighting, lens, film stock, negative prompt (deformed face, asymmetry, extra fingers).
Итерация весов
IP-Adapter scale: старт 0.7 → поднимайте до 1.1, пока лицо не «перегорит». MJ —cw: 30–50 для свободы позы, 80–100 для копии лука.
Фиксация и апскейл
Выбирайте лучший seed. Апскейл 2× через 4x-UltraSharp или FaceRestoration (CodeFormer/GFPGAN) — возвращает текстуру кожи, потерянную при апскейле.
Мифы, которые едят время и генерации
Чек-лист диагностики: почему лицо не похоже
Лицо «поплыло» к середине генерации
IP-Adapter start_at > 0% — включите с первого шага (start 0%, end 100%).
Глаза разного размера / асимметрия
Negative: (asymmetric eyes:1.3), (uneven pupils:1.2). Добавьте ControlNet OpenPose (face only).
Кожа как воск / пластик
В промте нет micro skin texture, subsurface scattering, pore detail. Добавьте — модель вернёт микрорельеф.
Окружение «съело» лицо (темнота, неон)
Поднимите вес IP-Adapter на 0.1–0.15. Добавьте key light on face, rim light в промт. Разделите генерацию: сначала лицо (crop), потом inpaint в сцену.
Волосы/борода не совпадают с референсом
IP-Adapter FaceID не контролирует прическу. Используйте IP-Adapter Plus (image prompt) параллельно с FaceID, или LoRA, обученная на фото с этой причёской.
Возраст лица не тот
В промте укажите [age: 28yo] или [age: 45yo, subtle laugh lines]. Модель интерполирует возраст из латентного пространства, а не из референса.
Готовые блоки для копирования — вставьте в свой промт
Соберите промт как конструктор: Subject token + Lighting block + Lens/Film block + Style block + Negative block.
Lighting presets
Lens / Film presets
Negative prompt (универсальный)
Identity anchors (добавляйте 1–2)