Skip to content
ИССЛЕДОВАНИЯ
6 мин. чтенияЧитать на английском

The Lock Layer

The Lock Layer

Сохранение identity и бренда как отдельная промпт-архитектура

Автор: Alex Nix Статус: Рабочий черновик — for public release


Abstract

Генеративные модели, обученные на широких данных, охотно перекраивают, идеализируют или сливают identity субъектов, которых они генерируют — лицо становится чуть симметричнее, пропорции продукта расходятся, логотип бренда перестаёт читаться. Промпты, пытающиеся это предотвратить написанием «preserve identity» в свободной прозе, проваливаются, потому что инструкция сохранения сидит в том же промпте, что и креативная инструкция, и LLM торгует их друг против друга.

Lock Layer Pattern разделяет сохранение и генерацию на два разных слоя промпта. Генеративный промпт описывает текущий кадр. Lock Layer оборачивает генеративный промпт неизменным структурированным ограничением — проигрываемым дословно на каждой генерации batch'а — называющим, что должно выжить без изменений. Lock вычисляется детерминированно из предварительно извлечённого дескриптора; генеративный промпт варьируется; identity субъекта — нет.

Эта статья описывает паттерн, его режимы отказа и открытые исследовательские вопросы вокруг него.


1. Мотивация

Три реальных продакшн-сбоя:

  • Face drift. На пятишотном кампейне структура лица одного и того же человека едва заметно сдвигается — расстояние между глазами, линия челюсти, острота подбородка. По отдельности каждый шот выглядит нормально; как набор зритель регистрирует «это разные люди».
  • Product form drift. Бутылка в шоте 1 имеет чуть другую крышку, чем бутылка в шоте 3. Логотип отзеркален. Текст лейбла становится нечитаемым в шоте 4 и уплывает в псевдо-текст в шоте 5.
  • Brand-voice drift. «Голос» персоны сдвигается между главами генерируемого нарратива — тон, склонность к длине предложений, словарный регистр.

Все три — версии одного архитектурного сбоя: забота о сохранении и креативная забота делят один промпт, и LLM торгует их друг против друга шот за шотом.

Написать «preserve the person's exact facial structure» в каждом промпте помогает маргинально — до тех пор, пока креативная инструкция конкретного шота (драматичный угол, soft focus, художественная интерпретация) не потянет выход к drift'у. Сохраняющая клауза — это просто слова, конкурирующие с другими словами.

Lock Layer переформулирует задачу. Сохранение — это не клауза внутри генеративного промпта; это слой, оборачивающий генеративный промпт.


2. Паттерн

Финальный вход генератора (один на каждую генерацию batch'а)
┌─────────────────────────────────────────────────┐
│ REFERENCE MAP                                    │ ← где живёт каждый референс
├─────────────────────────────────────────────────┤
│ LOCK LAYER                                       │ ← неизменные структурированные ограничения
│   (IDENTITY LOCK, PRODUCT LOCK, BRAND LOCK, …)  │
├─────────────────────────────────────────────────┤
│                                                  │
│         Генеративный промпт для этого выхода      │ ← варьируется на выход
│                                                  │
└─────────────────────────────────────────────────┘

Lock Layer и Reference Map проигрываются дословно на каждой генерации batch'а. Генеративный промпт варьируется на каждую генерацию.


3. Что содержит Lock

Lock — это структурированная переигровка предварительно извлечённого дескриптора. Дескриптор производится выше по пайплайну — обычно стадией LLM-анализа — и кодирует измерения, которые должны выжить между генерациями.

Identity Lock (персона) — выводится из анализа фото + структурированных параметров:

  • Authority statement: «ONLY Image 1 defines the person's identity.»
  • Override instruction: «If other reference images contain people, COMPLETELY IGNORE those people.»
  • Fidelity requirements:
    • Точная структура лица, пропорции, тон кожи, отличительные черты — 100%
    • Точный тип тела, build, пропорции
    • Точный цвет волос, текстура, длина, стиль
  • Explicit rejections: «No smoothing, idealising, reshaping, or blending with ANY other face from ANY other image.»

Product Lock — выводится из анализа продукта:

  • Rigid-unit rule: какие части двигаются вместе, а какие независимо
  • Orientation anchor: какая сторона к камере
  • Text and markings: on-pack-текст должен оставаться читаемым
  • Material state: стекло остаётся стеклом, металл — металлом
  • Scale context: без раздутия или сдутия по размеру

Brand Lock (обобщение за пределы картинок) — выводится из brand style guide:

  • Tone-of-voice-дескриптор
  • Vocabulary-ограничения (предпочтительные термины, запрещённые термины)
  • Заметки по ритму предложений
  • Explicit rejections (фразы, клише, формулировки, выравненные с конкурентами)

Конкретные измерения варьируются по домену. Форма константна: структурированная переигровка того, что должно выжить.


4. Почему разделение — ключевая опора

Слияние сохранения и генерации в одном промпте создаёт четыре конкретные проблемы:

  1. Загрязнение осей. Промпт, описывающий свет и композицию, становится нечитаемым, когда он несёт ещё и 150-словную клаузу identity. Ни креативное, ни сохраняющее намерение не читается чётко.
  2. Per-shot дрейф языка сохранения. LLM-ы переписывают клаузу сохранения чуть по-разному на каждый шот («keep her face recognisable» / «preserve the subject's features» / «maintain identity»). Variance в языке сохранения производит variance в результате сохранения.
  3. Непрозрачность дебага. Когда лицо расходится в шоте 4 — это вызвано креативной инструкцией, инструкцией сохранения, их взаимодействием или базовой моделью? Слитые промпты делают вопрос неотвечаемым.
  4. Потеря композируемости. Сохранение — забота, применимая ко многим задачам генерации; если она встроена в промпт каждой генерации, паттерн нельзя поднять и переиспользовать.

Отделение Lock Layer чинит все четыре:

  • Оси остаются чистыми — генеративный промпт описывает кадр, Lock описывает identity.
  • Язык сохранения по конструкции идентичен по всему batch'у.
  • Дебаг начинается с вопроса «достиг ли Lock модели без изменений?» Если да — drift в генеративном промпте; если нет — в инфраструктуре.
  • Lock — standalone-артефакт: один и тот же Lock может оборачивать A.O.C.-промпты, text-to-image-промпты или другие форматы.

5. Откуда берётся Lock

Lock — это детерминированная функция от предварительно извлечённого дескриптора, а не LLM-вызов. Поток:

  1. Upstream-извлечение дескриптора (LLM, обычно одноразово или per-subject). LLM на низкой температуре анализирует референсное изображение и эмитит структурированный дескриптор. Это дорогая, переменная стадия.
  2. Вычисление Lock (чистая функция, без LLM). Дескриптор подставляется в Lock-шаблон. LLM не задействован; выход детерминирован при заданном дескрипторе.
  3. Lock replay (шаг оборачивания, per generation). Каждая генерация batch'а дословно добавляет Lock перед остальным промптом.

Надёжность паттерна происходит из replay'а без LLM: variance между генерациями невозможна по конструкции, потому что Lock byte-идентичен.


6. Режимы отказа

| Сбой | Симптом | Фикс | |---|---|---| | Слишком расплывчатый дескриптор | «preserve facial features» без указания каких | Извлечение дескриптора должно перечислять конкретные измерения | | Lock борется с генеративным промптом | Генеративный говорит «soft-focus dreamy portrait»; Lock — «sharp facial fidelity» | Генеративный промпт должен уступать Lock'у на измерениях сохранения; стилевые слова, подразумевающие нарушение fidelity, отклоняются | | Lock-drift между серией | Кто-то регенерирует Lock посреди batch'а | Lock вычисляется один раз на проект и проигрывается; регенерация версионируется | | Lock встроен вместо обёртки | Lock положен внутрь генеративного промпта, не как слой | Downstream-парсер должен обеспечиваеть границу слоя | | Измерения дескриптора промахиваются мимо реального сбоя | Identity Lock тщательно описывает лицо; вместо этого расходится гардероб | Дескриптор должен покрывать полный «что должно выжить» — расширять итеративно |


7. Обобщение за пределы картинок

Паттерн — обернуть задачу генерации неизменным структурированным ограничением, выведенным из предварительно вычисленного дескриптора — применим везде, где забота должна выжить генерацию без изменений, пока генеративная инструкция варьируется.

  • Сохранение brand-voice в long-form-контенте. Brand Lock оборачивает chapter-level-генерацию контента. Тон, словарь, запрещённые фразы выживают без изменений на 50 главах content-marketing-серии.
  • Character-консистентность в нарративной генерации. Character Lock (личность, голос, отношенческие позиции, физическая внешность, если описана) оборачивает per-scene-генерацию нарратива.
  • Spec-fidelity в демо-видео-скриптах. Spec Lock (возможности продукта, messaging-позиционирование, техническая точность) оборачивает per-scene-генерацию скрипта.
  • Safety- и policy-границы в tool-using-агентах. Policy Lock (разрешённые действия, запрещённые действия, escalation-триггеры) оборачивает per-task-генерацию плана действий. Особенно важно в агентных системах, где генеративная инструкция дико варьируется, а policy не должна.
  • Schema-сохранение в structured code generation. Schema Lock (data contracts, API-сигнатуры, инварианты) оборачивает per-function-генерацию кода.

Общий архитектурный вопрос, на который отвечает паттерн: что должно выжить этот вызов без изменений? Если ответ — стабильный, описываемый набор, паттерн подходит.


8. Отношение к смежным паттернам

  • A.O.C.-фреймворк. A.O.C. описывает кадр; Lock гарантирует, что субъект переживёт кадр. Они композируются на разных слоях: A.O.C. — это генеративный промпт, Lock оборачивает его.
  • Типизированная композиция референсов. Reference Map над Lock'ом в слоёном промпте — это дисциплина типизированных референсов. Оба паттерна регулярно появляются вместе.
  • System-prompt policies. Policy, выраженная в системном промпте, — слабый аналог Lock'а: она описана один раз, но LLM переинтерпретирует её на каждый вызов. Lock'и сильнее, потому что проигрываются дословно; они не переинтерпретируются.
  • Constitutional AI / principle-based constraints. Концептуально выравнены — фиксированные принципы, ограничивающие per-task-генерацию. Lock'и более конкретны и per-артефактны; constitutional-принципы более абстрактны и cross-task.
  • Two-Stage Architect Pattern. Lock чисто ложится в выход Architect-стадии: Architect эмитит генеративный промпт; пайплайн оборачивает его Lock'ом перед отправкой генератору.

9. Открытые исследовательские вопросы

  • Эмпирическая валидация прироста fidelity. Насколько Lock Layer реально снижает identity-drift по сравнению с merged-промптом идентичной длины и содержания? Нужно контролируемое исследование.
  • Полнота дескриптора. Какие измерения должен покрывать Identity Lock? Brand Lock? Ранние работы предполагают, что face structure + hair + build достаточны для persona-работы, но edge cases (отличительные татуировки, шрамы, очки) всплывают со временем. Таксономия «что может уплыть» по доменам была бы полезна.
  • Версионирование Lock'а. Когда дескриптор проекта меняется посреди продакшна, как старые генерации относятся к новым? Они «разные версии одного субъекта» или «разные субъекты»? Практический вопрос для продакшн-пайплайнов.
  • Кросс-модальные Lock'и. Передаётся ли Brand Lock, написанный под text-generation, на image-generation для того же бренда? Вероятно частично; не изучено.
  • Lock-level adversarial robustness. Если генеративный промпт активно пытается обойти Lock (креативные инструкции, подразумевающие drift — «стилизованная переинтерпретация субъекта»), как Lock держится? Нужно adversarial-тестирование.

10. Заключение

Lock Layer — это незначительный архитектурный ход с большими последствиями для надёжности. Отделение сохранения от генерации — Lock, оборачивающий генеративный промпт, а не встроенный в него — устраняет четыре категориальных режима отказа (загрязнение осей, дрейф языка сохранения, непрозрачность дебага, потеря композируемости), которые merged-prompt-дизайны стабильно производят.

Паттерн дешёвый — Lock это чистая функция от предварительно извлечённого дескриптора, проигрываемая дословно. Он композируем — один Lock может оборачивать множество разных генеративных форматов. И он обобщается — за пределы image-generation, на brand-voice, character-консистентность, spec-fidelity, safety-policies и schema-сохранение.

Приглашение — использовать его явно. Заботы о сохранении склонны накапливаться неявно в системных промптах и уплывать; называние их слоем делает их долговечными.


Цитирование

Nix, A. (2026). The Lock Layer — Identity & Brand Preservation as a Separable Prompt Architecture. Working paper.