ЛАБОРАТОРНЫЙ ТЕСТ · ЛОКАЛЬНОЕ ВИДЕО

AI-видеоконвейер waoowaoo: от текста до озвученного ролика

Уровень: средний Время: 90 минут Результат: тестовый ролик, раскадровка и карта ограничений

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

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

Что именно проверяем

Задача теста — выяснить, способен ли локальный waoowaoo провести один небольшой проект через весь производственный цикл:

  1. принять исходный текст;
  2. выделить персонажей, места и действия;
  3. разбить историю на последовательные сцены;
  4. сформировать планы и референсные кадры;
  5. создать видеоклипы с приемлемой связностью;
  6. сгенерировать голос и разложить реплики по времени;
  7. собрать единый видеофайл;
  8. позволить заменить одну неудачную сцену без потери остальных результатов.

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

Критерии готовности

До запуска зафиксируйте условия приёмки. Иначе любое получившееся видео легко объявить успешным постфактум.

Проверка Минимальное условие Как фиксировать
Структура Все шесть сцен присутствуют и идут в заданном порядке Номера сцен и временные коды
Персонажи Главную героиню и робота можно узнать во всех нужных сценах Оценка каждой сцены: да, частично, нет
Непрерывность Ключ, коробка и направление движения не меняются без причины Список нарушений непрерывности
Озвучка Все реплики слышны, не обрезаны и относятся к правильной сцене Прослушивание с временными кодами
Монтаж Нет пустых кадров, чёрных разрывов и случайного изменения формата Просмотр и техническая проверка файла
Повторяемость Одну сцену можно перегенерировать отдельно Сравнение первого и повторного запусков

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

Конкретный кейс: «Последняя посылка»

Возьмём историю продолжительностью примерно 35–45 секунд. В ней два героя, две локации, один предмет, короткий диалог и понятное действие. Такой сценарий достаточно сложен для проверки связности, но его ещё можно разобрать за один сеанс.

Вечером инженер Лена закрывает маленькую мастерскую. На улице она замечает робота-курьера с помятой коробкой. Робот сообщает, что адрес получателя исчез из базы. Лена видит на коробке старый знак своей мастерской, открывает дверь и приглашает робота внутрь. На рабочем столе коробка раскрывается, и внутри загорается миниатюрная модель спутника. Лена улыбается: «Значит, ты всё-таки нашёл дорогу».

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

Паспорт персонажей

Создайте короткие неизменяемые описания. Не переписывайте их от сцены к сцене.

ЛЕНА
Возраст: около 30 лет
Внешность: короткие тёмные волосы, круглые очки
Одежда: тёмно-зелёная рабочая куртка, серый шарф
Отличительный признак: металлический значок в форме звезды
Манера: спокойная, внимательная
Голос: взрослый женский, сдержанный, средний темп

РОБОТ-КУРЬЕР
Высота: примерно по плечо Лене
Корпус: матовый белый металл с оранжевыми вставками
Голова: прямоугольная, один синий световой индикатор
Руки: две тонкие механические руки
Предмет: помятая картонная коробка
Голос: нейтральный синтетический, без комической интонации

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

Правила мира

Шаг 1. Подготовить рабочую папку

Не смешивайте исходники, промежуточные изображения, звук и экспорт. Даже если интерфейс waoowaoo хранит проект самостоятельно, независимая папка поможет сравнивать версии и восстанавливать ход эксперимента.

waoowaoo-test/
├── input/
│   ├── script.txt
│   ├── characters.txt
│   └── style.txt
├── storyboard/
├── frames/
├── clips/
├── audio/
├── export/
└── run-log.md

Создать структуру в Linux или macOS можно так:

mkdir -p waoowaoo-test/{input,storyboard,frames,clips,audio,export}
cd waoowaoo-test
touch input/script.txt input/characters.txt input/style.txt run-log.md

В Windows PowerShell:

$folders = "input","storyboard","frames","clips","audio","export"
New-Item -ItemType Directory -Path "waoowaoo-test" -Force
$folders | ForEach-Object {
  New-Item -ItemType Directory -Path "waoowaoo-test/$_" -Force
}

Эти команды не устанавливают и не запускают waoowaoo. Они только создают нейтральную структуру эксперимента.

Шаг 2. Зафиксировать среду

Запишите способ установки, версию исходного кода или контейнера, операционную систему, видеокарту, объём видеопамяти, модели и свободное место на диске. Если проект развёрнут через Docker, сохраните вывод:

docker compose ps
docker compose images
docker version

Для локального репозитория полезно сохранить точный коммит:

git rev-parse HEAD
git status --short

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

Минимальная запись запуска

run_id: run-001
date: YYYY-MM-DD
waoowaoo_version: заполнить
install_method: заполнить
gpu: заполнить
vram_gb: заполнить
image_model: заполнить
video_model: заполнить
voice_model: заполнить
width: 1280
height: 720
fps: 24
target_duration_sec: 40
notes: первый контрольный запуск

Это лабораторный манифест, а не гарантированный формат импорта waoowaoo. Параметры переносите в те поля, которые действительно присутствуют в установленной версии.

Шаг 3. Разбить сценарий на сцены вручную

Сначала сделайте собственную декомпозицию. Затем можно поручить разбиение платформе и сравнить результаты. Если принять автоматическую структуру без эталона, нельзя будет понять, пропустила ли система важное действие.

ID Длительность План Действие Звук
S01 5 с Общий Лена гасит свет и закрывает мастерскую Дождь, щелчок замка
S02 6 с Средний Лена замечает робота с коробкой Дождь, шаги, тихий сервопривод
S03 7 с Два персонажа Робот объясняет проблему Реплика робота
S04 6 с Крупный Лена замечает знак мастерской на коробке Дождь тише, короткая пауза
S05 8 с Средний внутри Коробка открывается, модель спутника загорается Шорох картона, мягкий электронный звук
S06 6 с Крупный на Лену Лена улыбается и произносит финальную фразу Реплика Лены, дождь за окном

Сумма сцен равна 38 секундам. Экспорт может отличаться из-за переходов и пауз, поэтому допустимый диапазон для теста — 35–45 секунд.

Шаг 4. Сформировать промпты без противоречий

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

ПОСТОЯННЫЙ СТИЛЬ
Кинематографичная научная фантастика ближайшего будущего.
Реалистичные материалы, спокойный темп, сдержанные цвета.
Соотношение сторон 16:9. Дождливый вечер.
Без текста, логотипов и субтитров внутри изображения.

СЦЕНА S02
Снаружи маленькой мастерской.
Лена в тёмно-зелёной рабочей куртке и сером шарфе
поворачивается к невысокому белому роботу-курьеру
с оранжевыми вставками. Робот держит помятую коробку
двумя руками. Средний план, камера медленно приближается.
Холодный уличный свет, мокрый асфальт.

Если интерфейс поддерживает негативный промпт, начните с короткого списка наблюдаемых дефектов:

лишние персонажи, дополнительные руки, дублированная коробка,
изменение одежды, текст в кадре, логотип, резкая тряска камеры,
искажённое лицо, скачок освещения

Не добавляйте десятки абстрактных запретов. Длинный негативный список усложняет диагностику и иногда вступает в конфликт с основным описанием.

Шаг 5. Сделать раскадровку до видео

Сгенерируйте по одному ключевому кадру на сцену. На этом этапе не запускайте дорогую анимацию. Сначала проверьте композицию и непрерывность.

  1. Сохраните кадры как S01_v01.pngS06_v01.png.
  2. Разместите их в порядке сцен.
  3. Проверьте цвет одежды, корпус робота, коробку, освещение и направление взгляда.
  4. Отметьте дефект непосредственно в журнале, а не словами «кадр странный».
  5. Перегенерируйте только неудачные изображения.

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

| Сцена | Версия | Seed | Принята | Причина отказа |
| S01   | v01    | ...  | да      | —              |
| S02   | v01    | ...  | нет     | две коробки    |
| S02   | v02    | ...  | да      | —              |

Контроль непрерывности

Перед анимацией ответьте на пять вопросов:

Если хотя бы один смысловой объект меняется, исправьте раскадровку. Анимация обычно усиливает, а не скрывает проблемы ключевого кадра.

Шаг 6. Генерировать короткие клипы отдельно

Для первого прохода используйте режим image-to-video, если он доступен: утверждённый кадр становится визуальной опорой сцены. Если платформа предлагает только генерацию из текста, сохраните те же описания, параметры и референсы.

Начните с умеренного движения. Сложная хореография, быстрый поворот камеры и одновременное взаимодействие рук повышают риск искажений.

Сцена Главное движение Что не должно меняться
S01 Лена поворачивает ключ, свет гаснет Дверь, одежда, число пальцев
S02 Камера медленно приближается Робот и коробка
S03 Слабое движение головы робота Положение коробки
S04 Лена касается знака на коробке Рука, знак, форма коробки
S05 Крышка открывается, включается свет Стол, спутник, руки
S06 Лена слегка улыбается Лицо, очки, фон

После каждой генерации сохраните исходный клип отдельно. Не заменяйте S04_v01.mp4 новым файлом — создайте S04_v02.mp4. Так можно сравнить цену исправления и понять, действительно ли новый параметр помог.

Шаг 7. Подготовить озвучку

В тесте две реплики:

S03, РОБОТ:
«Адрес получателя отсутствует. Доставка не может быть завершена».

S06, ЛЕНА:
«Значит, ты всё-таки нашёл дорогу».

Сначала получите чистые голосовые файлы без музыки и эффектов. Назовите их S03_robot_v01.wav и S06_lena_v01.wav. Желательно использовать одинаковую частоту дискретизации, например 48 кГц, но выбирать нужно из реально доступных параметров установленного голосового компонента.

Проверьте:

Если доступен lip-sync, сначала соберите версию без него. Затем примените синхронизацию только к сцене S06 и сравните лицо до и после. Это отделит качество видеогенерации от артефактов движения губ.

Шаг 8. Собрать монтаж

Если waoowaoo собирает проект внутри интерфейса, задайте порядок S01–S06, проверьте длительности, добавьте реплики и экспортируйте одну контрольную версию. Не маскируйте дефекты интенсивными переходами.

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

ffmpeg -i clips/S01_v01.mp4 \
  -vf "scale=1280:720,fps=24,format=yuv420p" \
  -an -c:v libx264 -crf 20 -preset medium \
  clips/S01_normalized.mp4

Создайте clips.txt:

file 'S01_normalized.mp4'
file 'S02_normalized.mp4'
file 'S03_normalized.mp4'
file 'S04_normalized.mp4'
file 'S05_normalized.mp4'
file 'S06_normalized.mp4'

Затем соедините клипы:

ffmpeg -f concat -safe 0 -i clips/clips.txt \
  -c copy export/video_without_audio.mp4

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

Для отдельной звуковой дорожки можно подготовить WAV нужной длительности и наложить его так:

ffmpeg -i export/video_without_audio.mp4 \
  -i audio/final_mix.wav \
  -c:v copy -c:a aac -b:a 192k -shortest \
  export/last_delivery_run-001.mp4

Команды приведены как запасной путь сборки, а не как описание внутренних механизмов waoowaoo.

Шаг 9. Проверить файл технически

Не ограничивайтесь двойным щелчком по ролику. Получите параметры через ffprobe:

ffprobe -v error \
  -show_entries format=duration,size:stream=index,codec_type,codec_name,width,height,r_frame_rate,sample_rate,channels \
  -of json \
  export/last_delivery_run-001.mp4

JSON-вывод должен подтвердить наличие видеопотока и аудиопотока. Запишите фактическую длительность, разрешение, частоту кадров, видеокодек и аудиокодек.

Дополнительная проверка декодирования:

ffmpeg -v error \
  -i export/last_delivery_run-001.mp4 \
  -f null -

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

Шаг 10. Провести визуальную приёмку

Посмотрите ролик три раза с разными задачами.

Первый просмотр: только история

Не останавливайте видео. После просмотра перескажите происходящее одним предложением. Если невозможно понять, почему Лена возвращается в мастерскую или откуда появился спутник, структура не прошла тест.

Второй просмотр: без звука

Проверьте последовательность действий, персонажей и реквизит. Зафиксируйте временной код каждого нарушения:

00:08 — у робота меняется форма головы
00:17 — коробка на один кадр исчезает
00:25 — куртка Лены становится синей

Третий просмотр: только звук

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

Контрольный эксперимент: заменить одну сцену

Теперь намеренно перегенерируйте S04. Измените только одно условие: вместо прикосновения Лена должна смахнуть каплю воды со знака на коробке. Все остальные параметры оставьте прежними.

Тест считается пройденным, если:

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

Журнал результатов

Наблюдаемость нужна и в локальном эксперименте. Заполняйте таблицу фактами после выполнения, не предположениями до запуска.

Этап Вход Выход Время Статус Наблюдение
Разбор сценария script.txt 6 сцен заполнить заполнить Что было потеряно или добавлено?
Раскадровка 6 описаний 6 принятых кадров заполнить заполнить Сколько потребовалось повторов?
Видео 6 кадров 6 клипов заполнить заполнить Какие движения ломались?
Голос 2 реплики 2 аудиофайла заполнить заполнить Ошибки произношения и пауз
Экспорт Клипы и звук 1 MP4 заполнить заполнить Параметры и ошибки сборки
Замена S04 Один изменённый запрос Новая версия MP4 заполнить заполнить Что пришлось пересчитать?

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

retry_rate = число отклонённых вариантов / число принятых сцен

Пример формулы:
если отклонено 5 вариантов, а принято 6 сцен,
retry_rate = 5 / 6

Это только способ вести журнал. Не подставляйте пример в итоговый отчёт как фактический результат.

Типовые отказы и диагностика

Сценарий превратился в набор несвязанных иллюстраций

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

Персонаж меняется в каждой сцене

Проверьте, использовались ли одинаковый паспорт, референс, модель и параметры. Не пытайтесь исправить идентичность добавлением всё новых прилагательных. Сначала уберите противоречия: «короткие волосы» в одном запросе и «волосы развеваются» в другом.

В сцене появляются лишние герои или предметы

Упростите композицию и перечислите точное число сущностей. Для S02 достаточно Лены, одного робота и одной коробки. Если дефект повторяется, разделите действие на два плана.

Руки разрушаются при взаимодействии с коробкой

Уменьшите амплитуду движения, смените крупность или перенесите момент контакта за монтажную склейку. Для проверки конвейера не обязательно заставлять одну генерацию идеально показать сложную манипуляцию пальцами.

Длительность реплики больше сцены

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

Реплика звучит, но губы не совпадают

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

Экспорт начинается заново после исправления одной сцены

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

Процесс останавливается из-за видеопамяти

Снизьте разрешение, длительность или число кадров одного задания. Закройте процессы, использующие GPU, и запускайте сцены последовательно. Сохраните точный этап отказа и системное сообщение. Не объявляйте причиной нехватку памяти без измерения.

Файл создан, но не воспроизводится

Проверьте контейнер, кодеки и наличие завершённого индекса файла через ffprobe. Нулевой размер или отсутствующая длительность обычно указывают на незавершённый экспорт, а не на проблему медиаплеера.

Ограничения ранней версии, которые нужно проверить

Ниже не перечислены подтверждённые дефекты конкретной установки waoowaoo. Это карта рисков раннего локального видеоконвейера. В итоговый отчёт переносите только те ограничения, которые действительно проявились и были воспроизведены.

  1. Нестабильная идентичность персонажей. Текстовое описание может оказаться недостаточным для сохранения лица, одежды и пропорций между сценами.
  2. Слабая непрерывность предметов. Коробка, значок или источник света могут исчезать, удваиваться либо менять форму.
  3. Ограниченный контроль движения. Короткое движение камеры воспроизводится проще, чем точная последовательность жестов.
  4. Зависимость от моделей. Смена чекпойнта способна изменить стиль и персонажей даже при прежнем тексте.
  5. Высокая стоимость повторов по времени. Одна принятая сцена может потребовать нескольких вариантов; фиксируйте не только финальный экспорт, но и все попытки.
  6. Неравномерная работа с русской речью. Ударения, паузы, буква «ё» и заимствованные слова требуют отдельного прослушивания.
  7. Слабая синхронизация длительностей. Видео, реплика и переход могут иметь разные временные ограничения.
  8. Непрозрачное повторное вычисление. Интерфейс может не показывать, какие этапы были взяты из кеша, а какие запущены заново.
  9. Ограниченная воспроизводимость. Одних текстов недостаточно, если не сохранены версия, модели, seed и параметры генерации.
  10. Хрупкое восстановление после ошибки. Прерывание процесса может оставить частичный файл или потребовать повторного запуска сцены.
  11. Различия между предпросмотром и экспортом. Частота кадров, цвет, звук или продолжительность итогового файла могут отличаться от интерфейса.
  12. Ручная доводка остаётся частью процесса. Даже работающий конвейер не отменяет отбор кадров, монтажные решения и проверку речи.

Как отличить ограничение платформы от ошибки теста

Не записывайте каждый плохой кадр в дефекты waoowaoo. Сначала повторите сцену в контролируемых условиях.

Наблюдение Контрольная проверка Вывод
Изменилось лицо Повторить с тем же референсом и параметрами Ограничение подтверждается только при повторении
Пропала коробка Упростить движение, не меняя композицию Отделить сложность движения от сохранения предмета
Нет звука Проверить исходный WAV и потоки экспортированного файла Различить ошибку генерации, монтажа и контейнера
Сбой GPU Записать потребление памяти и повторить в меньшем разрешении Не путать аппаратный предел с логической ошибкой проекта
Повтор не похож на оригинал Сверить версию модели, seed и все параметры Сначала исключить изменение среды

Минимальный итоговый комплект

После 90-минутной сессии в рабочей папке должны остаться:

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

Финальная оценка

Сравните результат с заранее заданными критериями и выберите один статус:

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

Успешный локальный AI-видеоконвейер — не тот, который однажды создал эффектный ролик, а тот, чей результат можно разобрать, проверить, исправить и повторить.

← Все инструкции · Лабораторный словарь →

Мы публикуем то, что работает у нас — и внедряем это же для вашего бизнеса. Проектируем AI-автоматизации, Telegram-ботов, чаты и AI-агентов под реальные процессы. Обсудить задачу →