# Управление генерацией

## Что вы сделаете

Представьте: у вас есть хороший стартовый кадр с курьером и велосипедом. В следующей попытке вы одновременно меняете кадр, движение камеры, длительность и текст действия. Новый файл выглядит лучше. Отлично — теперь остаётся только маленькая деталь: непонятно, почему именно он стал лучше.

В этом уроке вы соберёте **один управляемый тест**. Разложите решения по четырём местам, выберете одну изменяемую величину и заранее назовёте видимый признак, по которому тест можно принять или отправить на повтор. Это не бюрократия вокруг генерации. Это способ перестать чинить ролик наугад.

```learner-callout
{"stable_id":"aiv-c077-control-key-point","role":"key-point","title":"Главное: один тест должен отвечать на один вопрос","body":"Если меняется одна значимая переменная, следующий файл может подсказать причину результата. Если меняется всё сразу, вы получаете новый файл, но не новое знание."}
```

---

## Четыре места, где живут решения

У теста есть четыре слоя. Они работают вместе, но не должны спорить за одну и ту же работу.

**Исходники** — это файлы, которые уже существуют: стартовый кадр, портрет, фото предмета, референс движения или готовый клип. Они удерживают то, что вы получили до запуска.

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

**Интерфейс** — отдельные элементы управления выбранного инструмента. Если текущий экран даёт отдельное поле для режима, длительности, формата или качества, значение выбирают там, а не прячут в историю.

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

```learner-callout
{"stable_id":"aiv-c077-four-layers-observation","role":"observation","title":"Наблюдение: смешанные слои создают ложный контроль","body":"Когда стартовый кадр, настройки и текст промпта пытаются одновременно отвечать за одно свойство, после неудачи хочется переписать всё. Разделение слоёв возвращает одну понятную ручку для следующей попытки."}
```

## Назначьте исходникам узкую роль

Фраза «использовать все референсы» ничего не объясняет. Один файл может отвечать за конкретную опору, но не должен внезапно становиться режиссёром всей сцены.

В примере с курьером роли выглядят так:

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

Если два файла спорят об одном свойстве, назначьте главный до запуска. Длинный промпт конфликт не лечит: он просто делает спор многословнее.

```learner-callout
{"stable_id":"aiv-c077-source-role-caution","role":"caution","title":"Осторожно: не давайте одному файлу слишком много власти","body":"Стартовый кадр может держать композицию и свет, но не обязан доказывать личность. Референс движения может показывать темп, но не должен менять лицо, велосипед или место. При конфликте сузьте роли, а не добавляйте ещё один общий запрет."}
```

## Что оставить в интерфейсе

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

В промпте остаётся смысл: курьер берётся за руль, ведёт велосипед вперёд, камера не теряет пару и клип заканчивается в читаемом состоянии. В интерфейсе остаются доступные параметры выбранного запуска. Исключение возможно только для конкретного способа, который подтверждённо принимает параметр именно текстом; без такого подтверждения не угадывайте.

> **Главное:** сначала посмотрите на текущий экран, затем запишите доступное значение. Память о старом руководстве — плохой интерфейс, хотя и очень уверенный в себе.

Если нужного способа или обязательного входа нет, зафиксируйте: «маршрут не подтверждён». Это честнее, чем выдавать подготовку за запуск.

## Карточка одного теста

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

```template
Задача теста:
Выбранный способ в текущем интерфейсе:
Исходники и узкая роль каждого:
Что описывает промпт:
Что выбирается только в интерфейсе:
Одна изменяемая переменная:
Принять, если виден результат:
Отклонить и повторить, если видно:
Статус запуска: подготовлен / файл просмотрен:
```

### Заполненный пример

Есть принятый стартовый кадр: курьер стоит рядом с велосипедом. Задача теста — увидеть начало движения, не меняя человека, велосипед и место.

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

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

Вот текст для вставки в генератор. Он не содержит режим, длительность, формат или качество: эти значения проверяются и выбираются отдельно.

```prompt
The courier grips the bicycle handlebar and begins walking the bicycle forward at a calm pace. Keep the same person, clothing, bicycle geometry, location, composition, and lighting from the attached start frame. The camera remains steady and keeps the courier and bicycle readable. End with the bicycle moving forward under the courier's control. No identity change, no object duplication, no sudden camera move.
```

## Одна переменная — один ответ

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

Если действие слишком быстрое, меняйте только скорость. Если лицо начинает уходить, меняйте только опору личности. Если камера теряет героя, упрощайте только задачу камеры. Если деформируется велосипед, уточняйте или заменяйте только опору предмета.

```learner-callout
{"stable_id":"aiv-c077-one-variable-technique","role":"technique","title":"Техника: вернитесь к принятой основе","body":"Перед повтором не переписывайте весь промпт и не меняйте маршрут без причины. Сохраните то, что уже работало, назовите одну наблюдаемую поломку и измените один вероятный источник этой поломки."}
```

Это даёт не просто очередной файл, а маленькое рабочее знание: например, спокойный темп сохранил велосипед, а быстрая формулировка сделала действие нечитаемым. Оно полезнее случайной удачи, потому что переносится в следующий тест.

---

## Практика: подготовьте честный тест

Выберите один будущий кадр или клип. Заполните карточку, подготовьте один английский промпт, назовите одну переменную и до запуска запишите, что будет считаться принятием и отказом.

Если у вас есть реальный доступ к выбранному способу, выполните один тест, сохраните фактический файл и сравните его с критериями. Затем запишите `принять` или `повторить` и одну причину.

Если запуска сейчас нет, урок всё равно можно завершить на подготовительном уровне: у вас есть заполненная карточка и готовый текст промпта. Не называйте это проверенной генерацией. Проверка начинается только там, где есть фактический файл и вы его посмотрели.

```learner-callout
{"stable_id":"aiv-c077-practice","role":"practice","title":"Практика: сформулируйте проверку до запуска","body":"Сначала назовите видимый критерий, затем запускайте. Так вы не будете после генерации придумывать, почему вам «вроде нравится» или «вроде не нравится» результат."}
```

## Проверка и следующий шаг

Урок выполнен, когда у каждого исходника есть ясная роль, настройки интерфейса не спрятаны в промпте, меняется ровно одна значимая переменная, а критерий описывает то, что можно увидеть.

После реального запуска добавляется ещё одно доказательство: сохранённый файл и честное решение `принять / повторить`. Если карточка всё ещё содержит варианты через «или», вернитесь к выбору способа. Если вы не можете назвать видимый результат, вернитесь к плану кадра. Если файл уже есть, но нарушает критерий, следующий шаг — диагностировать одну причину, а не устроить массовую смену всего проекта.

```learner-callout
{"stable_id":"aiv-c077-control-checkpoint","role":"checkpoint","title":"Проверка: тест управляемый","body":"Тест готов к запуску, когда роли исходников, текст промпта, настройки интерфейса и одна переменная разделены. Тест принят только после просмотра фактического файла по заранее записанному видимому критерию; без файла он остаётся подготовленным планом."}
```

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