Mixed-Prompt-композиция: одна картинка, пять типизированных референсов
Нужна одна картинка, удовлетворяющая пяти ограничениям одновременно: этот человек, в этой позе, в том окружении, в этой одежде, с этим продуктом. Прикрепили пять референсов. Генератор тянет всё из всего — identity человека становится гибридом, цвет продукта расходится к цвету одежды, поза падает где-то между трёх. Silent-reference-галлюцинация на полную громкость. Генератор отработал; промпт просто не сказал ему, какой референс читать для какого вопроса.
Решение — одним LLM-вызовом, который собирает один связный композитный промпт, типизируя каждый референс и инлайн называя, для чего каждый, — чтобы генератор получил одну инструкцию с одной ролью на картинку, а не пять конкурирующих image-pull'ов.
Это mixed-prompt composition builder: single-shot-паттерн построения промпта, сливающий несколько референсов, где каждый отдаёт только свой назначенный домен — identity от одного, поза от другого, фон от третьего, одежда от четвёртого, продукт от пятого. Single-shot-имплементация typed-reference-composition.
Проблема
Пользователю часто нужна одна картинка, комбинирующая несколько независимых ограничений:
- Этот человек (identity-референс)
- В этой позе (pose-референс — только поза, игнорировать внешность)
- В этом окружении (background-референс — только место, игнорировать субъектов)
- В этой одежде (wardrobe-референс — только одежда)
- С этим продуктом (product-референс — только объект)
Прикрепление всех пяти как сырых референсов даёт некогерентный выход. Модель пытается использовать всё из каждой картинки. Silent-reference-режим отказа на максимуме.
Многоступенчатый campaign-пайплайн решает это через architect-каскады, IMAGE ORDER и identity/product-Locks — но ценой запуска full multi-stage пайплайна. Для one-shot композиции — это слишком много механики.
Сам паттерн
Один LLM-вызов собирает один композитный промпт, явно типизируя каждый референс:
Mixed-prompt вход
├── subject image → refType: "identity"
├── pose reference → refType: "pose"
├── background reference → refType: "background"
├── clothing images → refType: "clothing"
├── product image → refType: "product"
└── technical / style → refType: "technical"
LLM получает пять (или меньше) картинок плюс структурированный массив parts, объявляющий refType каждой. Задача системного промпта узкая:
Build one coherent image-generation prompt. For each reference, use only its declared domain. Ignore everything else in every image. Reference each image by its explicit number so the generator knows which image to consult for which domain.
На выходе один промпт с инлайн-декларациями номеров:
A [subject from Image 1, physical identity preserved],
[pose/body position from Image 2, wardrobe and identity ignored],
wearing [garments from Images 4a, 4b — color and fabric only, not the models
that wear them], standing in [environment from Image 3, subjects in Image 3
ignored], holding [product from Image 5, rigid form preserved]...
Почему refType-типология несущая
Без объявленной роли на картинку LLM по умолчанию идёт в «use everything from every image», и генератор делает то же. refType-типология — это явный контракт:
identity— лицо, тело, волосы, тон кожи, отличительные черты. Всё остальное из картинки игнорируется.pose— положение тела, угол, жест. Внешность, одежда, фон из этой картинки игнорируются.background— окружение, световое состояние, set dressing. Субъекты и продукты на картинке игнорируются.clothing— форма одежды, ткань, цвет. Модель, носящая её, игнорируется.product— форма объекта, ориентация, текст. Всё вокруг продукта игнорируется.technical— аспект, формат, подсказки композиции. Никакого предметного содержания.
Декларация явная в тексте промпта («using Image 2 for pose only, ignoring the person depicted in Image 2»). Эта явность и останавливает модель от тихого подтягивания не того измерения.
Отношение к A.O.C. и «тяжёлому» пути
Mixed-prompt-композиция — не A.O.C.-промпт. Это один композитный промпт, собранный из типизированных частей. Паттерны решают разные задачи:
- A.O.C. → как описать один шот (три оси: anchor, optics, chemistry).
- Mixed-prompt → откуда взять содержимое шота из множества референсов.
Они могут компоноваться — описание, собранное mixed-prompt, может занять Anchor-блок A.O.C. — но обычно это альтернативы. Mixed-prompt — лёгкий путь, когда нужна одна картинка с многими входами; A.O.C. + multi-stage campaign-пайплайн — тяжёлый путь, когда нужны пять консистентных шотов.
Почему стоит давать паттерну имя
Паттерн («типизированная композиция референсов с явной per-image декларацией ролей») обобщается за пределы продуктовой работы:
- Fashion try-on — одежда из одного референса, модель из другого, окружение из третьего.
- Итерация character design — лицо из одного листа, костюм из другого, поза из третьего.
- Editorial compositing — субъект со съёмки, локация с мудборда, реквизит из библиотеки.
Любая single-shot-композиция сталкивается с тем же silent-reference-режимом отказа и выигрывает от той же refType-дисциплины.
Идёт в паре с
- typed-reference-composition — более широкая архитектура, single-shot-инстанс которой описан здесь.