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

Пайплайн видео-продакшна на генеративном AI

Пайплайн видео-продакшна на генеративном AI

От клиентского брифа до финального шота, стадия за стадией

Автор: Alex Nix Статус: Рабочий черновик — for public release Парная статья: A.O.C. — Промпт-фреймворк для генеративных image-моделей


Abstract

Большинство текстов про генеративный AI для видео трактуют генерацию как один шаг: промпт заходит, клип выходит. В продакшн-работе всё иначе. Тридцатишотный ролик — это не тридцать независимых генераций — это граф зависимостей с требованиями scene-series-консистентности, cross-reference-системой для персонажей и локаций, style-lock'ом, который должен держаться через полчаса материала, и LLM-orchestration-слоем, делающим всё это поддающимся написанию.

Эта статья — структурированное описание такого пайплайна, построенного и эксплуатируемого в продакшне на протяжении нескольких лет. Она трактует генеративный AI не как модель для промптинга, а как стадию внутри большей архитектуры. Статья называет стадии, механизмы консистентности, граф зависимостей и дизайн-решения, оказавшиеся несущими. Цель прикладная: дать другим builder'ам референсную архитектуру, с которой можно начать и с которой можно спорить. Слой оркестрации (§ 5) управляется небольшим набором скиллов Claude Code — скиллы применения A.O.C. для хребта промпта, скиллы креативной режиссуры для до-промптовой половины, Happy Horse Prompt для HH-видео, MiniMax Voice для речи и /logo-buildergenerative-logo-design) для айдентики.


1. Тезис

Генеративное AI-видео в продакшн-качестве — это constraint-propagation-пайплайн, а не модель генерации.

Надёжный, консистентный, директабельный выход возникает из пайплайна, который: (а) фиксирует стиль на ранних стадиях с минимальными затратами, (б) разделяет композицию, рендер и motion как независимые стадии, (в) обеспечивает scene-series-консистентность через линейный reference-inheritance и (г) использует LLM-orchestration-слой, чтобы каждый выход стадии был well-formed для следующей.

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


2. Шесть стадий

Пайплайн раскладывается на шесть стадий, каждая адресует один класс решений:

setup → scenario → storyboard → moodboard → scenes → video

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

2.1 Setup

Минимально-жизнеспособное описание проекта: тайтл, аспект, оценка хронометража, технические заметки, knowledge-base-файлы (предварительно извлечённые клиентские брифы, скрипты, референс-документы, заметки). Ничего ещё не сгенерировано. Setup — это staging-зона для входов следующих стадий.

2.2 Scenario

Бриф или сценарий становится структурированным шот-листом. LLM, действующая как продакшн-режиссёр, эмитит список шотов, каждый с:

  • Имя шота в форме {номер-сцены}{буква} (1A, 1B, 1C, 2A, …)
  • Семиэлементное описание: субъект+действие, локация, крупность, угол, движение, оптика, свет
  • Тип шота: full-ai / composite / live
  • Длительность
  • isKeyFrame: опциональный флаг pairing'а под transition-stitching (см. §2.6)

Схема именования шотов несущая. Шоты, делящие номер сцены, образуют серию, которая должна оставаться визуально консистентной; буквенный суффикс упорядочивает их; схема выживает без изменений через каждую downstream-стадию.

Дизайн-решение — почему фиксированное семиэлементное описание: семь элементов — это то, что нужно каждой последующие стадии: storyboard'ы хотят крупность/угол/движение, стиллы хотят субъект/локацию, видео хочет движение/действие. Кодирование как свободная проза заставит каждую downstream-стадию переизвлекать; кодирование как жёсткий объект — всегда-неполная схема. Семь именованных элементов, всегда присутствующие, в форме прозы.

2.3 Storyboard

Быстрый, дешёвый визуальный лок на композицию и язык камеры. LLM эмитит per-shot-промпты, префиксированные фиксированной hand-drawn-storyboard-стилевой строкой («traditional hand-drawn storyboard frame on white paper, clean black ink line art with selective red accent lines…»). Сами storyboard-картинки рендерятся за секунды, малой долей усилий полного рендера.

Два свойства делают эту стадию несущей:

  1. Тот же стилевой префикс на каждый проект. Это превращает storyboard-картинки во взаимозаменяемый словарь — все «выглядят одинаково», и LLM-architect'ы downstream могут рассуждать о них как о composition-референсах, а не style-референсах.
  2. Ранние-в-серии storyboard'ы становятся референсами для поздних-в-серии. LLM читает их толщину линии, направление штриховки и углы камеры, затем намеренно выбирает другие углы для следующих шотов — обеспечивая variety при удержании стиля.

2.4 Moodboard (параллельно storyboard'у)

Двухтировая reference-система. Project-level (глобальный) moodboard держит refs, общие между шотами; per-scene-moodboard держит scene-специфичные overrides. Каждый ref несёт типизированную роль (location / character / style / prop / color / camera), которую последующие стадии консультируют, чтобы решить, какой ref отвечает на какой вопрос.

Композитный 16:9-moodboard-image генерируется на сцену — AI-конденсированный single-image-референс, схлопывающий многие refs сцены в одну картинку. Это то, как стиль, цвет и свет достигают стиллс-стадию: как один vision-вход, а не множество сырых reference-картинок, которые would over-constrain генерацию.

2.5 Stills

Per-shot photographic-рендеры. Стадия потребляет шесть входных источников:

  1. Описание шота (текст)
  2. Storyboard-картинка (vision — только композиция, стиль игнорируется)
  3. Предыдущие same-series-рендеры (vision — continuity)
  4. Композитный moodboard-image (vision — стиль / цвет / свет)
  5. Moodboard-captions (текст — environment-контекст)
  6. Shot-type-флаг

Системный промпт построения промптов намеренно запрещает описывать стиль, цвет или свет в тексте — эти измерения приходят через композитный moodboard и moodboard-refs как vision. Текстовый промпт описывает только субъект, локацию, камеру. См. deliberate-omission-paper.

Это намеренная инверсия A.O.C.-подхода, используемого в single-shot- и campaign-контекстах, где A.O.C.-текст-промпты специфицируют все три оси. Разница: продакшн-шоты имеют плотные visual-референсы; campaign-шоты часто только один-два. Аллокация внимания следует доступным якорям.

Linear series inheritance — дешёвый заменитель обучения кастомной character-модели. Внутри серии (1A → 1B → 1C …) каждый render-джоб прикрепляет картинку предыдущего шота как vision-референс. Character design, установленный в 1A, распространяется через 1B, 1C без обучения. См. sequential-consistency-prompt-architecture-paper для полного механизма.

2.6 Video

Motion-генерация. LLM эмитит motion-only-промпты: одно-два предложения, описывающие движение камеры и действие субъекта. Никаких эстетических прилагательных, scene-описаний, mood-слов — сцена уже отрисована; остаётся специфицировать только motion.

Сигнатурная возможность — first / last frame stitching. Для шотов, помеченных парными key-frames на этапе сценария, video-джоб получает рендер стартового шота как первый кадр и рендер конечного шота как последний кадр. Модель генерирует только motion между ними, производя бесшовный морф — без crossfade, без cut. Это возможно только потому, что пайплайн frame-first: motion — это последнее решение, не первое.


3. Задача консистентности и три решения

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

3.1 Scene-series inheritance (intra-series)

Уже описано. Линейный render-порядок внутри сцены; каждый шот наследует рендер предыдущего шота как vision-референс. Continuity по cut-последовательности без обучения.

3.2 Reference typology (между шотами, внутри проекта)

Каждый референс несёт типизированную роль. «Какой референс говорит модели, где разворачивается сцена?» имеет well-defined ответ (location-refs). «Какой говорит, как выглядит персонаж?» (character-refs). Silent-reference-использование запрещено; LLM-architect инструктирован объявлять инлайн, что отдаёт каждый прикреплённый референс.

3.3 Lock layers (per-shot, на уровне промпта)

Для campaign-style-шотов конкретно, A.O.C.-промпты оборачиваются Lock-слоем — IDENTITY LOCK или PRODUCT LOCK — который переигрывает структурированный дескриптор субъекта (лицо, тело, волосы, тон кожи; или форма, материал, ориентация, текст, rigid-unit-правило). Lock неизменен по batch'у и переживает generation-variance.


4. Граф зависимостей

Пайплайн в основном линеен между стадиями, но inter-shot-граф внутри поздних стадий — лес линейных цепочек:

setup → scenario → storyboard → moodboard → scenes → video
                                              ↓
                 сцена 1: 1A → 1B → 1C → ...       (линейно)
                 сцена 2: 2A → 2B → 2C → ...       (линейно, параллельно сцене 1)
                 сцена 3: 3A → 3B → ...
  • Между сценами: зависимости нет. Сцены рендерятся параллельно.
  • Внутри сцены: строгий линейный порядок. Render-шота блокируется до завершения предыдущих same-scene-шотов.

Два gating-условия обеспечиваят это:

canGenerateStoryboard(shot) // у предыдущих same-series-шотов есть storyboard
canGenerateScene(shot)      // у предыдущих same-series-шотов есть render

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


5. Слой LLM-orchestration

Каждая стадия, кроме moodboard-композитинга, — LLM-вызов. Контракт orchestration на каждый вызов узкий:

| Стадия | Роль LLM | Темп. | Строгий выход | |---|---|---|---| | analyze-brief | Производственный режиссёр | 0.4 | Project overview + shot list JSON | | parse-scenario | Cinematographer cut-finder | 0.3 | Shot list JSON | | edit-scenario | Director edit-enforcer | 0.3 | Modified shot list JSON | | storyboard-prompts | Storyboard-художник | — | {shotName: prompt} JSON | | image-prompts | Минималист-описыватель шота | — | {shotName: prompt} JSON, без стиля/цвета/света | | video-prompts | Motion-описыватель | — | {shotName: prompt} JSON, только motion, 1–2 предложения | | scene-moodboard | Production designer | — | Один 16:9-moodboard-промпт |

Два свойства этого слоя несущие:

Дисциплина системного промпта. У каждой роли узкий мандат. Системный промпт image-prompts явно запрещает описание стиля / цвета / света. Системный промпт video-prompts запрещает эстетические прилагательные. Широкий системный промпт позволяет LLM загрязнить следующую стадию заботами, которые должны были остаться в этой. См. two-stage-architect-pattern-paper для разделения температуры-и-роли. На практике эти системные мандаты исполняются через скиллы применения A.O.C. (сборка промптов для изображения и видео) и скиллы креативной режиссуры (brief → moodboard / scenario); engine-специфичные выходы happy-horse-prompt-skill и minimax-voice-skill закрывают Happy Horse и TTS соответственно.

Refinement-варианты. Каждая генеративная стадия имеет дешёвый single-shot-режим рефайнинга, переиспользующий существующий промпт как бэйзлайн. Refinement — дефолтный режим итерации. Экономика этого важна: если бы refinement стоил так же, как свежая генерация, продюсеры бы либо коммитили рано, либо жгли бюджет; ни то ни другое не даёт хороший выход. Дешёвый refinement держит продюсеров в режиссёрской позиции.


6. Что пайплайн намеренно не делает

  • Он не обучает кастомные character-модели как дефолтный механизм консистентности. Обучение доступно, но зарезервировано для long-term persona-переиспользования между проектами. Для одного продакшна linear series inheritance + reference typology дешевле и достаточно быстро.
  • Он не выставляет одну кнопку «сгенерировать весь проект». Stage-by-stage-прогрессия — это интерфейс; продюсеры остаются в петле на каждой стадии.
  • Он не пытается нарративно авторствовать. Парсинг сценария реструктурирует; не изобретает. Бриф — автор; пайплайн — съёмочная группа.
  • Он не пытается бороться со model-specific-quirks fallback-логикой. Сбои генерации всплывают обратно к продюсеру как iteration invitations, а не как silent retries.

7. Что оказалось несущим

Hard-won-решения, ранжированные примерно по тому, насколько болезненным было бы их отсутствие:

  1. Схема именования {номер-сцены}{буква}. Каждый downstream-механизм консистентности зависит от неё. Без схемы — нет «серии», на которой можно обеспечиваеть continuity.
  2. Фиксированный storyboard-стиль. Тот же стиль на каждый проект означает, что последующие стадии могут трактовать storyboard-картинки как нейтральный composition-словарь.
  3. Минимализм в image-промптах. Запрет на стиль / цвет / свет в тексте image-промпта и роутинг этих измерений через vision — это то, что спасает сгенерированные стиллы от over-constrained noise.
  4. Дешёвые refinement-стадии. Single-shot-итерация — это то, что делает пайплайн полезным, а не теоретическим.
  5. First / last frame stitching. Самый заметный differentiator пайплайна на финальном видео.
  6. Предсказуемые per-stage-усилия. Продюсеры доверяют системе, потому что могут прогнозировать работу.

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

  • Скоринг-rubric для well-formed shot descriptions (семь элементов) — сегодня ad-hoc. Улучшит надёжность LLM-architect'ов.
  • Cross-scene-консистентность для повторяющихся персонажей. Пайплайн обеспечивает series-консистентность; cross-scene character-консистентность сейчас зависит от moodboard-refs и пользовательской дисциплины. Лёгкий cross-scene-anchor («сцена 3 содержит того же персонажа, что и сцена 1») закрыл бы gap без обучения модели.
  • Автоматический выбор shot-type. full-ai / composite / live сейчас задаётся на этапе брифа. LLM-driven-эвристика могла бы снизить ручную разметку.
  • DAG вместо леса. Некоторые продакшны имеют настоящие cross-scene-зависимости (matched cut от последнего шота сцены 1 к первому шоту сцены 2). Обобщённый DAG моделировал бы это; сегодня это обрабатывается first/last frame stitching только на смежных индексах.
  • Измерение консистентности. Нет автоматического скоринга того, «ощущаются ли 1A и 1B как одна сцена». Можно подойти CLIP-similarity, face-embedding distance или scene-graph comparison.
  • Кросс-модальное обобщение. Работает ли та же шестистадийная форма для audio-led-продакшнов (music videos, podcasts)? Для интерактивных продакшнов (игры, experiential video)?

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

Описанный здесь пайплайн — результат прогона многих продакшнов через генеративные AI-модели и обучения, тяжёлым путём, тому, что ломается. Что остаётся — это структура, делающая генеративный AI поведенчески похожим на съёмочную группу: constraints propagate forward, итерация дешёвая, style-lock'и держатся, консистентность обеспечивается reference-inheritance'ом, а не обучением, и продюсер остаётся в петле на каждой стадии.

Конкретные имплементационные выборы — не единственная форма, которую эта архитектура может принять. Но stage-декомпозиция, series-based-механизм консистентности, правило минимализма на image-prompt-слое и first-frame-then-motion-порядок оказались наименьшим набором обязательств, надёжно производящим консистентный, директабельный, продакшн-качественный выход из off-the-shelf-генеративных моделей.

Приглашение то же, что и в парной A.O.C.-статье: возьмите, сломайте, расширьте, замените.


Цитирование

Nix, A. (2026). A Generative-AI Video Production Pipeline. Working paper.