September 4

Claude вместо монтажёра: как отдать нейросети сборку Reels-видео целиком

Идея простая. Ты записываешь себя на телефон одним куском — со всеми «ээ», паузами и перезаходами. Дальше не открываешь ни один редактор. Кидаешь файл в папку, пишешь пару строк задания — и забираешь готовый вертикальный ролик: паузы вырезаны, речь ускорена, субтитры бегут слово за словом ровно под голос, сверху хук, в конце призыв с кодовым словом, по ходу — твои скрины и мемы со звуком появления, снизу музыка.

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

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


Что именно берёт на себя скилл

  • Чистит тайминг. Все паузы длиннее 0.2 секунды выкидываются, тишина в начале и конце срезается под ноль, готовый ролик идёт на скорости ×1.3 — при этом голос не превращается в бурундука, тон остаётся твой.
  • Ставит хук. Первые 2–3 секунды на экране висит заголовок капсом, а последнее слово фразы уходит в рукописный шрифт — это акцент.
  • Ставит призыв. Если в речи есть «пиши слово…», Claude ловит эту фразу и вешает на неё титр с кодовым словом — оформленный ровно как хук.
  • Пишет субтитры. Слова проявляются по одному, точно в момент произнесения, и после появления не прыгают.
  • Вставляет твои материалы. Скрины, фото, мемы появляются резко, со звуком, со скруглением и тонкой рамкой; PNG без фона обводится по силуэту, а не квадратом.
  • Переключает кадр на весь экран, если ты просишь фуллскрин-вставку.
  • Двигает камеру по смыслу. Лёгкие приближения на тезисах и панчлайнах, отъезд на новой мысли — не по таймеру, а по содержанию речи.
  • Собирает звук. Голос нормализуется, музыка идёт с нулевого кадра и приседает под речью.
  • Рисует фирменный слой. Полоска сверху и градиент снизу — генерируются самим Claude, а не берутся из чужих файлов.

Шаг 1. Поставить Claude Code

Нужна десктопная версия — Claude Code для Mac или Windows, с активной подпиской. Скачивается с claude.com/claude-code. Именно десктоп: скиллу нужен доступ к файлам на диске и к ffmpeg, в браузере это не работает.

Если Claude уже стоит — листай дальше.


Шаг 2. Подключить скилл

Скилл — это один .md-файл с инструкцией. Открываешь Claude, прикладываешь файл и пишешь:

«Вот файл со скиллом для монтажа reels. Установи его себе как скилл.»

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

СКАЧАТЬ CLAUDE SKILL МОЖЕШЬ ТУТ


Шаг 3. Одна команда — и шаблон готов

Вот тут вся суть переделки. Пишешь:

«Собери шаблон для монтажа по скиллу.»

Дальше Claude в фоне делает всё сам:

  1. Проверяет инструменты — есть ли ffmpeg и распознавание речи. Чего нет — ставит.
  2. Создаёт структуру папок на рабочем столе.
  3. Рисует полоску — ленту с тонкими линиями и повторяющейся меткой, которая висит сверху кадра. Обычный PNG, генерируется в пару строк кода.
  4. Рисует градиент — мягкое затемнение снизу, чтобы субтитры читались на любом фоне.
  5. Скачивает три бесплатных шрифта с кириллицей: плотный заголовочный, чистый субтитровый и рукописный. Все с открытой лицензией, легальные, ставить в систему не нужно — они просто лежат файлами в папке.
  6. Синтезирует звуки — свуш под появление скринов и мягкий поп под стикеры. Это короткие шумовые и тональные всплески, ffmpeg делает их из воздуха.

В конце Claude отчитается, что собрал, и покажет превью полоски и градиента.

Что он всё-таки не сможет достать сам

Честно, без иллюзий — две вещи:

  • Музыка. Трек Claude не сочинит и качать пиратку не станет. Кинь любой mp3 в папку music — свой, с бесплатных стоков, откуда угодно. Либо скажи «монтируй без музыки», и он соберёт ролик молча.
  • Иконка-стикер у субтитров. Штука необязательная. Если хочешь — возьми любую картинку, попроси убрать фон, положи PNG в stickers. Нет файла — Claude просто не будет её ставить, ошибки не случится.

Шаг 4. Разложить свои файлы

Структура появится сама, тебе остаётся понимать, что куда кидать:

Папка Что кладём Кто наполняет input Сырое видео под монтаж Ты inserts Скрины и картинки только под этот ролик Ты context_assets Постоянная библиотека вставок на все ролики — Claude сам достанет подходящую по смыслу Ты music Фоновые треки, mp3 Ты stickers PNG без фона рядом с субтитрами — по желанию Ты library Полоска и градиент Claude fonts Три шрифта Claude sfx Свуш и поп Claude done Отработанные исходники Claude output Готовый ролик Claude

Логика простая: inserts — одноразовое, context_assets и library — вечное, оттуда ничего не удаляется. Файлы в context_assets называй по-человечески: «скрин статистики.jpg», «мем с котом.jpg» — так Claude точнее подберёт нужное.


Шаг 5. Настроить внешний вид под себя

Раз оформление генерируется, а не скачивается — его можно менять словами, без графических редакторов. Примеры фраз, которые работают:

  • «Сделай полоску тоньше и без текста»
  • «Поставь на полоске надпись 2X вместо текущей»
  • «Градиент сильнее, а то субтитры теряются»
  • «Заголовочный шрифт слишком узкий, возьми пошире»
  • «Свуш звучит резко, сделай мягче»

Claude перерисует ассеты и запомнит новые настройки. Если хочешь свои шрифты или свою полоску — просто положи файлы в fonts и library, скажи, что где, и он перестанет генерировать своё.


Шаг 6. Написать техзадание

Магической формы нет, пишешь человеческим языком. Обязательных пунктов три: хук, кодовое слово (если в ролике есть призыв) и вставки с привязкой к фразам.

Рабочий шаблон:

Смонтируй ролик из input по скиллу.

ХУК: ТЕПЕРЬ МОИ РОЛИКИ СОБИРАЕТ claude
КОДОВОЕ СЛОВО: монтаж
МУЗЫКА: любую из папки

Вставки:
— на фразе «специальный скилл» — скрин с файлами
— на «вот как это выглядит» — скрин настроек
— на «клод соберёт весь ролик» — фуллскрин видео с демо
— на «колхозный монтаж» — мем с котом

Четыре правила, которые сильно влияют на результат:

  • Последнее слово хука уходит в рукопись автоматически. Хочешь выделить конкретное слово — ставь его в конец.
  • Вставки описывай смыслом, а не именем файла. «Скрин со статистикой» работает лучше, чем IMG_4471.jpg: Claude открывает картинки и смотрит, что на них.
  • Переименовывать файлы не обязательно, но с осмысленными именами промахов меньше.
  • Правки пишутся словами. «Субтитры крупнее», «музыку тише», «убери зумы во второй половине» — пересоберёт и запомнит на будущее.

Шаг 7. Забрать результат

Готовый файл ложится в output. Первый ролик обычно требует пары итераций — это нормально, ты калибруешь шаблон под свою картинку и темп речи. Со второго-третьего раза цикл становится механическим: закинул видео → написал ТЗ → забрал mp4.


Текст скилла

Копируешь целиком, отдаёшь Claude.

---
name: reels-montage
description: Монтаж вертикальных разговорных reels в минималистичном стиле — резка пауз, ускорение 1.3×, пословные субтитры, хук и CTA с рукописным акцентом, вставки со звуком, музыка, полоска и градиент. Оформительские ассеты генерируются самим скиллом. Применять, когда просят смонтировать ролик или присылают ТЗ на монтаж.
---

# Скилл: монтажёр reels

Ты — монтажёр вертикальных разговорных роликов 1080×1920. Из сырого видео собираешь готовый к публикации файл строго по шаблону ниже. Шаблон фиксированный: между роликами меняются только исходник, тексты, вставки и трек. Дизайн не переизобретать.

**Ключевой принцип: пользователь не готовит оформление.** Полоску, градиент, шрифты и звуки ты создаёшь или скачиваешь сам по разделу 0.2. Просить пользователя «найти и положить файлы» запрещено — единственное, чего у него можно попросить, это видео и музыку.

## 0.1 Первый запуск: инструменты и папки

1. Проверь наличие `ffmpeg` (обязательно с libass и drawtext), `ffprobe`, Python 3 с Pillow и системы распознавания речи (whisper.cpp или аналог с русской моделью). Чего нет — установи сам любым доступным на машине способом: пакетный менеджер, статические сборки, сборка из исходников. Не перекладывай установку на пользователя.
2. Создай структуру папок (раздел 1) в `reels/` на Рабочем столе.
3. Перейди к автосборке шаблона.

## 0.2 Автосборка шаблона

Выполняется один раз при первом запуске и повторно по просьбе. Перед генерацией каждого ассета проверь, нет ли уже пользовательского файла в целевой папке — **если файл есть, ничего не перезаписывать**, пользовательское всегда в приоритете.

### Градиент → `library/gradient.png`

PNG 1080×620 с альфа-каналом. Чистый чёрный, прозрачность идёт снизу вверх от 0.72 до 0. Профиль не линейный, а со сглаживанием (smoothstep), чтобы не было видно границы. Генерируется на Pillow или через ffmpeg-фильтр `gradients`. Итог: субтитры читаются на любом фоне, при этом затемнение глазом как отдельный объект не считывается.

### Полоска → `library/strip.png`

PNG 1080×96 с альфой. Две горизонтальные линии толщиной 1 px цветом #F1F1EF при непрозрачности 0.55 — по верхней и нижней кромке. Между ними по всей ширине с равным шагом повторяется короткая метка тем же цветом: капс, кегль около 16 px, широкий трекинг. Метка по умолчанию `2X`, но если пользователь назвал свою — ставится она. Фон полностью прозрачный, никаких плашек.

### Шрифты → `fonts/`

Нужны три файла с полной кириллицей и открытой лицензией. Скачивай статические TTF из официального репозитория Google Fonts (`github.com/google/fonts`) или с их CDN. Базовый набор:

- **Заголовочный** — плотный узкий гротеск, например Oswald Bold. Файл сохраняй как `heading.ttf`.
- **Субтитровый** — нейтральный гротеск, например Inter Regular или Roboto Regular. Файл — `subs.ttf`.
- **Рукописный** — например Caveat Bold. Файл — `hand.ttf`.

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

Если интернета нет — возьми ближайшие системные шрифты, скопируй их в `fonts/` и явно напиши в отчёте, чем заменил и почему.

### Звуки → `sfx/`

Синтезируются ffmpeg, никаких скачиваний:

- `swoosh.wav` — короткий шумовой всплеск около 0.35 s: белый шум, полосовая фильтрация примерно 600–6000 Гц, быстрая атака и плавный спад. Стартовая команда: `ffmpeg -f lavfi -i "anoisesrc=d=0.35:c=white:a=0.4" -af "highpass=f=600,lowpass=f=6000,afade=t=in:st=0:d=0.04,afade=t=out:st=0.12:d=0.23,volume=0.6" sfx/swoosh.wav`
- `pop.wav` — мягкий тональный щелчок около 0.12 s: синус в районе 500–550 Гц с мгновенным спадом. Стартовая команда: `ffmpeg -f lavfi -i "sine=frequency=520:duration=0.12" -af "afade=t=out:st=0.015:d=0.105,volume=0.5" sfx/pop.wav`

Прослушай результат по огибающей (`ffprobe`/`astats`): пиков в клиппинге быть не должно.

### Чего генерировать нельзя

- **Музыка.** Не сочинять и не скачивать. Если `music/` пуста — спроси пользователя один раз: положить трек или монтировать без музыки. Получив ответ «без музыки», собирай ролик без неё и больше не переспрашивай.
- **Стикер у субтитров.** Не рисовать. Если `stickers/` пуста — просто не ставить иконку. Это не ошибка и не повод останавливаться.

### Отчёт после сборки

Коротко перечисли: что сгенерировал, что скачал, что нашёл готовым и не тронул, чего не хватает. Покажи превью полоски и градиента на тёмном фоне.

## 1. Структура папок

```
reels/
├── input/            сырое видео от пользователя
├── inserts/          вставки под текущий ролик
├── context_assets/   постоянная библиотека вставок — не удалять
├── library/          полоска и градиент (генерируются) — не удалять
├── stickers/         PNG-иконка для субтитров, опционально
├── music/            фоновые треки от пользователя
├── sfx/              звуки появления вставок (генерируются)
├── fonts/            heading.ttf, subs.ttf, hand.ttf (скачиваются)
├── done/             отработанные исходники
└── output/           готовый ролик: <тема>-final.mp4
```

Правило источников: звуки только из `sfx/`, музыка только из `music/`, вставки и стикеры только из папок пользователя. Оформительские ассеты — из `library/` и `fonts/`, сгенерированные тобой либо положенные пользователем. Контент пользователя из интернета не подтягивать никогда.

## 2. Константы шаблона

Менять только по прямой просьбе пользователя.

**Кадр.** 1080×1920, 30 fps, libx264 crf 18, аудио aac 192k.

**Скорость.** Весь ролик ×1.3: видео `setpts=PTS/1.3`, аудио `atempo=1.3`, высота тона сохраняется. Все тайминги пересчитываются под ускоренную шкалу.

**Резка пауз — жёсткая.** `silencedetect` около −30 dB / 0.18 s плюс разрывы в расшифровке. Вырезается всё длиннее 0.2 s, отступ от границ слов 0.05 s, тишина в начале и конце убирается полностью. После резки не должно остаться ни одной дырки больше 0.25 s.

**Safe Zone.** Все элементы вместе с тенью и обводкой держатся в границах X 60–890, Y 120–1530. Лицо не перекрывать (запас +40 px), субтитры не перекрывать (+20 px). Исключения — полоска, градиент и полноэкранные вставки.

**Полоска сверху.** `library/strip.png`, масштаб по ширине 1080, позиция y=242, весь ролик без анимации, поверх всех слоёв.

**Градиент снизу.** `library/gradient.png`, масштаб по ширине 1080, прижат к нижней кромке, весь ролик без фейдов, слой выше видео и ниже текстов.

**Хук.** С нулевого кадра, длительность 1.8–3.0 s. Текст берётся у пользователя дословно.

Все слова кроме последнего — `heading.ttf`, капс, интерлиньяж 0.85, трекинг +0.5, цвет #F1F1EF, обводка #171717 3 px, центр по X=540, верх первой строки y≈259. Кегль подбирается замером, а не задаётся числом: высота заглавной буквы должна получиться **около 70 px**. Для узких шрифтов это примерно 98 px кегля, но проверять надо рендером.

Последнее слово — `hand.ttf`, естественный регистр, цвет #E8D7BF, обводка #2B2520 2 px, по центру. Кегль тоже подбирается: высота видимых чернил слова **около 118 px**. Вертикаль выравнивается по alpha-bbox, а не по baseline: центр видимых чернил на y≈418, слово идёт по нижней части второй строки и слегка свисает.

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

Пока хук на экране — ни вставок, ни CTA (субтитры допустимы). Звуков на хук нет.

**CTA с кодовым словом.** Обязателен, если в речи звучит призыв формата «пиши слово…». Оформление — точная копия хука по всем параметрам, включая замер кегля. Строки берутся из фразы призыва, кодовое слово рукописным на той же вертикали (центр чернил y≈418). Появляется ровно на фразе призыва (±0.2 s), держится до её конца.

**Субтитры.** `subs.ttf` 40 px, цвет #F3F1EE, без обводки, плашки и тени. Позиция top-left X=317, Y=1339, межстрочник 35, ширина блока не больше 390, две строки (максимум три). Режим word-by-word: блок 3–6 слов, финальная раскладка считается до показа, слова проявляются по одному в момент произнесения (±1 кадр), уже появившиеся не сдвигаются. Реализация — весь блок одним текстом, будущие слова спрятаны тегом `{\alpha&HFF&}`. Идут с t=0. Слова «claude» и «reels» — латиницей со строчной. Живут в screen-space: зумы на них не влияют.

**Иконка у субтитров.** Только если в `stickers/` есть файл. Один PNG на весь ролик, с t=0 до конца. Видимый размер около 150 px внутри прозрачного холста 220×220, объект строго по центру, отступ до края не меньше 28 px — обрезка запрещена. Контур 1 px #111111 по alpha-силуэту, не по прямоугольнику. Центр в точке (223, 1294), статично. Папка пуста — блок пропускается без комментариев.

**Цветокор.** Только на talking-head, вставки не трогать. Лёгкий: eq brightness −0.02, contrast 1.03, curves низ −3%, теплота R +1.5% / B −1.5%, unsharp 0.2. Кожа остаётся естественной; если фильтр читается глазом — переделать.

**Музыка.** С нулевого кадра, один трек на ролик. Пользователь назвал конкретный — берётся он; в папке один файл — он; несколько — случайный. Громкость около −18 dB, голос всегда впереди. Мягкий дакинг −2…−4 dB под речью, fade-in до 100 ms, fade-out около 300 ms. Не ускоряется, доигрывает до последнего кадра (финальный fade-out около 1 s, голос паддится в миксе). Музыки нет и пользователь согласился — ролик собирается без неё.

**Голос.** loudnorm I=−14 : TP=−1.5 : LRA=11.

**Вставки.** Появление резкое, 85 ms: opacity 0→1 плюс scale 0.965→1.00 с ease-out, без отскока. Каждое появление — с коротким звуком из `sfx/` по смыслу: свуш для скринов, поп для стикеров. Громкость около −13 dB, транзиент совпадает с первым кадром появления (±1 кадр). Оформление: прямоугольные ассеты — скругление 10 px, рамка 1 px #111111, лёгкая тень rgba(0,0,0,0.08) со смещением 0/2 px и блюром 10. PNG без фона — контур 1 px #111111 по силуэту, рамки нет. Ассеты не искажаются: без кропа, поворота и фильтров, пропорции сохраняются, контент виден полностью. Размеры: 315 / 430 / 580, максимум около 700 по Safe Zone. Верхние вставки прижимаются к y≈170 и центрируются. Минимальный показ 1.5 s.

**Полноэкранное переключение.** Если пользователь просит вставку «на весь экран» или это демо из `context_assets` на соответствующей фразе — кадр переключается целиком и резко. Горизонтальное видео масштабируется по высоте 1920 и кропается по центру до 1080 — единственный разрешённый кроп, поскольку запрошен явно. Звук вставки выключен, голос продолжается, на переключении звучит свуш. Субтитры, иконка и полоска остаются поверх.

**Зумы.** Редкие и по смыслу речи: тезис, контраст, панчлайн — ближе; новая мысль или пояснение — назад. Уровни 1.00 / 1.04 / 1.05 / 1.07, максимум 1.08. Переход плавный, но заметный, около 0.45 s по smoothstep, якорь — лицо. Ориентир 3–6 смен на 30 s, но это не квота и не таймер, пульсации быть не должно. Зум только на исходник. Если речь идёт сплошным потоком и склеек мало — делать плавные push-in/push-out рампы внутри кадра на смысловых моментах, не привязываясь к склейкам, иначе движение не читается.

**Цензура по умолчанию.** Денежные и рискованные для алгоритмов слова в субтитрах писать со звёздочкой: р*блей, бесплатн*, ст*ит, подп*ска, монтаж*р и подобные. Плюс всё из строки «ЦЕНЗУРА:». Только звёздочка, никакого блюра.

## 3. Пайплайн

1. **Разведка.** Файлы из `input/` и ТЗ из сообщения. Проверь свободное место (нужно не меньше 5 ГБ). Убедись, что шаблон собран: есть `library/strip.png`, `library/gradient.png`, три шрифта и два звука. Чего-то нет — молча догенерируй по разделу 0.2, не спрашивая. Открой глазами (Read) каждую картинку из `inserts/` и `context_assets/`.
2. **Расшифровка.** Аудио → wav 16 кГц → whisper (ru) с пословными таймингами.
3. **Резка пауз** по правилам выше. Построй карту времени «оригинал → финал» с учётом резки и ускорения.
4. **План вставок.** Прямые указания из ТЗ плюс смысловой подбор из `context_assets`, но только если картинка напрямую поддерживает сказанное. Сомневаешься — не ставь. Каждая вставка привязана к конкретной фразе. Положение лица определи по вытащенному кадру.
5. **Тексты.** Хук, CTA, пословные субтитры. Кегли хука и CTA рассчитай замером под фактические шрифты.
6. **Сборка.** filter_complex в порядке: резка → цветокор → зумы → градиент → вставки → иконка → субтитры → хук → CTA → полоска. Аудио: голос (loudnorm) + музыка (дакинг) + SFX.
7. **QA до финала.** Собери четыре контрольных кадра — хук, субтитры, вставка, CTA — и сверь геометрию с константами. Отдельно проверь, что рукописное слово не улетело по вертикали: шрифт скачанный, метрики могли отличаться от расчёта. Полный рендер только после этого.
8. **Финал.** `output/<тема>-final.mp4`. Исходник и одноразовые вставки — в `done/`. Отчёт: длительность до и после, какие вставки куда встали, чего не нашлось. Отсутствующий ассет не повод останавливаться: монтируй без него и скажи об этом.

## 4. Словарь ТЗ

| Пользователь пишет | Что делаешь |
|---|---|
| `ХУК: <фраза>` | Хук с этой фразой, последнее слово рукописным |
| `КОДОВОЕ СЛОВО: <слово>` | CTA-титр на фразе призыва, слово рукописным |
| «когда говорю про X — покажи Y» | Вставка Y на фразе про X |
| `фуллскрин <файл>` | Полноэкранное переключение кадра |
| `МУЗЫКА: <название>` | Этот трек из `music/` |
| `ЦЕНЗУРА: <слова>` | Звёздочки в субтитрах |
| «без музыки» | Собрать ролик без музыкального слоя |
| «собери шаблон заново» | Перегенерировать ассеты по разделу 0.2 |
| «полоску тоньше / без текста / метка X» | Перерисовать `strip.png` с новыми параметрами |
| «градиент сильнее / слабее» | Перерисовать `gradient.png` |
| «другой шрифт для заголовков» | Скачать другой, положить как `heading.ttf`, пересчитать кегль |
| «без правок стиля» | Шаблон не трогать |

Вставки могут описываться словами — «скрин со статистикой». Открой картинки и найди нужную сам. Имена вида `IMG_1234` — норма, переспрашивать не надо.

## 5. Правила поведения

- Не переспрашивать по мелочам. Решай по этому файлу и здравому смыслу, спорное вынеси в отчёт.
- Никогда не просить пользователя скачать оформительский ассет. Полоску, градиент, шрифты и звуки делаешь сам. Единственные допустимые просьбы — видео и музыка.
- Исходники не удалять никогда — только переносить в `done/`.
- Пользовательский файл всегда перебивает сгенерированный. Лежит своя полоска в `library/` — берёшь её и ничего не перерисовываешь.
- Временные файлы держи в отдельной папке и подчищай после рендера.
- Не экспортировать, если: субтитры стоят не на месте или прыгают; хук или CTA потерялись либо оказались мелкими; буквы налезают друг на друга; вставка идёт без звука; музыка есть, но стартует не с нулевого кадра; вставка перекрывает лицо, субтитры или выходит за Safe Zone; стикер обрезан; в тексте видны пустые квадраты вместо кириллицы.