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

Я наткнулся на два open-source инструмента, которые в связке меняют уравнение. Один генерирует визуальный ряд с анимацией и звуковым дизайном. Второй — озвучивает текст на 600+ языках с клонированием голоса. Оба работают локально, без облака и подписок. Связка из двух репозиториев заменяет съёмочную группу.

Речь про Video Shotcraft — AI-скилл для Claude Code и Codex, который собирает кинематографичные промо-ролики через Remotion. И OmniVoice — TTS-модель от k2-fsa, которая генерирует речь в 40 раз быстрее реального времени.

Shotcraft: 106 рецептов шотов в кармане агента

Video Shotcraft — это скилл для AI-агентов. Не отдельное приложение, а набор инструкций и шаблонов, который загружается в Claude Code, Codex или любой агент, поддерживающий скиллы. Агент получает 106 карточек раскадровки, 161 превью моушна и готовый видео-шаблон Ink Press — 36 секунд, 1920x1080, 10 шотов в стиле paper-ink-amber.

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

Установка в Codex на macOS:

git clone https://github.com/Vincentwei1021/video-shotcraft.git
cd video-shotcraft
npm install
ln -s "$(pwd)" ~/.codex/skills/video-shotcraft

После установки пишешь агенту: “Use video-shotcraft to create a promo for my product.” Агент берёт скриншоты продукта, выбирает шоты из карточек, собирает Remotion-проект и рендерит MP4.

Шоты включают 2.5D камеру — реальные скриншоты продукта перемещаются в псевдотрёхмерном пространстве. Резка синхронизируется с битом музыки. SFX — свисты, удары, whoosh-переходы — встроены в шаблон. Это не слайд-шоу из картинок, а программное видео с киношной эстетикой.

Инсайт: 106 карточек шотов — не маркетинговый список фич. Это дистиллированная моушн-грамматика продукт-видео от ClickUp, Perplexity, Slack, Notion, Figma, Raycast. Каждый рецепт — конкретный приём тайминга и хореографии, переписанный с нуля.

OmniVoice: голос на 600+ языков за секунды

OmniVoice — TTS-модель (text-to-speech, преобразование текста в речь) от k2-fsa. 8442 звезды на GitHub, 600+ языков, клонирование голоса по 3-10 секундам референса. Архитектура — diffusion language model, RTF (real-time factor) 0.025: одна секунда аудио генерируется за 0.025 секунды. Сорока-кратный запас по скорости.

На macOS с Apple Silicon работает через MPS (Metal Performance Shaders) — отдельная видеокарта NVIDIA не нужна.

Установка:

python3 -m venv ~/omnivoice-env
source ~/omnivoice-env/bin/activate
pip install torch==2.8.0 torchaudio==2.8.0
pip install omnivoice

Проверка:

python3 -c "import torch; print(torch.mps.is_available())"
# True

Три режима генерации.

Клонирование голоса

Даёшь 3-10 секунд референс-аудио и текст. Модель копирует тембр и манеру:

from omnivoice import OmniVoice
import soundfile as sf
import torch

model = OmniVoice.from_pretrained(
    "k2-fsa/OmniVoice",
    device_map="mps",
    dtype=torch.float16
)

audio = model.generate(
    text="NEURO PROXY — прокси для Chrome с автоматической ротацией.",
    ref_audio="voice-ref.wav",
    ref_text="Транскрипция референсного аудио.",
)

sf.write("out.wav", audio[0], 24000)

Дизайн голоса

Задаёшь атрибуты — пол, возраст, высота тона, акцент. Модель генерирует голос с нужными характеристиками, без референс-аудио.

Сохранение голоса

Закодировал референс один раз, сохранил в файл — больше не нужно загружать аудио каждый раз:

prompt = model.create_voice_clone_prompt(
    ref_audio="voice-ref.wav",
    ref_text="..."
)
prompt.save("my_voice.pt")

# Позже — в новой сессии:
from omnivoice import VoiceClonePrompt
prompt = VoiceClonePrompt.load("my_voice.pt")
audio = model.generate(
    text="Новый текст",
    voice_clone_prompt=prompt
)

Невербальные звуки вставляются прямо в текст: [laughter] — смех, [whisper] — шёпот. Транскрипция произношения и фонемы помогают поправить, как модель произносит сложные слова. Числа автоматически нормализуются: “123” превращается в “one hundred twenty-three” с параметром normalize_text=True.

Связка: от текста до MP4

Два инструмента работают на разных стеках. Shotcraft — Node.js и Remotion, рендерит видео. OmniVoice — Python и PyTorch, генерирует аудио. Склеивание — через файловую систему: OmniVoice отдаёт WAV, Shotcraft подставляет его в Remotion-проект.

Пайплайн:

  • Скриншоты продукта — агент делает capture через browser automation или вручную
  • Shotcraft собирает раскадровку — выбирает шоты из 106 карточек, адаптирует под продукт
  • Текст озвучки — пишешь сценарий закадрового голоса
  • OmniVoice генерирует WAV — клонированный голос, русский, 24 kHz
  • Shotcraft накладывает голос на таймлайн — поверх музыки и SFX в Remotion-проекте
  • Remotion рендерит итоговый MP4

На macOS весь процесс идёт локально. Shotcraft через Node.js + Chrome, OmniVoice через MPS. Без облака, без API-ключей, без подписок.

В Codex это выглядит как один диалог:

Use video-shotcraft to create a 15-second vertical promo
for my product with the Ink Press template. 1080x1920 for Reels.

Generate a Russian voiceover with OmniVoice using my voice
clone from ~/voice-ref.wav. Script: "Один клик — и ваш
трафик защищён. Без логов, без задержек."

Add the voiceover to the Remotion project and render to MP4.

Агент сам вызывает Shotcraft для раскадровки, OmniVoice для озвучки, склеивает и рендерит.

Instagram: вертикальный формат

Шаблон Ink Press рендерит в 1920x1080 (16:9). Для Instagram Reels нужен 1080x1920 (9:16). Remotion работает с любым разрешением — меняешь композицию, шоты адаптируются.

Shotcraft включает 2.5D камеру, которая перемещает скриншоты в псевдотрёхмерном пространстве. В вертикальном формате это работает даже выразительнее — больше вертикального пространства для движения.

Что учитывать для Reels:

  • Длина — 15-30 секунд работает лучше, чем 60+. Шаблон Ink Press 36 секунд, можно обрезать
  • Текст на экране — Instagram часто смотрят без звука. Shotcraft умеет титлы и субтитры
  • Голос — OmniVoice озвучивает на русском. Если голос клонирован, ролик звучит лично, не “робот-диктор”
  • SFX — Shotcraft включает whoosh-переходы, удары, flash-cuts. Для Reels это держит внимание

Установка на macOS: что нужно проверить

Чек-лист перед стартом:

  • Node.js 20+node --version
  • Python 3.10+python3 --version
  • Chrome — Remotion использует для рендера, на Mac обычно есть
  • ffmpegbrew install ffmpeg (нужен обоим инструментам)
  • Apple Silicon — OmniVoice работает через MPS, проверка torch.mps.is_available()

Если Mac на Intel без GPU — OmniVoice не запустится. Shotcraft будет работать, но рендер медленнее.

Вывод

Связка Shotcraft + OmniVoice — это съёмочная группа в двух репозиториях. Один делает визуальный ряд с киношной эстетикой, второй озвучивает на любом языке. На macOS с Apple Silicon всё работает локально, без облака и API-ключей.

Для контент-воркфлоу это значит: каждая статья, каждый продукт, каждая фича может получить 15-секундный Reels за вечер работы агента. Не за неделю и не за сотни долларов — за один промпт в Codex.

Ссылки

Ссылки