# Свой режиссёр

> Ваш ИИ-ассистент сам смотрит кадры и пишет план ролика, а Slicer применяет к плану правила своего режиссёра на сервере. Для Slicer бесплатно.

Источник: https://docs.slicer.media/mcp/own-director/

ИИ-монтаж — это две работы: понять материал (что сказано, что показано, где лучшие дубли) и смонтировать ролик (сценарий, нарезка, инструменты редактора). Обе умеет и ваш ИИ-ассистент, подключённый к Slicer по MCP: он сам смотрит кадры и пишет план ролика. Slicer применяет к плану правила своего ИИ-режиссёра — на нашем сервере, — собирает ролик и отвечает, что поправил сам и что стоит поправить ассистенту. Так ролик монтируется на подписке и лимитах вашего ассистента, а в Slicer это бесплатно.

## Зачем

-   **Бесплатно в Slicer.** Бриф режиссёра, кадры, приём плана, правки, стиль и экспорт токенов не тратят.
-   **Ассистент — режиссёр.** Историю, порядок мыслей, лучшие дубли и что показать решает ассистент: он сам смотрит кадры и сообщает Slicer, что в них увидел.
-   **Правила нашего режиссёра — на сервере.** Ассистент не получает правил ИИ-режиссёра Slicer: они применяются к плану, когда ассистент его присылает. В ответ приходят исправления и замечания, поэтому ролик собирается аккуратно, даже если модель в чём-то ошиблась.
-   **Ролик — ваш проект.** Результат сразу виден в редакторе приложения: его можно доработать руками, попросить ассистента поправить детали или экспортировать.

| Бесплатно | Платно — ИИ-функции Slicer |
| --- | --- |
| бриф режиссёра (`get_director_brief`), кадры (`get_frames`), приём плана (`submit_director_plan`) | [субтитры из речи](https://docs.slicer.media/mcp/tools/#transcribe) — `transcribe_speech`, по себестоимости за минуту звука |
| проект «Сам в редакторе» (`create_project`), правки (`edit_project`), стиль (`set_style`), экспорт и публикация (`export_video`) |     |

Речь распознаёт сервер Slicer: только так у ролика будут слова с id, по которым режется речь. Это единственный платный шаг, и ассистент запускает его только после вашего согласия на цену ([Подтверждение цены](https://docs.slicer.media/mcp/costs/#at-cost)). Если речи в материале нет, всё бесплатно целиком. Наш собственный [ИИ-монтаж](https://docs.slicer.media/mcp/examples/#ai-director) остаётся рядом — для тех, у кого нет своего ассистента.

## Как это работает

### 1. Загрузка и проект

Ассистент загружает файлы (`create_upload_link` или `import_from_url`) и создаёт проект `create_project` в режиме `manual` — как **Сам в редакторе** в приложении, бесплатно. Через несколько секунд проект становится черновиком.

### 2. Речь

Если в материалах есть речь, ассистент вызывает `transcribe_speech` без `confirmCost`, называет вам цену и после вашего «да» распознаёт речь; ход — `get_transcribe_jobs`.

### 3. Бриф режиссёра

`get_director_brief` возвращает материал (`material`): исходники, речь по id слов, паузы, дубли `[RETAKE …]` и ваши пожелания, — несколько общих советов (`guide`), схему плана (`planSchema`) и схему наблюдений по кадрам (`scenesSchema`). Правил ИИ-режиссёра Slicer в брифе нет. Если вы назвали тип ролика, темп, эффекты или длину, ассистент передаст их сюда — они сохранятся в проекте, и Slicer учтёт их, когда примет план.

### 4. Кадры и наблюдения

Анализа кадров в брифе тоже нет: смотрит сам ассистент — `get_frames` отдаёт кадры исходника картинками (как смотреть экономно). Что увидел — где говорит автор, где показано действие, что не годится в ролик, — ассистент записывает наблюдениями.

### 5. План

Ассистент продумывает историю как монтажёр — смысл, порядок, лучшие дубли, показ действия, концовку — и отправляет план и наблюдения `submit_director_plan` вместе с ревизией `rev` из брифа.

### 6. Исправления и замечания

Slicer применяет к плану правила своего режиссёра (что происходит с планом), собирает ролик и сохраняет его новой ревизией. В ответе — что Slicer поправил сам, замечания к плану и ролик текстом. Есть замечания — ассистент правит план и присылает снова (план → замечания → исправленный план).

### 7. Результат

Когда замечаний нет, ассистент сверяет ролик с замыслом, правит детали `edit_project` и `set_style`, присылает ссылку на проект и спрашивает, экспортировать ли ролик.

### Бриф режиссёра (свой режиссёр)

`tool get_director_brief`

- **Области доступа:** `projects:write`
- **MCP:** можно повторять

Бесплатно. Чтобы вы монтировали со Slicer: материал (речь по id слов, паузы, дубли, пожелания), исходники, общие советы и схемы плана и наблюдений. Кадры — get\_frames; план и наблюдения — submit\_director\_plan, правила режиссёра Slicer работают там. Настройки, если переданы, сохраняются в проекте.

#### Параметры

| Поле | Тип | Описание |
| --- | --- | --- |
| `projectId` _(обязательное)_ | `integer` | Project id — ≥ 1 |
| `mode` | `string` | Video type — `auto` · `talking` · `story` · `product` · `aesthetic` |
| `pace` | `string` | — `calm` · `balanced` · `dynamic` |
| `effects` | `string` | — `off` · `light` · `bold` |
| `targetDurationSec` | `integer \| null` | Target length, s; null — up to the director (≤ 90 s) — 10–180 |
| `hook` | `boolean` |     |
| `plaques` | `boolean` |     |
| `emoji` | `boolean` |     |
| `cameraMotion` | `boolean` |     |

#### Пример промпта

> «Смонтируй этот ролик сам, как режиссёр Slicer»

### Посмотреть кадры

`tool get_frames`

- **Области доступа:** `projects:read`
- **MCP:** только чтение

Бесплатно. Кадры исходника картинками (до 16 за вызов, 512 px): в заданные секунды или равномерно по отрезку. Сначала по несколько кадров, затем подробнее там, где действие.

#### Параметры

| Поле | Тип | Описание |
| --- | --- | --- |
| `projectId` _(обязательное)_ | `integer` | Project id — ≥ 1 |
| `sourceIndex` _(обязательное)_ | `integer` |     |
| `times` | `number[]` | Seconds of the source — 1–16 |
| `from` | `number` |     |
| `to` | `number` |     |
| `count` | `integer` | — 1–16 |

#### Пример промпта

> «Покажи, что происходит во втором ролике»

### Применить свой план режиссёра

`tool submit_director_plan`

- **Области доступа:** `projects:write`

Бесплатно. План (planSchema) становится роликом: Slicer применяет свои правила режиссёра на сервере и сохраняет новую ревизию. В ответе — исправления, замечания (поправьте и пришлите снова) и ролик текстом; дальше edit\_project и export\_video.

#### Параметры

| Поле | Тип | Описание |
| --- | --- | --- |
| `projectId` _(обязательное)_ | `integer` | Project id — ≥ 1 |
| `rev` _(обязательное)_ | `integer` | Document revision from get\_transcript; edits are rejected if the video changed since |
| `plan` _(обязательное)_ | `Record<string, object>` | The plan object in planSchema |
| `scenes` | `Record<string, object>[]` | What you saw in the frames, in scenesSchema — 0–400 |

#### Пример промпта

> «Вот план — собери ролик»

## Как ассистент смотрит кадры

`get_frames` отдаёт до 16 кадров за вызов, по 512 точек по большей стороне, прямо в ответе инструмента — картинками, которые модель видит сама. Кадры можно взять в заданные секунды исходника (`times`) или равномерно по отрезку (`from`, `to`, `count`, по умолчанию 8 кадров на весь исходник). Фото возвращает свою единственную картинку, у аудио кадров нет.

Каждый кадр расходует лимиты вашего ассистента, поэтому смотреть стоит экономно — так подсказывают и бриф, и промпт `direct_reel`:

1.  **Сначала обзор** — 6–8 кадров равномерно по каждому видео, один вызов на исходник.
2.  **Затем подробнее, где важно** — вокруг моментов, на которые ссылается речь («смотрите», «вот результат»), вокруг действий и показа товара.
3.  **Наблюдения по ходу** — где говорит автор, а где показано действие, насколько интересен кадр, какие места не годятся (тёмные, смазанные кадры, заставки). Их ассистент присылает вместе с планом.

Для материала на 1–5 минут обычно хватает 30–120 кадров.

## Наблюдения по кадрам

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

| Поле | Что значит |
| --- | --- |
| `sourceIndex` | номер исходника, обязательно |
| `start`, `end` | начало и конец участка в секундах исходника, обязательно |
| `kind` | что в кадре, обязательно: `talking_head` — автор говорит в камеру и ничего не показывает; `demo` — показано действие, товар или результат, даже если автор при этом говорит; `people` — люди в кадре; `screen` — экран или запись экрана; `broll` — видеоряд; `unusable` — не годится в ролик: темно, смазано, заставка |
| `interest` | насколько участок интересен зрителю, от 1 до 5 |
| `description` | что видно, коротко — до 200 знаков |

scenes:

```json
[
  { "sourceIndex": 0, "start": 0, "end": 14.5, "kind": "talking_head", "interest": 3, "description": "Бариста рассказывает у стойки" },
  { "sourceIndex": 0, "start": 14.5, "end": 21, "kind": "demo", "interest": 5, "description": "Рисует сердце на латте" },
  { "sourceIndex": 1, "start": 0, "end": 9, "kind": "broll", "interest": 4, "description": "Гости с чашками у окна" }
]
```

По наблюдениям Slicer ставит видеоряд: из кусков, которые запросил план, убирает говорящую голову и отмеченные `unusable` места, а для исходника видеоряда, который план пропустил, сам выбирает самый интересный подходящий участок. Ещё наблюдения нужны проверке плана: замечания `footage_is_talking_head`, `unusable_footage` и `nothing_shown` приходят только по ним.

Наблюдения необязательны, но без них Slicer не знает, что в кадрах: в видеоряд может попасть автор, молча смотрящий в камеру, или неудачный кадр. В одном плане — до 400 наблюдений; время за пределами исходника подтягивается к его краям, а наблюдения с неизвестным исходником или видом Slicer пропускает.

## Что Slicer делает с планом

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

-   **Схема.** План не по схеме отклоняется с `bad_plan` и списком первых ошибок — ассистент исправит и пришлёт снова; план без фрагментов — `empty_plan`.
-   **Речь — по словам.** Фрагменты речи задаются только id слов: склейки встают на границы слов и пауз, слова-паразиты внутри речи вырезаются.
-   **Видеоряд — по наблюдениям.** Куски без речи подрезаются по исходнику и по наблюдениям; исходник видеоряда, который план пропустил, Slicer ставит в ролик сам.
-   **Сдержанный монтаж.** Речь звучит в естественной скорости, инструменты редактора — редкие акценты: лишние настройки Slicer снимает сам и пишет об этом в исправлениях.
-   **Длина.** Ролик укладывается в длину из настроек: если план длиннее, первыми уходят наименее важные фрагменты.
-   **Ревизия.** Если ролик успели изменить в редакторе, план отклоняется с `409 stale_document` — ассистент перечитает проект и пришлёт план с новой `rev`.

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

## План → замечания → исправленный план

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

-   `rev` — новая ревизия: с ней ассистент присылает следующий план или правки;
-   `durationSec`, `planSegments`, `fragments` — длительность ролика, число фрагментов плана и ролика;
-   `fixes` — что Slicer поправил сам;
-   `issues` — замечания: код (`code`), номер фрагмента плана с нуля (`segment`, если замечание о фрагменте) и что поправить (`message`);
-   `video` — ролик текстом, как в `get_transcript`.

Тексты `fixes` и `message` — на английском: их читает модель. Все коды замечаний — [Замечания к плану](https://docs.slicer.media/api/editing/#director-issues).

Ответ submit_director_plan (сокращённо):

```json
{
  "rev": 4,
  "durationSec": 29.6,
  "planSegments": 7,
  "fragments": 8,
  "fixes": ["Filler words are cut automatically inside kept speech."],
  "issues": [
    { "code": "cuts_thought", "segment": 2, "message": "Segment 2 stops in the middle of a sentence (\"…взбиваем молоко…\"): end it where the thought ends." }
  ],
  "video": "…"
}
```

### 1. Первый план

Ассистент присылает план и наблюдения с `rev` из брифа. Slicer собирает ролик и отвечает исправлениями и замечаниями.

### 2. Разбор замечаний

Каждое замечание говорит, что не так и где: `cuts_thought` у фрагмента 2 — продлить фрагмент до конца мысли, `two_takes` — оставить один дубль из двух, `footage_is_talking_head` — взять кадр, где видно действие. Исправления из `fixes` уже в ролике — повторять их не нужно.

### 3. Исправленный план

Ассистент присылает план целиком ещё раз — с новой `rev` из ответа: со старой план отклонится с `409 stale_document`. Новый план снова заменяет ролик целиком.

### 4. Пока есть замечания

Круг повторяется, пока `issues` не станет пустым. Дальше мелочи удобнее править операциями `edit_project`, а новый план присылать, только когда меняется сама история: он заменит и правки, сделанные после прошлого плана.

## Ограничения

-   **Кадрирование — по центру.** Наблюдения не говорят, где в кадре лицо, поэтому кадр ставится по центру. Ассистент, который видел кадры, правит его операцией `set_framing` ([Кадр, маска, скорость](https://docs.slicer.media/api/editing/#ops-frame)).
-   **Медиа-карточки — только со своими фото.** Картинку карточки по описанию рисует платный ИИ Slicer, поэтому в плане ассистента карточки не принимаются. Своё фото из медиа проекта ставится операцией `update_card`.
-   **Кадров за вызов — до 16, наблюдений в плане — до 400.** Вызовы считаются в общем [лимите запросов MCP](https://docs.slicer.media/mcp/limits/).
-   **Правил режиссёра в ответах нет.** Ни бриф, ни промпт, ни ответы инструментов не содержат правил ИИ-режиссёра Slicer — только ваш материал, общие советы, исправления и замечания.
-   **Только готовый к правкам проект.** Пока ролик рендерится — `409 busy`; если исходники удалены по сроку хранения — `409 sources_expired`.

## Промпт direct\_reel

Весь порядок работы одной командой задаёт промпт MCP `direct_reel`: выберите его и укажите файлы (`files` — пути или публичные ссылки на видео, фото и аудио) и, по желанию, идею ролика (`idea`). В промпте — только порядок работы: загрузка, субтитры из речи с вашего согласия, бриф, кадры и наблюдения, план и исправление по замечаниям. Если клиент промпты не поддерживает, просто попросите словами — «Смонтируй этот ролик в Slicer сам», — ассистент пойдёт тем же путём. Как вызывать промпты в разных клиентах — [Промпты](https://docs.slicer.media/mcp/prompts/).

## Пример разговора

> Смонтируй сам в Slicer ролик из `~/Movies/latte-art.mp4` и `~/Movies/cafe.mp4`: 30 секунд, динамичный темп, хук «Латте-арт за минуту».

1.  Ассистент загружает оба файла и создаёт проект «Сам в редакторе».
2.  В первом видео есть речь — он называет цену распознавания и после вашего «да» запускает `transcribe_speech`.
3.  `get_director_brief` с `pace: "dynamic"` и `targetDurationSec: 30` — материал по словам, схемы плана и наблюдений.
4.  `get_frames` — по 8 кадров на каждое видео, затем ещё 6 кадров вокруг момента, где бариста рисует сердце. В наблюдениях — рассказ у стойки, рисунок на латте и гости с чашками.
5.  `submit_director_plan` — хук, три законченные мысли бариста, перебивки рисунка и чашки в руках гостя. Замечание `cuts_thought` у второго фрагмента: ассистент продлевает его до конца мысли и присылает план снова — замечаний нет.
6.  Ответ ассистента:

> Готово: ролик на 28 секунд — хук «Латте-арт за минуту», три шага от молока до рисунка и крупный план готового сердца в финале. Поправил кадр на втором фрагменте, чтобы чашка была по центру. Ссылка на проект — в приложении. Экспортировать в 1080p?

Платным было только распознавание речи; бриф, кадры, оба плана, правки и экспорт — бесплатны.

## Что дальше

[ИнструментыВсе инструменты MCP-сервера с параметрами.](https://docs.slicer.media/mcp/tools/)[Промптыdirect\_reel и другие сценарии одной командой.](https://docs.slicer.media/mcp/prompts/)[Данные и приватностьЧто получает ассистент, когда смотрит кадры.](https://docs.slicer.media/mcp/privacy/)[То же в APIБриф, кадры, план и замечания для вашего кода.](https://docs.slicer.media/api/editing/#own-director)
