Почему это работает
Вся конструкция держится на двух трюках. Первый - единая стиль-картинка ("стиль-кей"), которую генерируют один раз и прикладывают референсом к каждому из N клипов: так шесть независимо сгенерированных роликов из разных запросов к видеомодели не расползаются по цвету и текстуре, а читаются одним фильмом. Второй - жёсткая арифметика: сценарий режут на строки по 18-20 слов, каждая строка = одна 10-секундная сцена, и сборка в ffmpeg превращается в тривиальный concat с голосом сверху, а не в монтаж. Если озвучка не укладывается в окно - строку просто укорачивают и перегенерируют голос (бесплатно), а не правят видео.
Качество ролика в этой схеме даёт не сценарий и не монтаж - оба бесплатны и воспроизводимы кодом. Его даёт честная видеомодель со стиль-ключом на входе; это единственный платный и невоспроизводимый шаг, и подменить его нечем.
Дополнительно diorama-стиль использует "fake-oner": каждый клип снят как один непрерывный проезд камеры, начинающийся и кончающийся в смазе - так границы между отдельно сгенерированными клипами прячутся в движении, и жёсткая склейка на монтаже читается как единый кадр.
Как повторить
- Распакуйте архив, откройте папку как проект Claude Code (
cd "Vox Animations" && claude). - Поставьте (или дайте Claude поставить) два бесплатных инструмента:
brew install ffmpeg
pip3 install edge-tts- Напишите в чат
давай сделаем видео. Claude спросит тему - дайте свою или скажитеfind one, чтобы он нашёл тренд через веб-поиск. - Выберите стиль (
mixed- яркий бумажный коллаж, илиdiorama- сепия-диорама) и длину; по умолчанию 60 секунд = 6 сцен по 10 секунд. - Claude попросит выбрать голос диктора (
Christopher,RyanилиJenny- скажитеsamples, чтобы услышать строчку из каждого перед выбором), потом напишет сценарий построчно и покажет его на согласование в общем "брифе" - здесь можно править текст или вставить свой. - Claude выдаст один промпт на картинку-стиль-кей. Сгенерируйте её в сильной image-модели (в скилле назван Nano Banana Pro) и сохраните файл.
- На каждую из N сцен Claude даст готовый промпт под видео - сгенерируйте его в выбранном видеогенераторе (Higgsfield, Veo, Kling, Sora или Runway), приложив стиль-кей как референс-картинку, и сохраните клипы как
block01.mp4,block02.mp4и так далее. - Сложите все клипы в
projects/<имя>/clips/, скажитеdone. Claude сам озвучит каждую строку выбранным голосом и подрежет такты, которые не укладываются в 10 секунд. - Claude запускает
scripts/assemble.sh projects/<имя>- склейка клипов, голоса и фонового звука самих клипов в одинfinal.mp4точной длины N×10 секунд.
Проверочный прогон
На выходе должен быть файл final.mp4 в projects/<slug>/ длиной ровно N×10 секунд, с голосом, синхронным по сценам (каждая озвученная строка лежит внутри своего 10-секундного блока), и визуально однородными клипами - если стиль-кей реально был приложен референсом на каждой генерации, все шесть клипов выглядят одним фильмом, а не нарезкой. Если ffmpeg падает с жалобой на отсутствующий файл - не хватает клипа или голосовой дорожки в clips/ или voice/, либо имя не совпадает с шаблоном block0N. Если готовый ролик выглядит "сборным" (разные фоны, разные предметы в кадре каждые 10 секунд) - либо стиль-кей не был приложен при генерации клипов, либо шаг с видеогенератором был пропущен и заменён чем-то другим - тем самым "колхозом", о котором ниже.