• Текст описывает только субъект, локацию и камеру; стиль, цвет и свет несёт референс
  • Умолчание — это поимённый запрет с анти-примерами, а не просьба писать короче
  • Паттерн держится на 2 обязательствах: надёжный второй канал и явный список запретов

Задача

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

Механика такая. Текст говорит «moody directional lighting», moodboard показывает яркий дневной свет. Генератор не выбирает, он усредняет, взвешивает полупроизвольно и выдаёт нечто, чего ни один вход по отдельности не просил. Более сильная модель этого не чинит: компромисс структурный, две инструкции по одному измерению обязаны согласоваться, и согласование, это потеря специфичности с обеих сторон. Стандартный совет «пишите текст точнее, чтобы он совпадал с референсом» недостаточен: в продакшне референсы пользовательские и разнородные, выравнивать под них текст при каждой сборке промпта хрупко.

flowchart LR
    T[Текст:<br/>moody lighting] --> G[Генератор<br/>усредняет]
    R[Moodboard:<br/>дневной свет] --> G
    G --> X[Выход, которого<br/>никто не просил]
    classDef key stroke:#FF3600,stroke-width:2px
    class X key

Метод

Сильный ответ: перестать писать текст о том, что уже несёт канал референсов. Отдать эти измерения референсу — замолчать по ним в тексте.

Разделение по каналам:

  1. Текстовый канал описывает только субъект, локацию и камеру.
  2. Визуальный канал несёт стиль, цвет, свет, атмосферу.
  3. Ни одному каналу не разрешено заходить на территорию другого.
flowchart LR
    T[Текстовый канал] --> T1[Субъект,<br/>локация, камера]
    V[Визуальный канал] --> V1[Стиль, цвет,<br/>свет, атмосфера]
    T1 --> G[Генератор]
    V1 --> G

Системный промпт LLM, который пишет текст, запрещает называть измерения, отданные визуальному каналу:

Describe only subject, location, camera. Never mention style, colour,
lighting or rendering quality: those come from the attached references.
Do not write sentences like "warm cinematic tones", "moody dramatic
lighting", "golden-hour glow", "rich saturated colour".

Анти-примеры в конце — не украшение. Это предложения, которые LLM склонен написать по умолчанию, и явное их отклонение вытаскивает модель из писательских инстинктов.

Паттерн держится на двух обязательствах.

Надёжный второй канал. Умолчание работает, только когда не-текстовый канал действительно несёт умолчанные измерения: композитный референс, конденсирующий много входов в один (см. консистентность серии), предыдущий рендер в цепочке, типизированный референс с объявленной ролью. Без него модель не получает «чистый выход», а угадывает, и результат размытый.

Поимённый запрет. «Be concise» — не умолчание. «Don't over-describe lighting» — не умолчание. Это намёки, и LLM обходит намёки в пользу дефолтного стиля. Умолчание перечисляет измерения по именам, в негативной форме («do not mention Y», а не «focus on X»), с конкретными запрещёнными фразами. Конкретные запреты выполняются надёжнее, чем размытые акценты.

Почему это работает: паттерн про распределение внимания, а не про объём инструкции. Когда два канала описывают одно измерение, внимание модели расщепляется на их согласование, согласование недетерминировано (какой канал выигрывает, меняется от шота к шоту), и специфичность обоих теряется в усреднении. Когда текст замолкает, внимание уходит к каналу, у которого остался голос, специфичность референса сохраняется, а полная специфичность текста приземляется на измерения, где он единственный носитель.

flowchart TB
    subgraph both[Два канала на одно измерение]
        direction LR
        A1[Текст +<br/>референс] --> A2[Согласование<br/>недетерминировано]
        A2 --> A3[Специфичность<br/>теряется]
    end
    subgraph quiet[Текст замолкает]
        direction LR
        B1[Голос только<br/>у референса] --> B2[Внимание<br/>не расщеплено]
        B2 --> B3[Специфичность<br/>сохранена]
    end
    both ~~~ quiet
    classDef key stroke:#FF3600,stroke-width:2px
    class A3 key

Где это живёт в продакшне:

СтадияТекст описываетУмолчано, несёт другой канал
Промпты с несколькими референсамиСубъект, локация, камераСтиль, цвет, свет (композитный moodboard)
Motion-промпты к отрендеренным стилламФизическое движение, движение камерыСодержимое сцены, эстетика (сам стилл)
Правки одного кадраТолько запрошенное изменениеВсё остальное (baseline)

Общий принцип: канал с самым плотным надёжным сигналом по измерению владеет им, остальные — молчат. Он обобщается за пределы картинок. Генерация кода с прикреплённым файлом: промпт описывает только логику, не пересказывает сигнатуру и импорты, иначе модель начнёт переписывать то, что ей показали без изменений. Редактирование по шаблону: только контент, не структура. Агент с прикреплёнными схемами инструментов: только намерение пользователя, не пересказ инструментов, иначе выбор инструмента дрейфует. RAG: только то, что поиск упустил, иначе модель взвешивает найденное дважды.

Три вопроса при проектировании мультиканального промпта: что надёжно несут не-текстовые каналы (перечислить); что текст должен нести уникально (описать исчерпывающе); где оба канала пытаются описать одно и то же (там текст замолкает, а запрет попадает в системный промпт).

flowchart LR
    D[Измерение] --> Q{Несёт надёжный<br/>не-текстовый канал?}
    Q -->|да| S[Текст молчит,<br/>запрет поимённо]
    Q -->|нет| T[Текст описывает<br/>исчерпывающе]
    classDef key stroke:#FF3600,stroke-width:2px
    class S key

Обновление, сентябрь 2026. У умолчания нашёлся второй фронт — внутри самого текста: генератор картинок читает существительное как заказ на предмет в кадре. В серии из 20 предметных карточек 2 кадра ушли в брак, потому что в общем хвосте промпта стояло «large overhead softbox», и на настенных шотах модель нарисовала софтбокс в кадре. Фикс: описывать действие света без названия прибора («soft even diffused light from above») и добавить «no lighting equipment». Hex-код в промпте красит металл плоской заливкой, поэтому металл описывается физикой материала, а не цветом. Клавиша для сайта после уточняющего промпта вышла с нижней частью колпачка: промпт описывал низ со штоком, и модель его показала. Сработал промпт в одну строку, где про низ нет ни слова. Вывод продолжает основной: тому, чего не должно быть в выходе, нет места в тексте, даже в роли уточнения.

Где ломается

  • Умолчание без альтернативы. Текст молчит про свет, а ни один референс света не несёт. Выход освещён по умолчанию, размыто. Проверяйте второй канал до того, как вводить запрет.
  • Слишком много умолчаний. Запрещено столько, что оставшийся текст несёт мало. Умолчание — про избегание пересечения, а не про минимизацию текста: если текст — единственный носитель измерения, он обязан его описать.
  • Дрейф канала. Пайплайн изменился, композитный moodboard больше не прикрепляется, а запрет остался. Теперь измерение не несёт никто. Правила умолчания привязаны к каналам, которые их поддерживают; убрали канал — снимайте правило.
  • Утечка словаря и отсутствие цифр. LLM всё равно вставляет «warm cinematic tones»; лечится списком запрещённых фраз, а не только именами измерений. Размер эффекта не измерен: контролируемого сравнения с промптами той же длины без умолчания нет, паттерн опирается на продакшн-наблюдения.

Итог

  • Максимализм в промптинге специфичен для канала: одноканальная задача описывает всё, мультиканальная — только своё.
  • Умолчание добавляет специфичности оставшимся измерениям, а не экономит токены.
  • Реализация в три шага: найти надёжные не-текстовые каналы, перечислить их измерения, запретить их в тексте поимённо с анти-примерами.
  • Генератор картинок читает существительное как предмет в кадре: свет описывается действием, а не прибором, лишние детали объекта не упоминаются вовсе.
  • Умолчания в ваших пайплайнах уже есть — неявно. Явные живут дольше.

© Александр Никулин. Цитирование — с указанием автора и ссылкой · Версия для LLM