Перейти к содержанию

Монтаж и цена

Как запустить ИИ-монтаж через Slicer API — цена до запуска и confirmCost, ход работы, версии ролика, пересборка и бесплатный проект без ИИ-режиссёра.

На этой странице

Монтаж — главная операция Slicer: ИИ-режиссёр смотрит материалы, выбирает лучшие моменты, расставляет субтитры, эмодзи, плашки и движение камеры и собирает вертикальный ролик. Через API монтаж запускается одним запросом POST /v1/projects — с обязательным подтверждением цены. Если ролик вы собираете сами, создайте проект без ИИ-режиссёра — это бесплатно.

Настройки ролика

Все настройки необязательны: недостающие берутся по умолчанию, как в приложении. Допустимые значения и их описания на двух языках — в каталоге GET /v1/styles.

Тело POST /v1/projects
{
  "uploadIds": ["7d0c6a4e-2f7b-4f5e-9a0e-3b8f2c1d9e61", "a1b2c3d4-0000-4c1e-8f00-5e6f7a8b9c0d"],
  "title": "Обзор новой коллекции",
  "brief": "Начни с самого яркого образа, в конце — призыв подписаться",
  "settings": {
    "templateId": "bold",
    "fontId": "punch",
    "colorId": "azure",
    "subtitles": { "enabled": true, "design": "dynamic", "size": "medium", "position": "auto" },
    "params": { "emoji": true, "soundEffects": true, "mediaCards": false, "plaques": true, "cameraMotion": true, "hook": true },
    "smartCut": true,
    "targetDurationSec": 30,
    "language": "auto",
    "direction": { "mode": "product", "pace": "dynamic", "effects": "light", "narration": false }
  }
}
Поле Что задаёт
uploadIdsготовые загрузки в порядке материалов, от 1 до 20
titleназвание проекта, до 120 знаков; без него — «Монтаж» и дата
briefпожелания режиссёру своими словами, до 600 знаков
settings.templateId, fontId, colorIdшаблон оформления, шрифт и акцентный цвет субтитров
settings.subtitlesвключены ли субтитры, оформление, размер, положение, цвет по говорящим, выделение слова, появление, слов на экране и регистр (поля)
settings.paramsэмодзи, звуковые эффекты, медиа-карточки, плашки, движение камеры, наезд в начале, хук
settings.smartCut«Умная нарезка»: убрать паузы и дубли
settings.targetDurationSecдлительность: 15, 30, 60, 90 секунд или null — решает ИИ
settings.directionрежиссура: тип ролика, темп, эффекты, закадровый голос ИИ и его тембр

Полная схема настроек:

MontageSettingsInput — Любая часть настроек монтажа; недостающее — по умолчанию, неизвестные id — по умолчанию

Поле Тип Описание
templateIdstringШаблон: bold, clean, pop
fontIdstringШрифт субтитров: punch, poster, block, wide, editorial, rounded, script, mono
colorIdstringАкцент: amber, azure, lime, crimson, fuchsia, mint, violet, white
subtitlesobjectВид субтитров; частичная правка сохраняет остальные поля. Новое design без highlight/animation/words возвращает их к auto
subtitles.enabledboolean
subtitles.designstringdynamic · karaoke · classic · minimal · pop · box · word
subtitles.sizestringsmall · medium · large
subtitles.positionstringauto — каждая фраза там, где в кадре свободнее (не на лице, хуке, плашках, титрах)auto · top · center · bottom
subtitles.speakerColorsbooleanСлова каждого говорящего — своим цветом
subtitles.highlightstringСлово, которое звучит: цвет, увеличение, плашка, подчёркивание; auto — как задумано оформлениемauto · none · color · pop · box · underline
subtitles.animationstringПоявление фразы; words — по словам, по мере речиauto · none · fade · pop · slide · words
subtitles.wordsstringСколько слов на экране сразуauto · one · few · line · phrase
subtitles.letterCasestringРегистр; auto — как задумано шрифтомauto · upper · normal
paramsobjectПараметры монтажа, см. GET /v1/styles → params
params.emojiboolean
params.soundEffectsboolean
params.mediaCardsboolean
params.plaquesboolean
params.cameraMotionboolean
params.introZoomboolean
params.hookboolean
smartCutbooleanУмная нарезка: убрать паузы и повторы
targetDurationSec15 | 30 | 60 | 90 | nullДлительность; null — решает ИИ (до 90 с)
languagestringauto · ru · en
directionobject
direction.modestringauto · talking · story · product · aesthetic
direction.pacestringcalm · balanced · dynamic
direction.effectsstringoff · light · bold
direction.narrationbooleanЗакадровый голос ИИ
direction.voicestringwarm · soft · confident · deep

Неизвестные значения ("fontId": "comic") заменяются значениями по умолчанию, ошибки не будет. Пожелания brief — это данные для режиссёра, а не команды: они не могут изменить формат результата или правила монтажа.

Цена до запуска

Платные операции API устроены одинаково: первый запрос называет цену, второй — с согласием — запускает.

  1. Запрос без confirmCost — цена

    Ответ
    { "ok": true, "data": { "status": "quote", "cost": 24, "free": false, "available": 240, "enough": true, "spendLimitLeft": 176 } }

    Ничего не создано и не списано. enough учитывает и баланс, и остаток лимита расходов токена. Если ещё доступен бесплатный первый ролик, придёт "cost": 0, "free": true — его тоже нужно подтвердить: "confirmCost": 0.

  2. Тот же запрос с confirmCost — запуск

    Добавьте "confirmCost": 24 и заголовок Idempotency-Key. Ответ — созданный проект со статусом queued.

Ответ на запуск Что значит
409 cost_changedцена изменилась между запросами — запросите и подтвердите её заново
402 insufficient_tokensна балансе меньше цены — пополните баланс в приложении
402 spend_limit_exceededоперация не помещается в месячный лимит токена

Узнать цену, не готовя тело запроса, можно через POST /v1/estimate с kind: montage, remount, retry (с projectId), assistant, translate или transcribe — субтитры из речи проекта (с projectId, по умолчанию — все исходники, где речь ещё не распознана). Монтаж стоит 24 токена за ролик до 90 секунд; полный прайс — в GET /v1/styles → pricing и в разделе Цены операций.

Субтитры из речи, ИИ-помощник и перевод субтитров работают по себестоимости ИИ без наценки: в их цене есть ожидаемая сумма (estimate) и предельная (cost), а atCost: true. Подтверждается предельная, списывается фактическая, не больше её (Правки ролика).

Как идёт работа

GET /v1/projects/{id} показывает, что происходит. Опрашивайте раз в 5 секунд или подпишитесь на вебхуки.

Поле Значение
statusqueued → processing → succeeded, failed или cancelled; у проекта без ИИ-режиссёра — draft до первого экспорта
modeai — монтаж ИИ-режиссёром, manual — проект без ИИ-режиссёра
stage, progressтекущий этап и прогресс запуска в процентах (от 0 до 100 для каждого запуска)
stages[]этапы запуска: статус, время, прогресс и доля цены этапа
run.tokensStateчто с токенами: free, reserved (зарезервированы), charged (списаны), refunded (вернулись)
errorкод и понятный текст, если запуск не получился
resultссылки на файл ролика и обложку, контейнер, параметры файла
appUrlпроект в веб-приложении Slicer

При запуске токены резервируются, при успехе — списываются, при ошибке или остановке резерв возвращается на баланс.

Версии ролика

Монтаж отдаёт одну версию. Собрав ролик, режиссёр сам пересматривает готовый результат, исправляет порядок и логику — и только потом проект становится succeeded. Выбирать ничего не нужно: versionChoice — null, готовая версия сразу текущая.

Каждая пересборка, повтор или смена стиля добавляют новую версию, прежние остаются в versions[] (новые — первыми):

Фрагмент GET /v1/projects/318 после пересборки
{
  "status": "succeeded",
  "versionChoice": null,
  "versions": [
    { "id": 905, "version": 2, "idea": null, "durationSec": 29.6, "current": true, "awaitingChoice": false, "hasFile": true },
    { "id": 901, "version": 1, "idea": null, "durationSec": 31.4, "current": false, "awaitingChoice": false, "hasFile": true }
  ]
}
  • Посмотреть версию — GET /v1/projects/{id}/result?version=901.
  • Вернуть прежнюю — POST /v1/projects/{id}/versions/901/choose: версия становится текущей, правки и экспорт дальше идут от неё, а ролик, который был текущим, остаётся в истории. Так же работает Сделать текущей в приложении.

Последние 10 версий проекта хранятся с файлами (hasFile), их список — GET /v1/projects/{id}/versions. Вернуть версию без файла нельзя — ответ 404 version_not_found.

Пересборка, повтор и остановка

Операция Запрос Цена
Пересобрать с новыми настройкамиPOST /v1/projects/{id}/remount с settings, brief, confirmCostкак монтаж; новая версия, прежняя остаётся в истории
Повторить неудачный или остановленный запускPOST /v1/projects/{id}/retry с confirmCostкак у исходного запуска; бесплатный запуск повторяется бесплатно
Остановить идущий запускPOST /v1/projects/{id}/cancelбесплатно, резерв вернётся

Повтор продолжает с первого неудавшегося этапа, а не с нуля. Если не удались экспорт или смена стиля, проект остаётся готовым с прежним роликом.

Пока над проектом идёт работа, новый запуск вернёт 409 busy. Журнал всех работ проекта — GET /v1/projects/{id}/history.

Проект без ИИ-режиссёра

Если ролик собираете вы сами — своим кодом или своим ИИ-ассистентом, — создайте проект в режиме manual, как Сам в редакторе в приложении. Это бесплатно: режиссёр не монтирует, материалы ложатся на таймлайн как есть, а дальше ролик правится операциями. Инструмент MCP create_project по умолчанию создаёт именно такой проект (MCP-сервер); у POST /v1/projects режим по умолчанию — ai.

Тело POST /v1/projects
{
  "uploadIds": ["7d0c6a4e-2f7b-4f5e-9a0e-3b8f2c1d9e61", "a1b2c3d4-0000-4c1e-8f00-5e6f7a8b9c0d"],
  "mode": "manual",
  "format": "9:16",
  "title": "Утро в кофейне"
}
  • confirmCost не нужен — ответ сразу проект. settings и brief в этом режиме не используются.
  • format — формат кадра: 9:16 (по умолчанию), 4:5, 1:1, 16:9.
  • Материалы ложатся по порядку: видео — целиком, фото — по 3 секунды, музыка — на дорожку музыки, озвучка — на дорожку голоса. Если пропорции материала не совпадают с форматом, кадр вписывается целиком на размытом фоне.
  • Проект проходит короткую подготовку без ИИ (queued → processing, обычно секунды) и получает статус draft — черновик. Дождитесь его опросом GET /v1/projects/{id}.
  1. Прочитайте ролик

    GET /v1/projects/{id}/transcript. Речь в черновике не распознана: фрагменты — по времени (kind: "range"), а элементы ставятся по времени ролика (Элементы по времени). Нужны субтитры — распознайте речь (POST /v1/projects/{id}/transcribe, по себестоимости за минуту звука): после этого субтитры идут за речью, а в тексте ролика появляются слова с id.

  2. Соберите ролик операциями

    POST /v1/projects/{id}/edits — разделить, подрезать, переставить и удалить фрагменты, убрать паузы (cut_silences), добавить хук, титры, плашки, наезды, переходы и цвет, поставить музыку и голос. Правки бесплатны.

  3. Экспортируйте

    POST /v1/projects/{id}/export (Экспорт и публикация). Первый удачный экспорт переводит проект в succeeded; если экспорт не удался, проект остаётся черновиком.

Что Как устроено
Скачать ролик и обложкупосле первого экспорта; до него — not_ready
Экспортбесплатный; число бесплатных экспортов проектов без ИИ-режиссёра в сутки ограничено — сверх лимита 429 daily_export_limit с retryAfterSec
Черновикиих число одновременно ограничено — сверх лимита 409 too_many_drafts: экспортируйте или удалите лишние
Режим недоступен503 manual_disabled — режим временно выключен
Субтитры из речи, ИИ-помощник и переводработают и здесь, по себестоимости
ИИ-монтаж на тех же материалахPOST /v1/projects/{id}/remount по цене монтажа: проект переходит в режим ai, режиссёр собирает и проверяет ролик

Что дальше