ШІ-режисура та якість
Від джерела до сцени: чому згенерованій візуальній новелі потрібен режисер
Створити дві красиві картинки легко. Складність починається після десятої, коли всі вони мають зберігати того самого персонажа, місце, предмет і логіку сюжету. Якщо надсилати генератору окремі абзаци, вийде галерея, а не цілісна візуальна новела.
Під час літературної адаптації персонажі змінювали масштаб, зависали, перебудовували одну локацію, музика запускалася знову, а важлива каблучка змінювала руку, палець або множилася. Тому генерація стала конвеєром із текстовим аналітиком, художником, компоновником, MCP-агентом, технічною валідацією та ШІ-режисером.

1. Джерело залишається головним
На вході може бути текст, HTML, Markdown або текстовий PDF. Спочатку фіксуються мова, видання, порядок розділів і права на оригінал, переклад та ілюстрації. romergo_inspect_story_source і romergo_plan_story_source створюють інвентар і preview без запису проєкту. Лінійному джерелу не можна вигадувати розгалуження.
Текст ділиться за реальною зміною місця, часу, учасників або дії. Кожна сцена зберігає точний sourceExcerpt і візуальний контракт: присутність, мовця, слухачів, дію, погляд, фізичну опору, обличчя для mobile crop і якірні деталі сусідніх кадрів.
2. Персонажі, місця й предмети мають пам’ять
Незалежний аудитор перечитує уривок і витягує предмети взаємодії. Кожен реквізит отримує канонічний опис, незмінні ознаки, власника, стан, видимість і кількість. Золота каблучка має залишатися тією самою до, під час і після передачі.
Тимчасові документи, пов’язані ID і хешами, утворюють виробничий граф: карта сцен, біблії персонажів і локацій, реєстр реквізиту, маніфест асетів, завдання генерації та звіти аудиту. Вони не замінюють твір, а не дають рішенням загубитися між агентами.
3. Два режими композиції
baked_narrative вбудовує персонажів у фон для оповіді без прямої мови: контакт із землею, ліжком, каменем чи стільцем вирішується в одному зображенні. layered_dialogue лишає фон і спрайти окремими, щоб змінювати пози мовця й слухача разом із правильним ім’ям та портретом. Гібрид можливий лише як явне рішення.
Генерація спирається на точний уривок, біблію місця і поточний стан реквізиту. Файловий QA шукає зламану анатомію, кайму прозорості, обрізані силуети, випадковий текст і повторювану рослинність. Але окремий PNG ще не показує якість готової постановки.
4. MCP складає редагований проєкт
Схвалені асети імпортуються в чернетку. MCP-інструменти створюють розділи, сцени, текст, переходи, timeline, музику та позиції. Потім агент читає стан через romergo_get_chapter, запускає romergo_validate_project і завершує romergo_verify_quest_change. Важливий збережений стан і runtime, а не лише успішна відповідь інструмента.
5. Режисер читає текст і дивиться Player
Фінальний прохід відтворює весь розділ на desktop і 390 × 844. Кадри на 0, 100 і 500 мс виявляють чорний екран, білий фон чи старий спрайт у переході. Разом зі скриншотом режисер отримує точний текст, контракт, сусідні сцени та історію реквізиту.
Якщо фон правильний, а спрайт завис, потрібен recompose через MCP: позиція, масштаб, шар або crop. Якщо неправильна поза вже вбудована у фон, потрібен regenerate. Новий рендер перевіряється повторно.
Помилка 1. Герой сів на героїню
На mobile шар Грея опинився поверх сплячої Ассоль. «Обох видно» було правдою, але не гарантією правильної сцени. Кожен viewport має перевіряти опору, глибину й перетин тіл.

Помилка 2. Одна каблучка стала кількома
Перевірка лише золотого предмета дозволяла каблучці міняти руку й палець або множитися. Контракт тепер вимагає рівно один екземпляр, конкретну анатомічну сторону та палець і стани до, під час та після передачі.

Помилка 3. Персонажі дивилися у вікно всупереч тексту
Кадр у трактирі був красивим, але джерело прямо казало, що чоловіки сиділи спиною до вікна. Неправильна орієнтація була вбудована в зображення, тому її не виправити позиціонуванням — потрібна нова генерація.

Від окремих картинок до відтворюваної режисури
Перші тести перевіряли файл, alpha, межі й граф. Надійність з’явилася, коли вимоги почали витягувати з точного тексту, Player став контрольною поверхнею, перевірка отримала сусідні сцени й історію предметів, а кожна помилка мусила обрати ремонт і пройти незалежний повторний тест.
Усе це поки далеко від повністю автоматичної генерації. Людська надивленість, досвід і відчуття лишаються головним критерієм успіху; думаю, ще нескоро я зможу впевнено назвати генерацію автономною.
Нинішній pipeline уже заощаджує мені багато годин і, сподіваюся, збереже час іншим авторам. Залишаймо час для творчості, а складну технічну рутину довіряймо скриптам і ШІ. Так текст, HTML або PDF стає цілісним твором, а не лише набором картинок.