Почему «брат с сестрой» превращается в набор случайных людей
Диффузионные модели не «помнят» персонажей. Каждый промт — новый бросок кубика. Слово «брат» дает лишь семантический вектор: мужчина, похожий возраст, возможно, сходные черты. Но без жёстких якорей модель рисует просто «двух людей», подбирая черты заново для каждого пикселя.
Проблема усугубляется, когда добавляются сестры. Разница в поле, возрасте, прическе и стиле одежды даёт модели слишком много степеней свободы. Результат: у брата глаза карие, у старшей сестры — голубые, у младшей — зелёные, а нос у всех разный. Сходство теряется на уровне латентного пространства.
Анатомия стабильного промта: 4 столпа «ДНК» семьи
1. Мастер-описание (Master Prompt)
Единый блок дескрипторов для всех: форма глаз, цвет ириса, нос, скулы, текстура кожи, отпечаток пальца. Пишется один раз, копируется в каждый промт без изменений. Это «генотип» ваших персонажей.
2. Якорное изображение (Reference Image)
Лучший результат даёт одно качественное фото «патριαрха» или старшего брата. В Midjourney — параметр --cref URL --cw 100. В SD — IP-Adapter FaceID или Reference Only. Это «фенотип», к которому модель привязывается.
3. Стилевой код (Style Anchor)
Единый визуальный язык: освещение (Rembrandt, golden hour), камера (85mm f/1.4), цветовой грейдинг (teal & orange, pastel), зерно пленки. В MJ — --sref URL --sw 50. В SD — ControlNet Canny/Depth + Style Adapter.
4. Детерминизм (Seed / Structure)
Фиксированный Seed работает только при идентичном промте и версии модели. Для серии кадров лучше использовать ControlNet (OpenPose для позы, Depth для композиции) + фиксированный шум (Noise Offset), меняя только промт-заголовок (age, outfit, action).
Рабочий процесс: от одного лица к семейному альбому
Генерируем «Прототип»
Создайте один идеальный портрет старшего брата. Используйте детальный промт: возраст, национальность, уникальные черты (родинка над бровью, асимметрия улыбки). Сохраните Seed и промт. Это ваш «Адам».
Извлекаем «ДНК»
Из лучшего кадра берите URL для --cref (MJ) или загружаете в IP-Adapter (SD). Выделяйте лицо маской (InPaint/FaceID), чтобы фон и прическа не утекали в следующие генерации.
Вариации пола и возраста
Меняйте только модификаторы: female, 16 years old, freckles, braces или male, 40 years old, beard, glasses. Якорь (—cref/IP-Adapter) тянет структуру черепа и глаза. Вес влияния (—cw / IP-Adapter scale) регулируйте: 0.8–1.0 для лица, 0.3–0.5 для прически/одежды.
Сборка сцены (Group Shot)
Групповые фото — отдельная задача. Не пытайтесь сгенерировать всех сразу. Сгенерируйте каждого по отдельности с одинаковым Seed/ControlNet, затем соберите в композицию через InPaint (SD) или Vary Region (MJ), используя ControlNet OpenPose для заданной позы группы.
Наивный промт vs. Системный подход
Наивный подход
> a photo of a brother and two sisters, same eyes, same nose, family portrait, 8k, photorealistic
> (next prompt) brother and sister walking in park, sunset
> (next prompt) sister reading book, cozy room- Лица разные в каждом кадре
- Возраст «плывёт» ±10 лет
- Стиль фото скакает (пленка/цифра/рисунок)
- Невозможно собрать групповую сцену
Системный подход (Midjourney)
[Master Desc]::2 --cref URL_prototype --cw 100 --sref URL_style --sw 50 --ar 2:3 --v 6.0 --stylize 250
[Master Desc]::2 female, 19yo, freckles, summer dress --cref URL_proto --cw 85 --sref URL_style --sw 50 --ar 2:3
[Master Desc]::2 male, 35yo, stubble, linen shirt --cref URL_proto --cw 90 --sref URL_style --sw 50 --ar 2:3- Структура черепа сохраняется на 95%
- Возраст и пол управляются явными тегами
- Единый стиль (свет, цвет, камера)
- Готовые ассеты для сборки группы
Ловушки «брат с сёстрами»: возраст, пол, взаимодействие
Проблема возрастного разброса
Промт «brother 25, sister 10» часто даёт двух 17-летних. Модель усредняет возраст по выборке.
Решение: Явные маркеры развития: «tanner stage 5», «pre-pubertal», «crow’s feet», «nasolabial folds», «baby fat cheeks». Для MJ добавляйте вес: age::1.5. В SD — используйте Age Slider в ControlNet или LoRA возраста.
Смена пола = смена структуры
При смене male→female модель меняет форму черепа, челюсть, бровь. —cref с высоким весом (100) может навязать мужскую структуру сестре.
Решение: Понижайте --cw до 50–70 для сестёр. Или используйте два разных якоря: один для братьев (male ref), другой для сестёр (female ref), но с общим Master Description глаз/носа/кожи.
Взаимодействие рук и взглядов
В групповой генерации руки часто срастаются, взгляды не встречаются, позы нефизичны.
Решение: Только ControlNet OpenPose (или MJ Vary Region + референс позы). Генерируйте позу отдельно (скелет/3D-модель в Blender/DesignDoll), накладывайте лица через InPaint/FaceSwap (React/InsightFace). Не ждите от модели правильной анатомии взаимодействия «из коробки».
Шаблон «Мастер-описания» для копирования
# MASTER DNA BLOCK (copy-paste into every prompt)
[SUBJECT]::2, identical twin-level facial structure,
eyes: almond shaped, heterochromia central (hazel center, green rim), distinct epicanthic fold,
nose: straight bridge, slightly upturned tip, narrow nostrils,
mouth: cupid's bow, full lower lip, subtle dimples when smiling,
skin: porcelain texture, barely visible freckles across nasal bridge, cool undertone,
hair: natural dark ash brown, fine texture, middle part,
bone structure: high zygomatic arches, narrow mandibular angle
# STYLE ANCHOR (--sref or ControlNet Reference)
cinematic portrait, 85mm f/1.2, Rembrandt lighting with fill, Kodak Portra 400 color science, subtle film grain, shallow depth of field, neutral background
# VARIABLE SLOTS (change per character)
[AGE_GENDER] :: male, 32yo, light stubble, tired eyes | female, 14yo, braces, baby fat, ponytail | female, 28yo, red lipstick, bob cut, hoop earrings
[OUTFIT] :: oversized wool sweater | school uniform | silk blouse, blazer
[ACTION] :: looking at camera, slight smirk | reading, glasses slipping | laughing, head thrown backБлок [SUBJECT] заменяется на «brother», «older sister», «younger sister». Вес ::2 заставляет модель приоритизировать генетику над одеждой.
Инструментарий: где что работает лучше
| Задача | Midjourney v6+ | Stable Diffusion (SDXL/1.5) | DALL-E 3 / Firefly |
|---|---|---|---|
| Фиксация лица (Identity) | --cref URL --cw 80-100 | IP-Adapter FaceID Plus / InstantID / Reference Only (ControlNet) | Слабо. Только через детальное текстовое описание + Seed (если доступен) |
| Фиксация стиля (Look) | --sref URL --sw 20-100 | ControlNet Canny/Depth + Style Adapter / IP-Adapter Style / LoRA | Только текстовые дескрипторы стиля |
| Управление позой/композицией | --cref не управляет позой. Vary Region + референс позы | ControlNet OpenPose / Depth / Canny (обязательно для групп) | Только через промт (недетерминировано) |
| Возраст / Пол (Attribute Sliders) | Текстовые веса ::1.5, регенерация | LoRA Age/Gender, ControlNet Normal Map, Prompt Travel | Только промт |
| Групповые сцены | Сборка из частей (Vary Region / Pan) | Multi-IP-Adapter / Regional Prompter / ComfyUI Workflow | Очень ограничено |