Цель: детерминизм и консистентность. Любой ассет / кейфрейм / видео-шот собирается по жёсткому шаблону — все блоки обязательны (или явное «—»). Никаких скачков погоды, времени суток, стиля, расстановки или состояния предметов.
0. Инварианты vs переменные
Каждый параметр — либо ФИКСИРОВАН на весь ролик, либо меняется ОСОЗНАННО и МОНОТОННО. Третьего нет.
| ФИКСИРОВАНО (копипаст во ВСЕ промпты) | МЕНЯЕТСЯ (по таймлайну/раскадровке) |
|---|---|
| STYLE-lock · WORLD · DETAIL-density · PROHIBIT | TIME-OF-DAY (по таймлайну) |
| WEATHER эпизода (одна на ролик) | LIGHT-direction в рамках сцены |
| character identity + LOCKED OUTFIT | consumable STATE (рыба/костёр/палатка) |
| Bao design · prop design | CAMERA / framing / крупность |
| LOCATION blocking (расстановка) | ACTION (что происходит) |
Правило: если параметр не в правой колонке — он буквально одинаков во всех промптах. Погода и стиль — дословный копипаст. Это убивает скачки.
A. IMAGE PROMPT — блоки по порядку, все обязательны
- STYLE-LOCK fixed — дословно из STYLE.md STYLE BLOCK.
- WORLD fixed — дословно из STYLE.md WORLD BLOCK.
- DETAIL-DENSITY fixed — «rich, dense, every pixel alive: textured grass/foliage, flowers, rocks, layered depth foreground→background; never sparse/empty/flat backdrop».
- WEATHER fixed на эпизод — погода ЭПИЗОДА, одинаково везде. Напр.
clear warm sunny summer day, soft cumulus clouds. - TIME-OF-DAY + LIGHT по таймлайну — слот по таймлайну:
late-morning, high warm sun from upper-left, soft short shadows. Направление света держится в рамках сцены. - LOCATION + BLOCKING по локации — какая локация (L1–L5) + расстановка относительно master:
same camp as ref: jeep screen-LEFT 3/4-rear, fire ring center-RIGHT foreground, lake behind, pines right, bluff left. Правило 180°. - SUBJECT по типу шота — нужные слои дословно: HEROINE (Mila + LOCKED OUTFIT) / PUG (Bao) / prop-lock + какие refs.
- ACTION + STATE по ledger — что происходит + точное состояние расходников:
Mila slices the fish FILLET (state: filleted) on the board; fire = steady flame; pan = empty on the stones. - CAMERA по кадру — крупность (wide/mid/close/ECU) + ракурс + высота + «оптика»:
medium shot, eye-level, slight 3/4, ~35mm feel. - COMPOSITION по кадру — где субъект в кадре, слои (перед/сред/даль), негативное пространство.
- REFS — master + character/prop (макс 2–3), всегда «no text».
- NEGATIVES — стандартный стек (§C).
B. VIDEO PROMPT (i2v-шот) — поверх готового кадра
- STYLE-HOLD fixed — «keep the EXACT art style, linework and colors of the input image; do not restyle, do not morph».
- CAMERA-MOTION — по умолчанию
LOCKED STATIC camera; иначе явноvery slow push-in/slow tracking(только TRAVEL). - MACRO-ANIMATION один вектор — ГЛАВНОЕ событие кадра, ОДИН вектор: что именно движется и КУДА. Одно действие на шот.
- MICRO-ANIMATION — «каждый пиксель жив»: перечислить фон-жизнь, которая шевелится всегда: «grass and flowers sway in the breeze, Mila's ponytail flutter, steam curls, clouds drift, water ripples, fire flickers, Bao breathes/blinks».
- TIMING — темп (
slow, calm, meditative), длительность (6с),seamless loopесли NATURE/AMBIENCE. - ASMR-SOUND — конкретные диегетические звуки + жёстко:
ASMR sound only, NO voice, NO words, NO speech, NO music. - NEGATIVES — §C + видео-специфичные:
no camera shake, no morphing/warping, no talking/mouth movement, no style change, no floating/levitating objects, no extra limbs/fingers, no new objects appearing, no state revert.
C. Стандартный NEGATIVES-стек
no on-screen text / letters / captions / watermark no other people / second person / a man (unless scripted) no style change no different outfit / changing clothes / different hairstyle no husky or non-pug dog (Bao = fawn pug) no supernatural / two moons / floating islands / glowing flora no dark desaturated gloomy grading no sparse empty flat background no floating / levitating objects no explicit / suggestive / nudity // Для видео добавить: no talking / mouth movement no music no camera shake no morphing
D. Заполненный пример
D.1 · IMAGE keyframe (нарезка филе, лагерь, день → золотой час)
[STYLE-LOCK: <дословно STYLE BLOCK из STYLE.md>] [WORLD: <дословно WORLD BLOCK>] [DETAIL: rich dense living world, textured grass, flowers, rocks, layered depth, no empty backdrop] [WEATHER: clear warm sunny summer day, soft cumulus clouds] // эпизодная, fixed [TIME+LIGHT: late golden afternoon, warm low sun from the left, long soft shadows] [LOCATION+BLOCKING: same camp as reference image 1 — jeep screen-LEFT 3/4-rear, stone fire ring center-RIGHT foreground, turquoise lake behind, pines right, rock bluff left; 180° respected] [SUBJECT: HEROINE Mila <дословно HEROINE block, locked outfit + leather fingerless gloves>] [ACTION+STATE: close-up, Mila's gloved hands slice a FISH FILLET into pieces on a wooden board (fish state = filleted, not whole); one cast-iron ONE-handle skillet sits EMPTY on the fire stones nearby] [CAMERA: close-up, slightly high angle looking down at the board, ~50mm] [COMPOSITION: hands+board fill lower-left, warm fire glow lower-right, camp bokeh upper background] [REFS: masters/L4-camp-master.png + assets/character/mila/mila-sheet.png ; no text] [NEGATIVES: <стек §C>]
D.2 · VIDEO shot (тот же кадр → i2v)
[STYLE-HOLD: keep the exact art style/linework/colors of the input image, no restyle, no morph] [CAMERA-MOTION: LOCKED STATIC camera, no movement] [MACRO: the gloved hands slice down through the fillet, a piece separates and falls aside] [MICRO: fire flickers warm light, thin steam drifts, a loose strand of hair sways, faint bokeh grass moves in the background breeze] [TIMING: slow, calm, meditative, 6s] [ASMR: crisp wet knife-on-board slicing, soft fire crackle — sound only, NO voice, NO words, NO music] [NEGATIVES: no camera shake, no morphing, no talking, no style change, no floating pan, no extra fingers]
E. Как это живёт в конвейере
- В манифесте
episode.jsonна каждый шот хранятся ТОЛЬКО переменные поля (time_of_day, location, blocking, subject-refs, action, state, camera, composition, macro, micro, asmr). - ФИКСИРОВАННЫЕ блоки (STYLE / WORLD / DETAIL / WEATHER / NEGATIVES) подставляются программно из STYLE.md — не дублируются руками и потому не дрейфуют.
- Линтер перед генерацией: все обязательные блоки заполнены; TIME-OF-DAY и STATE монотонны по ledger; WEATHER и STYLE идентичны во всех шотах; refs существуют; для NATURE есть micro-animation.
- Результат: один и тот же вход → предсказуемый выход; между кадрами ничего не «прыгает».