Communitygithub.com

IliaBatko39/reels-motion

Рилс с говорящей головой из сырых вертикальных клипов: резы по звуку, сетка кадров, стоп-кадр-обложка с жестом на плашку, плашки, стикеры, реакции, субтитры по словам, панч-ин, whip и вспышки, SFX и музыка синтезом, −14 LUFS, приёмка по кадрам. Стиль выбирается в процессе: пресеты premium, sticker, kinetic, смесь или новый стиль по описанию или референсу. Шаблоны А (хук, лид, три блока с петлями, призыв) и Б (вопрос, эмоция, сферы, ответ). Триггеры: «смонтируй рилс с плашками», «моушн-оформление ролика», «накладки на говорящую голову», «рилс по шаблону А», «рилс по шаблону Б», «сделай плашки как в топовых рилсах», «субтитры по словам и плашки», «оформи ролик в стиле…», «первый кадр с пальцем на плашку». English: talking-head reel with motion graphics, kinetic captions, animated lower thirds for Reels and Shorts.

reels-motion란 무엇인가요?

reels-motion is a Claude Code agent skill that рилс с говорящей головой из сырых вертикальных клипов: резы по звуку, сетка кадров, стоп-кадр-обложка с жестом на плашку, плашки, стикеры, реакции, субтитры по словам, панч-ин, whip и вспышки, SFX и музыка синтезом, −14 LUFS, приёмка по кадрам. Стиль выбирается в процессе: пресеты premium, sticker, kinetic, смесь или новый стиль по описанию или референсу. Шаблоны А (хук, лид, три блока с петлями, призыв) и Б (вопрос, эмоция, сферы, ответ). Триггеры: «смонтируй рилс с плашками», «моушн-оформление ролика», «накладки на говорящую голову», «рилс по шаблону А», «рилс по шаблону Б», «сделай плашки как в топовых рилсах», «субтитры по словам и плашки», «оформи ролик в стиле…», «первый кадр с пальцем на плашку». English: talking-head reel with motion graphics, kinetic captions, animated lower thirds for Reels and Shorts.

지원 대상✓Claude Code~Codex CLI~Cursor
npx skills add IliaBatko39/reels-motion

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

reels-motion — рилс с моушн-оформлением

Из сырых вертикальных видео человека, который говорит в камеру, — готовый рилс: основа по звуку, стоп-кадр-обложка с жестом на плашку, плашки и реакции в выбранном стиле, субтитры по словам, камера, звук. Всё локально: ffmpeg, headless Chromium, numpy. Платный только шаг распознавания речи (fal whisper).

Рядом с этим файлом:

  • ${CLAUDE_SKILL_DIR}/engine/reel.py — единый CLI, у каждой подкоманды есть --help;
  • ${CLAUDE_SKILL_DIR}/styles/ — пресеты стилей, ${CLAUDE_SKILL_DIR}/examples/ — таймлайны шаблонов А и Б;
  • ${CLAUDE_SKILL_DIR}/reference/ — подробности по шагам; читать, когда дошёл до шага.

Ниже R — это python3 ${CLAUDE_SKILL_DIR}/engine/reel.py. Работай в папке проекта пользователя, не внутри папки скилла.

0. Окружение — один раз

python3 ${CLAUDE_SKILL_DIR}/scripts/check_env.py

Проверит Python-модули, ffmpeg с фильтрами, Chromium и шрифты; на каждую проблему печатает команду установки. Быстрая проверка всего конвейера — синтетическое демо без чужого видео (5–10 минут):

R demo --style sticker --out ./reels-demo

1. Разведка исходников

R probe src/*.mov --sheets work/sheets

Размер, к/с, поворот, HDR-метки, звук; лист кадров на каждый файл — смотреть глазами (Read), где что снято и куда смотрит человек. HDR айфона (arib-std-b67) движок пересчитает в BT.709 сам.

2. Распознавание

# ключ fal — только в переменной окружения FAL_KEY (её задаёт пользователь)
R stt src/*.mov --out work/stt

fal whisper по словам. Без FAL_KEY шаг не выполняется (понятная ошибка, код 2) — тогда слова кладутся готовым JSON формата fal chunks. Слова длиннее 1,2 с — почти всегда скрытый повтор или оговорка: команда печатает их сама, проверить замедленной перерасшифровкой ×2:

R stt src/take3.mov --out work/stt --slow 20.0:22.2

3. Выбор дублей и раскладка

Шаблон А или Б — reference/templates.md. Для каждой фразы — последний целый заход; у каждого реза причина словами («убрал повтор», «смена локации»); годный дубль не резать ради паузы короче 1 с. Раскладка — EDL (JSON, формат в engine/rm/cut.py): куски {src, in, out, stage}, кадр стоп-кадра с кончиком пальца, правки слов.

4. Резы по огибающей звука и сетка кадров

R cut --scan src/take1.mov:2.0:11.0        # речь и тихие точки в окне
R cut edl.json --out work

Распознавание говорит, где искать, огибающая — где резать. cut проверяет каждую границу по уровню звука (рез в речи — ошибка, cut_report.json), режет по номерам кадров, делает assert числа кадров основы и пишет base.mov, words.json, beats.json, freeze.png. Затем: R words work/words.json — номера слов для якорей, R faces timeline.json — лицо по планам.

5. Стоп-кадр-обложка с плашкой

Кадр 0 — обложка. Приём «первый кадр с пальцем на плашку»: в EDL freeze: {src, t, fingertip}, в таймлайне freeze.hold 0,4–0,7 с. Плашка хука стоит слева от пальца или к ней ведёт линия от кончика пальца; все времена сдвигаются на стоп-кадр автоматически.

6. Таймлайн

Один JSON: этапы шаблона, слова, стоп-кадр, элементы, камера, субтитры — reference/timeline-schema.md, примеры examples/template-a.timeline.json, examples/template-b.timeline.json. Времена — якорями на слова ({"w": 13}, {"word": "франшиза"}) и склейки ({"cut": 2}). Свободные элементы — elements: реакции 🔥 😮 👍, стикеры, стрелки и выноски, пузырь «ответ на комментарий», акцентное слово, прогресс, счётчик.

R plan timeline.json --style base --verbose      # проверка якорей, времени чтения, цифр

7. Выбор стиля — ОБЯЗАТЕЛЬНО до рендера

Стиль молча по умолчанию не выбирать. Спроси пользователя, в каком стиле делать, и покажи превью:

R styles                       # список стилей
R styles --preview --out work/preview     # лист: стоп-кадр с плашкой · лид с субтитрами · призыв для каждого стиля

Покажи лист картинкой. Варианты ответа:

  1. Пресет: premium (стекло, тёплый акцент), sticker (стикеры, маркер), kinetic (3D, плиты из глубины), base (нейтральный).
  2. Смесь: например, плашки из sticker, субтитры из premium — style.json с "extends": "sticker", "components": {"*": "sticker", "captions": "premium"}.
  3. Новый стиль по описанию или референсу (скрин, чужой рилс) — reference/styles.md, раздел «пошагово»:
    R style-new neon --from base          # заготовка в ~/.reels-motion/styles/neon/style.json
    # правишь tokens / motion / captions / camera / transitions / audio (и при необходимости свой компонент)
    R style-test neon --project timeline.json --out work/style-test-neon
    
    Тест — 4 с: стоп-кадр с плашкой, лид, субтитры, призыв; mp4 и лист кадров через 0,25 с. Посмотри кадры сам, покажи пользователю. Полный рендер — только после его «ок».

Если человек не знает, чего хочет, — предложи 2–3 контрастных варианта (например, premium, sticker и один новый) и покажи превью рядом.

8. Накладки, субтитры, камера

R render timeline.json --style <стиль> --work work/<стиль>      # overlay.mov + boxes.json + meta.json
R render timeline.json --style <стиль> --frames 0,45,300 --png-dir work/stills   # отдельные кадры для проверки
R compose timeline.json --style <стиль> --work work/<стиль>     # video.mp4

Кадр — чистая функция времени (setTime(t)); смаз в движении — 4 подкадра только на входах и выходах. Субтитры по словам — из words.json, вид — из стиля (reference/captions.md). Камера: масштаб плана маскирует склейки, панч-ин на ключевых словах, одна тряска на удар; whip и вспышка — на швах этапов (reference/motion.md). Тяжёлые шаги — по одному на машину: --lock /tmp/reels_motion.lock или REEL_LOCK.

9. Звук

R audio timeline.json --style <стиль> --work work/<стиль>

Голос — только гигиена (highpass 80 Гц, компрессор ≤ 3:1, без шумодава). SFX — синтез, ровно на кадр появления. Музыка — синтез с sidechain под голос. Итог −14 LUFS, true peak ≤ −1, alimiter level=false. Две версии: с музыкой и без (reference/sound.md).

10. Сборка и приёмка

R finalize timeline.json --style <стиль> --work work/<стиль> --out out --name reel
R qa timeline.json --style <стиль> --work work/<стиль> --out out --name reel --stt
R sheet timeline.json --style <стиль> --work work/<стиль> --out out --name reel

Или всё сразу: R build timeline.json --style <стиль> --work work/<стиль> --out out.

Приёмка — reference/qa.md, конечным действием:

  • qa: кадры = основа + стоп-кадр, BT.709, LUFS/TP, рамки текстов в безопасной зоне, накладки не на лице, SFX на кадре появления ±1; --stt — обратная расшифровка: фразы целые.
  • Глазами через Read: листы через 0,25 с и каждый кадр вокруг появлений и склеек (out/sheets/). Кадр 0 — обложка с плашкой.
  • Файлы пишутся во временное имя и переименовываются в конце.

11. Выдача

out/reel.mp4 (H.264, AAC 256k, faststart), out/reel_nomusic.mp4, out/reel_tg.mp4 (≤ 6 Мбит/с, < 45 МБ), out/reel_cover.jpg, листы кадров. Отчёт: какой стиль, список резов с причинами, замеры qa, что посмотрено глазами.

Правила, которые нельзя нарушать

  • Цифры в кадре — только из голоса и в момент произнесения; счётчики для фактов запрещены.
  • Ничего не выдумывать: факты, обещания, доход — только как сказал автор.
  • Текст не на лице и в безопасной зоне; текст ≥ 40 px; время показа ≥ 0,3 × слов + 0,5 с.
  • Не «квадратная плашка»: форма, вход с перелётом, микродвижение — reference/motion.md.
  • Грабли (alimiter, -frames:v, setpts без fps, HDR, blur в Chromium, недописанный файл, jump cut) — reference/pitfalls.md.

관련 스킬