Раздел 1Что мы делаем
Контракт с МБУ «Центр содействия развитию предпринимательства и туризма» города Вологды. Пять мультипликационных роликов для детского раздела сенсорных панелей, которые встанут в туристско-информационном центре. Сдать нужно к 15 октября.
Вот как выглядит результат — черновой монтаж третьего ролика, «Гастрономия». Сорок секунд, девять сцен, всё сделано описанным ниже способом и стоило меньше доллара.
| Что требует заказчик | Значение |
|---|---|
| Разрешение | 3840×2160 (4K) |
| Частота кадров | 25 в секунду |
| Длина | 30–40 секунд каждый ролик |
| Звук | AAC, стерео |
| Главное условие | ролик понятен при выключенном звуке |
Последняя строчка определяет всё остальное. Панель стоит в общем зале, звук там будет тихий или выключенный, поэтому смысл несёт картинка, а звук только помогает. Отсюда и короткие реплики, и подписи на экране.
Они лежат в документы/письма/2026-09-09-сценарии-роликов.txt.
Каждый фрагмент описан так: номер, хронометраж, план, «начало» сцены,
«конец» сцены, подпись. Это закон — брать оттуда дословно, не пересказывать
своими словами и не менять. Если кажется, что в сценарии ошибка, — писать отцу.
Раздел 2Герой, машина и единственный эталон
Маскот — лосёнок. Ездит на красном молоковозе-цистерне через все пять роликов: это то, что связывает серию в одно целое.
ролики/эскизы/лист-лось-паттерн-эталон.jpeg.
Он подаётся вторым входным изображением в каждую генерацию картинки.Про лосёнка: детские пропорции, но анатомия лосиная — длинная морда, большие уши, красноватые рожки. И он ростом со взрослого человека или выше. Это приходится повторять в каждом промпте, иначе модель рисует его ребёнком по пояс взрослому, и ролик рассыпается.
Про машину: красный молоковоз с надписью «МОЛОКО» и полосой из восьми белых модулей вологодского дизайн-кода на боку цистерны. Полоса — требование заказчика по брендбуку, она согласована отдельно.
Все ракурсы — вид сбоку, три четверти, сзади, из кабины — выводятся из этого
одного файла. Рядом лежит лист-лось-паттерн-СТАРЫЙ-не-использовать.jpeg
с неправильным дизайн-кодом. Однажды его взяли по ошибке — пришлось выбросить
и перегенерировать всю серию кадров.
Раздел 3Деньги
Считаем в центах. Ошибка в выборе модели стоит в сто раз дороже правильного выбора — это не фигура речи.
| Что | Модель и параметры | Цена |
|---|---|---|
| Сетка стартовых кадров — все девять разом | openai/gpt-image-2, quality high, 3840×2160 | ≈ $0.13 |
| Один конечный кадр или одна правка | openai/gpt-image-2, quality low, 16:9 | ≈ $0.01 |
| Три варианта одного кадра | то же, number_of_images: 3 | ≈ $0.03 |
| Клип 4–5 секунд | bytedance/seedance-2.0, 480p, звук выключен | $0.10 / сек |
| Весь ролик начерно | сетка + 9 конечных кадров + 9 клипов | ≈ $0.70 |
Перед каждым платным запуском написать отцу: какая модель, сколько штук, сколько это стоит — и дождаться ответа. Всегда. Даже если кажется, что это мелочь и он точно согласится.
Причина простая: деньги его, а решения по картинке — тоже его. Спросить и подождать пятнадцать минут стоит ноль. Догадаться самому и потратить чужие деньги на то, что потом выбросят, стоит и денег, и доверия.
720p и 1080p в видеомодели ($0.23 и $0.68 за секунду), 4K ($1.00 за секунду),
и любые другие модели — flux, seedream, kling, seedance первой версии.
В сентябре два клипа в 4K съели около семи долларов — весь баланс сразу.
Теперь скрипт replicate.js просто отказывается их запускать.
Требование заказчика про 4K закрывается увеличением на финальной сборке, а не генерацией в 4K.
Раздел 4Девять принципов
Это не советы. Каждый пункт оплачен испорченной генерацией — иногда одной, иногда семью подряд.
- Один генератор картинок, один — видео.
gpt-image-2иseedance-2.0, и всё. Разные модели дают разный стиль, и на склейке это видно с первой секунды. - Стартовые кадры всех сцен — одной сеткой 3×3. Внутри одного холста модель держит единую манеру, палитру и свет. Девять отдельных запросов дают девять разных мультфильмов. Если сетку пришлось перегенерировать — все конечные кадры делаются заново.
- Конечный кадр рождается из стартового, в том же генераторе. На вход два изображения: сам стартовый кадр и эталон. В промпте — «тот же самый кадр, та же камера, тот же фон, та же машина; изменилось только одно: действие дошло до конца». Не «нарисуй финал сцены» — от этого перерисовывается всё.
- Стартовый кадр содержит всё нужное и не содержит лишнего. Всё, с чем герой будет взаимодействовать, уже в кадре: бидон уже в копытцах, открыт именно тот люк, до которого он дотягивается, дверца кабины закрыта. Модель целится в то, что видит: оставили открытой дверцу рядом с люком — и молоко полилось в кабину.
- Пара сверяется бок о бок до генерации видео. Шесть проверок: та же камера, та же машина, один экземпляр предмета, тот же лосёнок и тот же рост, цель действия видна, лишнего не добавилось.
- Видео генерируется по паре кадров. Первый и последний, камера неподвижна, звук выключен, промпт описывает только движение и заканчивается словами «End exactly as in the last frame». Короче четырёх секунд модель не умеет — короткие сцены делаются на четыре и подрезаются на монтаже.
- Каждый платный запуск объявляется и ждёт «да».
- Лосёнок ростом со взрослого человека и выше. Проверять на каждом кадре, где рядом есть человек.
- Опорная машина одна — файл эталона. Новых машин не рисуем никогда.
Раздел 5Алгоритм: восемь шагов
Все команды выполняются из папки вологодчина.
После каждого шага — остановка и показ результата отцу.
Разобрать сценарий
Найти свой ролик в файле сценариев, выписать фрагменты: номер, хронометраж, план, «начало», «конец», подпись. Проверить, что понятно, как конец каждой сцены объясняет начало следующей: сцены внутри ролика связаны, это не набор открыток. И машина должна быть видна в каждой сцене — хотя бы в окне или за спиной.
Сетка стартовых кадров $0.13
Один промпт описывает сразу девять клеток — по одной на фрагмент, каждая передаёт «начало» сцены из сценария. Плюс общая шапка: манера, палитра, время года, рост лосёнка, машина как на эталоне.
node ../инструменты/replicate.js --модель openai/gpt-image-2 \
--вход ролики/кадры-05-промышленность/сетка-А.json \
--выход ролики/кадры-05-промышленность/сетка-А.png \
--файл input_images=ролики/эскизы/лист-лось-паттерн-эталон.jpeg
Потом нарезка на девять кадров — скрипт сам находит белые поля между клетками и приводит каждую к 16:9:
node ../инструменты/нарезка-сетки.js ролики/кадры-05-промышленность/сетка-А.png \
--имена 1-мост,2-цех,3-подшипник,4-спички,5-поле,6-колесо,7-финал
Конечные кадры по центу
На каждый фрагмент — свой запрос. Вход: стартовый кадр этой сцены плюс эталон. Описание конца берётся из поля «конец» сценария слово в слово.
node ../инструменты/replicate.js --модель openai/gpt-image-2 \
--вход ролики/кадры-05-промышленность/конец-2-цех.json \
--выход ролики/кадры-05-промышленность/конец-2-цех-raw.png \
--файл input_images=ролики/кадры-05-промышленность/кадр-2-цех.png \
--файл input_images=ролики/эскизы/лист-лось-паттерн-эталон.jpeg
Готовый кадр привести к размеру стартового и сохранить под простым именем
конец-2-цех.png. Черновые варианты держать с суффиксами
-v2, -v3: инструменты считают утверждённым тот файл,
у которого имя без суффикса.
Пары и сверка
node ../инструменты/пара.js ролики/кадры-05-промышленность
Скрипт сам найдёт все кадр-N и конец-N, склеит их
бок о бок и соберёт листы по четыре пары.
Дальше — самая важная часть работы: просмотреть каждую пару по шести пунктам пятого принципа и честно выписать, что не сошлось. Не «всё хорошо», а «в третьей подшипник вышел размером с колесо». Отец ждёт именно этого списка — отчёт без замечаний он считает признаком невнимательного просмотра.
Раскадровка в PDF
node ../инструменты/раскадровка-pdf.js --ролик 5
Получается альбомный PDF: слева первый кадр сцены, справа последний, между ними хронометраж и что происходит. Это документ для отца и для заказчика. Утверждение раскадровки — точка невозврата: после неё начинаются платные клипы.
Клипы $0.40–0.50 за штуку
В модель подаются два кадра — первый и последний, — и промпт, который описывает только движение. Ни фон, ни одежду, ни машину описывать не нужно: они уже заданы кадрами.
node ../инструменты/replicate.js --модель bytedance/seedance-2.0 \
--вход ролики/клипы-05-промышленность/2-цех.json \
--выход ролики/клипы-05-промышленность/2-цех.mp4 \
--файл image=ролики/кадры-05-промышленность/кадр-2-цех.png \
--файл last_frame_image=ролики/кадры-05-промышленность/конец-2-цех.png
Каждый клип проверяется полоской кадров, а не просмотром на глаз:
node ../инструменты/клип-проверка.js ролики/клипы-05-промышленность/2-цех.mp4 --кадров 8
Черновой монтаж
node ../инструменты/монтаж.js ролики/клипы-05-промышленность/монтаж.json \
ролики/ролик-5-черновик.mp4 --ширина 864 --fps 24
Три правила сборки, добытые на третьем ролике: хвосты клипов не резать (действие должно досматриваться до конца), переезд вставлять целиком, а не щепками по полсекунды, и превышение хронометража допустимо — на финальной сборке ускорим. Лучше длиннее и понятно, чем впритык и рвано.
Финальная сборка
Звук, подписи, название, перевод в 25 кадров, увеличение до 4K. Этого ещё не делал никто — см. раздел про звук ниже.
Раздел 6Как работает отец — и почему это часть алгоритма
Половина работы над роликом — не генерация, а короткие круги «показал — получил замечание — переделал за цент». Понимать этот маршрут так же важно, как знать команды.
- Смотрит сетку целиком. Одним превью. Проверяет узнаваемость лосёнка, машину, свет, общий строй. Типичные замечания на этом шаге: «лось ниже Деда Мороза», «машина в отражении читается как картина».
- Смотрит пары листами по четыре. Старт и конец рядом. Здесь рождаются самые частые правки: «молоко льётся мимо люка», «почему бидон обрезанный», «почему у вас масло летает».
- Требует сначала кадры, потом всё остальное. Его слова: «Давай сначала кадры, я проверю, а потом остальное». Это не придирчивость, а экономия: ошибка в кадре стоит цент, та же ошибка в клипе — полдоллара.
- Просит варианты, когда что-то не выходит. «Давай три варианта покажи
крупно» — тогда
number_of_images: 3и крупный лист сравнения. Выбирает сам. - Утверждает раскадровку. После этого можно тратить на видео.
- Смотрит черновой монтаж и говорит, что поправить в сборке, а что перегенерировать. Чаще — поправить сборку, это бесплатно.
Что сделано · что не сошлось (честно, по номерам фрагментов, своими словами) · сколько потрачено · что предлагаешь дальше.
Раздел 7Грабли: что мы уже сломали
Читать обязательно. Каждый пункт — потерянные деньги или день работы.
- 4K в видеомодели. Два клипа — около семи долларов, весь баланс. Сейчас заблокировано в скрипте.
- Свои модели без спроса. flux, seedream, seedance первой версии — отец их не выбирал. Не брать, даже если кажется, что лучше.
- Клип без конечного кадра. Модель дважды промахнулась целью: вылила молоко в кабину, потом на крышу цистерны.
- Конечный кадр «новым листом». Машину перерисовало: лесенка оказалась с другой стороны, кузов другой.
- Инпейнт с маской. В дверном проёме пять раз подряд появлялись лишние люди.
- Старый эталон. Взяли файл с неверным дизайн-кодом — вся серия кадров пошла в мусор.
- Слова про характер в промпте. «Сорванец» дал лося с безумным взглядом, «короткая мордочка» превратила его в бурундука. Описывать анатомию, а не характер.
- Придуманный реквизит. Добавили воронку, чтобы струя не мазала мимо люка. Ответ отца: «зачем в такой огромный люк воронка?» Не изобретать того, чего нет в сценарии.
- Переезд, нарезанный щепками по полсекунды. Ролик развалился.
- Параллельные запуски при низком балансе. При балансе меньше $5 действует ограничение шесть запросов в минуту. Запускать по одному.
- ffmpeg во временной папке. Windows чистит
C:\Temp, и однажды все инструменты перестали работать разом. Теперь он живёт в~/bin/ffmpeg.
Раздел 8Звук, речь и шевелящиеся губы
Состав решён и обещан заказчику. Как это сделать технически — ещё не проверено ни разу. Это ближайшая исследовательская задача.
Обещано: негромкая инструментальная тема, общая для всей серии; две-три коротких реплики лосёнка на ролик; звуковые акценты на находках и превращениях; в момент главного события музыка затихает на полсекунды.
Музыка
Suno, одна тема на всю серию: русские и северные фольклорные мотивы, без вокала. Промпт уже составлен.
Речь
Синтез — ElevenLabs или Yandex SpeechKit, у обоих приличный русский. Реплики короткие, по три-пять слов: «Стой!», «Такой маленький?»
Губы — три пути, и заранее неизвестно, какой выживет
seedance-2.0со включённым звуком и репликой прямо в промпте: губы и голос рождаются вместе, но голос будет её, а не наш.- Клип без звука, но с движением рта в промпте, и наш синтез поверх. На трёх словах рассинхрон никто не заметит.
- Модели липсинка поверх готового клипа. Они обучены на людях — на лосиной морде могут не сработать вовсе.
Проверять надо на одном клипе третьего ролика, дёшево, и сравнивать глазами. Бюджет такой проверки — около двух долларов.
В руководстве контент-менеджера написано, что ролик на панели идёт без звука, а заказчику в концепции обещаны реплики и музыка. Либо панель со звуком, либо реплики уходят в подписи. Вопрос отцу — не решать самому.
Раздел 9Твоё задание: ролик 5 «Горячее сердце Русского Севера»
Промышленность Череповца. У молоковоза отваливается колесо, машина стоит накренившись на мосту весь ролик, а лосёнок бегает между заводами за тем, без чего колесо не починить.
Этот ролик выбран первым не случайно: одно место действия, одна сквозная цель и машина, видная из каждого цеха. Меньше всего поводов, чтобы стиль и машина разъехались между сценами. Восемь фрагментов, тридцать три секунды.
| Шаг | Что сдать | Цена |
|---|---|---|
| 1 | промпт сетки — кадры-05-промышленность/сетка-А.json | — |
| 2 | сетка и девять нарезанных кадров | $0.13 |
| 3 | конечные кадры | 8 × $0.01 |
| 4 | пары, листы и список своих замечаний | — |
| 5 | раскадровка PDF | — |
| 6 | клипы | 8 × ≈ $0.45 |
| 7 | черновой монтаж | — |
Всего около $3.80 на весь ролик, если не переделывать. Переделки кадров по центу — нормально и дёшево; переделки клипов — дорого, поэтому и существует сверка пар.
На что смотреть именно в этом ролике
- Машина на мосту — якорь. Видна в каждом фрагменте и везде одинаково накренившаяся, без заднего колеса. Это надо прописать в каждой клетке сетки.
- Колесо, обод и подшипник — одни и те же предметы по ходу ролика. Обод из второго фрагмента катится дальше в третий, четвёртый и пятый. Один экземпляр, не два.
- Раскалённая полоса металла во втором фрагменте — единственный горячий цвет в ролике, на нём держится «горячее сердце» из названия. По сценарию она сначала сворачивается в обод и только потом остывает.
- Реплика «Такой маленький?» — сравнение спичечного коробка с большим ободом. Оба предмета должны быть в кадре рядом, иначе шутка не читается.
- Шестой фрагмент — главное событие: зажигаются фары. В стартовом кадре не горят, в конечном горят. Это и есть всё изменение сцены.
- Седьмой и восьмой — развязка. В седьмом машина едет уже на четырёх колёсах, а перед цистерной лежат в ряд все четыре предмета из ролика: обод, мешочек гранул, подшипник и коробок — итог, ради которого всё затевалось. В восьмом блики на фермах моста складываются в кружевной узор и закрывают кадр: тем же узором ролик начинался.
Полная версия задания — в файле ролики/ЗАДАНИЕ_Игорь.md,
он лежит в стартовом наборе.
Раздел 10Как начать сегодня
1. Что должно стоять на машине
- Node.js 22 или новее — на нём работают все инструменты;
- ffmpeg — распаковать в
C:\Users\<ты>\bin\ffmpeg, чтобы внутри былbin\ffmpeg.exe; либо прописать путь в переменнуюFFMPEG; - Google Chrome — из него собираются PDF;
- Claude Code — он у тебя уже есть.
2. Распаковать стартовый набор
Скачать архив ниже и распаковать так, чтобы получилось
…\Downloads\проекты\вологодчина\ и рядом
…\Downloads\проекты\инструменты\. Раскладка папок важна:
скрипты ищут друг друга по относительным путям.
3. Вписать токен Replicate
Отец завёл для тебя отдельный токен и прислал его в телеграм. На этой странице его нет и не будет: страница живёт в интернете, а токен тратит настоящие деньги. Отдельный он не ради разграничения трат, а чтобы его можно было отозвать, не трогая остальные — счёт общий, твои генерации уходят с того же баланса.
Создай файл …\Downloads\проекты\ДОСТУПЫ.md с одной строкой:
Replicate: r8_ВОТ_ЭТОТ_КЛЮЧ
Скрипт сам его оттуда возьмёт. Проверить, что всё сошлось:
node ../инструменты/replicate.js --проверка
4. Открыть сессию Claude Code и дать ему это сообщение
Запускать обязательно с рабочей папкой …\Downloads\проекты\вологодчина
— не из проекты и не из ролики. Claude Code сам
прочитает CLAUDE.md, который там лежит. Первым сообщением
скопировать вот это целиком:
Прочитай CLAUDE.md, ролики/АЛГОРИТМ.md и ролики/ЗАДАНИЕ_Игорь.md
целиком, прежде чем что-либо делать.
Потом перескажи мне своими словами: что за проект, какие девять
принципов, из каких шагов состоит алгоритм, что поручено мне
и какие есть жёсткие запреты. Ничего не запускай и не генерируй.
Дальше сделаем только первый шаг: разберём сценарий ролика 5 из
документы/письма/2026-09-09-сценарии-роликов.txt и составим промпт
сетки стартовых кадров. Это бесплатно. Запускать генерацию будешь
только после моего «да», и цену называй заранее.
Пересказ нужен не для проформы: если агент не назвал правило «объявляй цену и жди „да“» или перепутал, откуда берётся конечный кадр, — значит, он прочитал невнимательно, и это лучше выяснить до первого доллара.
5. Первый шаг — бесплатный
Разобрать сценарий ролика 5 и составить промпт сетки. Показать отцу промпт до запуска. Это ничего не стоит и сразу покажет, правильно ли понят метод.
6. Как показывать результаты
Пары, листы и раскадровку — картинками и PDF в мессенджер, там же и обсуждать. Общего репозитория пока нет: если работа пойдёт и файлы начнут ходить туда-сюда часто, отец скажет — поднимем git на том же сервере, где лежит эта страница.
Файлы
Downloads\проекты.Если застрял или сомневаешься — пиши отцу. Спросить и подождать стоит ноль. Догадаться самому и потратить чужие деньги — дорого. Это правило важнее скорости и важнее того, чтобы выглядеть самостоятельным.