Lovely RouterДокументация
Получить ключ
Models API

Видео

Замена персонажа через Videos API — отправьте клип и изображение нового персонажа и получите тот же кадр с этим персонажем, сохранив движение, композицию и голос, — а также видеокадры по промпту с отмеченными персонажами и сценами. Запросы, опрос статуса, цены, регионы и ограничения.

Lovely Router создаёт видео через Videos API, устроенный по образцу OpenAI: POST /v1/videos запускает задание и возвращает объект видео, вы опрашиваете его, пока он не станет completed, а затем скачиваете mp4 из /v1/videos/{id}/content. Попробуйте без кода в песочнице: загрузите клип или найдите его в X, загрузите изображение или попросите любую модель изображений нарисовать его, а выбранная вами чат-модель улучшит промпты персонажа и сцены — каждый шаг списывается с баланса так же, как соответствующий вызов API.

О видео, которое продолжается, пока вы смотрите, см. раздел Видео в реальном времени; о том, как превратить песню в клип, — раздел Музыкальные клипы.

Модели#

МодельЦенаЧто делает
minimax-h3-character-swap$0.10 за секунду полученного видеоПереснимает клип с новым персонажем: лицо, волосы, тело и одежда берутся из изображения, а движение, композиция, камера и звуковая дорожка — из клипа. До 10 с на клип.
minimax-h3-aftermidnight$0.12 за секунду полученного видеоТа же замена персонажа с NSFW-LoRA (AfterMidnight) для сцен для взрослых: более богатое и интимное окружение и тела без цензуры. До 10 с на клип.
minimax-h3-video$0.13 за отрендеренную секунду + $0.06 за секунду за каждое изображение после первогоСоздаёт видеокадры по промпту с отмеченными персонажами и сценами, со звуком и диалогами; бесплатно склеивает кадры в одно видео. 5–15 с на кадр.

Все модели работают на MiniMax H3 и запускаются на наших собственных GPU в группе каналов creative-hosted. На них распространяются условия MiniMax H3: каждый запрос передаёт consent: true, принимая эти условия — в том числе запрет на использование в ЕС, Великобритании, Южной Корее и США — и ответственность за их соблюдение.

Замена персонажа#

Отправьте исходный клип в video, а изображение нового персонажа — в input_reference, файлами (multipart) или как URL (http(s) или data:, в JSON или текстовыми полями multipart).

curl https://lovelyrouter.com/v1/videos \
  -H "Authorization: Bearer $LOVELY_API_KEY" \
  -F model=minimax-h3-character-swap \
  -F video=@clip.mp4 \
  -F input_reference=@character.png \
  -F prompt="In front of a weathered concrete wall, soft window light" \
  -F consent=true

Рендер 5-секундного клипа занимает около минуты, 10-секундного — две-три минуты (кадры большего размера обрабатываются дольше). Если модель какое-то время не использовалась, добавьте примерно минуту на пробуждение GPU. Задания продолжают выполняться, даже если вы отключитесь.

Поля запроса#

Параметры тела запроса

modelstringОбязательно

minimax-h3-character-swap.

videofileОбязательно

Исходный клип: MP4, MOV или WebM, до 80 МБ, файлом или как URL http(s) / data:. Его движение, композиция, камера и звуковая дорожка сохраняются; используется до 10 секунд начиная с start.

input_referencefile

Изображение нового персонажа: PNG, JPEG или WebP, до 20 МБ, файлом или как URL. Лучше всего подходит один человек с видимым лицом, равномерно освещённый, на однотонном фоне.

character_idstring

Сохранённый персонаж вашей учётной записи вместо input_reference: изображением служит его лист разворота. Передайте ровно одно из двух полей.

consentbooleanОбязательно

true подтверждает, что вы принимаете условия MiniMax H3 и ответственность за их соблюдение (включая территориальное ограничение), а также что всем, кто изображён на видео и картинке, исполнилось 18 лет и они согласились на такое использование своего облика.

promptstring

Сцена: место, освещение, настроение (до 4000 символов). Из клипа переносится только движение, поэтому описанная сцена сохраняет свой вид; без описания модель выбирает простой фон.

secondsnumber

Сколько секунд клипа использовать максимум, от 3 до 10. По умолчанию — весь клип, но не больше 10.

startnumber

С какого места клипа начинать, в секундах (0–3600; задаётся инструментом обрезки в песочнице). По умолчанию: 0.

backgroundstring

new (по умолчанию): из клипа переносится только движение, а место описывает prompt. keep: фон, объекты и освещение клипа сохраняются, заменяется только человек; prompt не нужен. Цена та же.

seedinteger

Повторите рендер с тем же сидом (0–2147483647). По умолчанию — случайный.

?wait=0–300 в POST-запросе удерживает запрос до готовности видео (тогда ответ — 200), иначе возвращается 202 с объектом в очереди.

Сохранённый персонаж#

Нового персонажа можно передавать в каждом вызове или брать из ваших сохранённых персонажей:

  • Разово: input_reference — изображение файлом или как URL (см. выше).
  • Сохранённый: character_id — персонаж, сохранённый через POST /v1/characters; изображением служит его лист разворота. Он указан в поле character_id объекта видео.
cURL
curl https://lovelyrouter.com/v1/videos \
  -H "Authorization: Bearer $LOVELY_API_KEY" \
  -F model=minimax-h3-character-swap \
  -F video=@clip.mp4 \
  -F character_id=chr_3b9e1f0c7a2d4e58b6c1a9f2 \
  -F consent=true

Если передать оба поля или чужой character_id, запрос будет отклонён (400 / 404).

Целые видео#

POST /v1/videos/replacements принимает целое видео — до 3 минут, с монтажными склейками и несколькими людьми. Сначала в нём находятся кадры и все люди ($0.01 за секунду); затем вы сопоставляете каждому человеку персонажа (или оставляете его как есть) и выбираете замену всего человека или только головы (лицо, волосы и всё, что на голове). Каждый кадр с заменённым человеком рендерится заново, и кадры склеиваются обратно поверх исходного звука; оплата — за секунду замены ($0.20 за секунду для SFW-модели, рендер на FastH3 Omni; AfterMidnight — $0.12). Весь процесс описан на странице эндпоинтов замены в видео. Песочница использует его для любого клипа, короткого или длинного.

Видеокадры#

minimax-h3-video создаёт видео с нуля: POST /v1/videos/shots принимает промпт, в котором отмечены ваши сохранённые персонажи и сцены (@Mia_Wong, @[Night Café]), и каждый отмеченный элемент становится референсным изображением — до 9 на кадр. Слова в кавычках произносит персонаж, отмеченный последним перед ними. Рендерите кадры истории по одному, а затем склейте их через POST /v1/videos/joins (бесплатно). Все поля, цены и API проектов, который песочница использует для раскадровок, описаны на странице эндпоинтов видеокадров. Персонаж с голосом говорит им (до 3 голосов на кадр). Местоимения вне диалогов перед рендером заменяются нужной отметкой (проверка промпта).

cURL
curl https://lovelyrouter.com/v1/videos/shots \
  -H "Authorization: Bearer $LOVELY_API_KEY" \
  -H "content-type: application/json" \
  -d '{"model": "minimax-h3-video", "consent": true, "seconds": 5,
       "prompt": "In @[Night Café], @Leo looks up as @Mia_Wong sits down: \"You came.\"",
       "characters": ["chr_3b9e1f0c7a2d4e58b6c1a9f2", "chr_1e4b7d0a9c3f2e5b8a6d0c1f"],
       "scenes": ["scn_5b2d9e0c1a7f4b3e8d6c2a1f"]}'

Объект видео#

Response
{
  "id": "video_4f9d0c2b8e1a47d6a3c5b7e2",
  "object": "video",
  "model": "minimax-h3-character-swap",
  "status": "completed",
  "progress": 100,
  "created_at": 1792915200,
  "completed_at": 1792915288,
  "expires_at": 1793520088,
  "seconds": "5.17",
  "size": "768x1376",
  "prompt": "In front of a weathered concrete wall, soft window light",
  "character_id": null,
  "error": null,
  "url": "https://lovelyrouter.com/v1/videos/video_4f9d0c2b8e1a47d6a3c5b7e2/content",
  "charge_usd": 0.3875,
  "powered_by": "MiniMax H3"
}

status принимает значения queued, in_progress, completed, failed или cancelled. У неудавшегося видео есть error: {code, message}, и оно ничего не стоит. size повторяет ориентацию клипа с короткой стороной 768 пикселей; частота кадров — 24 fps.

Эндпоинты#

ЗапросЧто делает
POST /v1/videosЗапускает видео.
GET /v1/videos/{id}Объект видео. ?wait=1–300 удерживает запрос, пока статус не сменится с queued/in_progress или не истечёт время.
GET /v1/videos/{id}/contentФайл mp4 (поддерживаются запросы Range, так что плееры могут перематывать). Хранится 7 дней.
GET /v1/videosВаши недавние видео, начиная с новых: ?limit=1–100, ?after=<id> для следующей страницы.
DELETE /v1/videos/{id}Отменяет видео в очереди (ничего не списывается) или удаляет файл готового видео.

Цены#

Вы платите за каждую секунду полученного видео, от 3 до 10 секунд на клип (более короткий результат оплачивается как 3 секунды): клип длиной 5,2 секунды стоит $0.52. При запуске видео на балансе резервируется его максимальная стоимость ($1.00 или seconds × цена); разница возвращается после завершения. Неудавшиеся и отменённые видео ничего не стоят.

Как получить хороший результат#

  • Клип: один человек, хорошо видимый, движется в естественном темпе. Быстрые действия и сильные перекрытия даются сложнее. Речь остаётся синхронной, потому что звуковая дорожка сохраняется и управляет движением губ.
  • Изображение: человек один, лицо видно, освещение равномерное, фон однотонный. Освещение и фон изображения не копируются, но яркий цветной свет может просочиться. Лист персонажа — один и тот же человек анфас, в три четверти, в профиль и со спины на одном изображении — лучше всего работает, когда камера движется вокруг него; в кадре всё равно будет один человек.
  • Сцена: опишите место в prompt, чтобы оно оставалось близким к оригиналу, например «обветренная бетонная стена, мягкий свет из окна».
  • Форма причёски берётся из клипа (коса в клипе останется косой); цвет волос, лицо и одежда — из изображения.

Ошибки#

Статусcode / typeПричина
400consent_requiredconsent не равно true.
400invalid_request_errorФайл отсутствует, не читается или слишком велик, seconds вне допустимого диапазона, переданы одновременно input_reference и character_id.
402insufficient_quotaБаланса не хватает на резерв.
404not_found_errorНеизвестная модель или видео, модель, которая не создаёт видео, или character_id, которого нет среди ваших сохранённых персонажей.
429rate_limit_exceededВ вашей учётной записи уже пять видео в очереди или в рендере, либо достигнут лимит частоты запросов ключа.

Сообщить о злоупотреблении можно на странице /report.