Руководство по модели

API Kling Motion Control: заставьте персонажа повторять видео

Kling Motion Control переносит персонажа с одной картинки в движения реального видео. В этом руководстве — что отправлять, как устроена посекундная тарификация и как вызывать Kling 3.0 и 2.6 Motion Control через один API.

Что делает motion control

Kling Motion Control принимает две вещи: картинку персонажа и видео двигающегося человека. Он создаёт новый клип, в котором персонаж с картинки повторяет движения из видео — с теми же таймингом, жестами и языком тела. Так делают танцевальные тренды, ролики с маскотами и продуктовых «спикеров», которые двигаются как настоящий актёр, без съёмки самого персонажа.

На Revana доступны две версии:

Сравнение версий Kling Motion Control
МодельId моделиРазрешениеЦена за секундуМаршруты
Kling 3.0 Motion Controlkling-3.0-motion-control720p, 1080p$0.13 в 720p, $0.17 в 1080pдва маршрута
Kling 2.6 Motion Controlkling-2.6-motion-control720p, 1080p$0.07 в 720p, $0.12 в 1080pдва маршрута

Kling 3.0 — более новая модель. Kling 2.6 стоит примерно вдвое меньше в 720p, поэтому сначала стоит проверить его на вашем материале.

Что отправлять

  • image_url: персонаж, лучше в полный рост, лицом к камере, на однотонном фоне. Именно он появится в результате.
  • video_url: клип с движением. Лучше всего подходит один хорошо видимый человек и неподвижная камера. Результат повторяет его длительность.
  • resolution: 720p или 1080p. Отправляйте каждый раз.
  • prompt: необязательно, чтобы описать обстановку или детали, которых нет на картинке.

Оба файла должны быть ссылками, которые API может загрузить. Чтобы отправить файл с компьютера, сначала загрузите его через POST /v1/uploads (клипы до 50 МБ) и используйте возвращённую ссылку; она действует 14 дней.

Как тарифицируется motion control (октябрь 2026)

Цена указана за секунду видео, а длительность определяется вашим клипом с движением, с округлением вверх до следующей целой секунды. Танцевальный клип в 7,4 секунды тарифицируется как 8 секунд.

Стоимость Kling Motion Control по длительности клипа
МодельРазрешениеКлип 5 сКлип 10 сКлип 15 с
Kling 3.0 Motion Control720p$0.65$1.30$1.95
Kling 3.0 Motion Control1080p$0.85$1.70$2.55
Kling 2.6 Motion Control720p$0.35$0.70$1.05
Kling 2.6 Motion Control1080p$0.60$1.20$1.80

Обрежьте клип с движением до нужной части, прежде чем отправлять: каждая лишняя секунда тарифицируется. Задайте max_cost_usd равным максимальной сумме, которую вы готовы заплатить за такую длительность клипа, и задача, которая обошлась бы дороже, будет отклонена, а не запущена. Неудавшаяся задача ничего не стоит, а кредиты предоплачиваются от $10 без подписки; см. страницу цен.

Создайте клип motion control

Отправьте POST /v1/generations с обеими ссылками, затем опрашивайте, пока у задачи не появится succeeded или failed. С 10-секундным клипом движения в 720p это стоит $1.30.

cURL
export REVANA_API_KEY="sr_live_..."

# 1. Submit the job (returns 202 with the generation id)
curl https://api.revana.si/v1/generations \
  -H "Authorization: Bearer $REVANA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "kling-3.0-motion-control",
    "input": {
      "prompt": "The mascot dances on a sunny rooftop, city skyline behind.",
      "image_url": "https://example.com/mascot-full-body.png",
      "video_url": "https://example.com/dance-10s.mp4",
      "resolution": "720p"
    },
    "max_cost_usd": 1.6
  }'

# 2. Poll with the id from step 1 until status is "succeeded" or "failed"
curl https://api.revana.si/v1/generations/gen_01JC2V8K5T \
  -H "Authorization: Bearer $REVANA_API_KEY"
Python
import os
import time

import requests

API = "https://api.revana.si/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['REVANA_API_KEY']}"}

resp = requests.post(f"{API}/generations", headers=HEADERS, json={
    "model": "kling-3.0-motion-control",
    "input": {
        "prompt": "The mascot dances on a sunny rooftop, city skyline behind.",
        "image_url": "https://example.com/mascot-full-body.png",
        "video_url": "https://example.com/dance-10s.mp4",
        "resolution": "720p",
    },
    "max_cost_usd": 1.6,
})
resp.raise_for_status()
job = resp.json()

while job["status"] in ("queued", "running"):
    time.sleep(5)
    job = requests.get(f"{API}/generations/{job['id']}", headers=HEADERS).json()

if job["status"] == "succeeded":
    print(job["output"]["urls"], job["cost_usd"])
else:
    print("Failed:", job["error"])
Node.js
// Node 18 or later. Save as generate.mjs and run: node generate.mjs
const API = "https://api.revana.si/v1";
const headers = {
  Authorization: `Bearer ${process.env.REVANA_API_KEY}`,
  "Content-Type": "application/json",
};

const res = await fetch(`${API}/generations`, {
  method: "POST",
  headers,
  body: JSON.stringify({
    model: "kling-3.0-motion-control",
    input: {
      prompt: "The mascot dances on a sunny rooftop, city skyline behind.",
      image_url: "https://example.com/mascot-full-body.png",
      video_url: "https://example.com/dance-10s.mp4",
      resolution: "720p",
    },
    max_cost_usd: 1.6,
  }),
});
if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
let job = await res.json();

while (job.status === "queued" || job.status === "running") {
  await new Promise((r) => setTimeout(r, 5000));
  job = await (await fetch(`${API}/generations/${job.id}`, { headers })).json();
}

if (job.status === "succeeded") console.log(job.output.urls, job.cost_usd);
else console.error("Failed:", job.error);
Ответ
{
  "id": "gen_01JC2V8K5T",
  "model": "kling-3.0-motion-control",
  "status": "succeeded",
  "output": {
    "urls": [
      "https://cdn.revana.si/g/gen_01JC2V8K5T/0.mp4"
    ],
    "duration_s": 10
  },
  "cost_usd": 1.3,
  "attempts": 1,
  "error": null,
  "created_at": "2026-10-28T10:14:02Z",
  "completed_at": "2026-10-28T10:15:31Z"
}

Как получить чистый результат

  • Совпадайте по кадрированию. Персонаж в полный рост с танцевальным клипом в полный рост работает намного лучше, чем портрет по плечи с клипом в полный рост.
  • Один двигающийся человек. Используйте клип, где двигается один человек. Толпы и монтажные склейки мешают понять, какое движение копировать.
  • Неподвижная камера. Зафиксированная или медленно движущаяся камера сохраняет фон стабильным.
  • Делайте черновики в 720p. Проверьте перенос движения на Kling 2.6 в 720p, затем отрендерите удачный вариант в 1080p на Kling 3.0.

О моделях Kling для текста в видео и изображения в видео см. руководство по API Kling 3.0. Обе модели motion control есть на странице моделей, все поля описаны в документации. Получите API-ключ, чтобы попробовать.

Частые вопросы

Сколько стоит Kling Motion Control?

В октябре 2026 года Kling 3.0 Motion Control стоит $0.13 за секунду в 720p и $0.17 в 1080p. Kling 2.6 Motion Control стоит $0.07 и $0.12. Длительность определяется вашим клипом с движением.

Что нужно для Kling Motion Control?

Картинка персонажа в image_url, клип с движением в video_url и разрешение 720p или 1080p. Промпт необязателен.

Какой длины видео Kling Motion Control?

Такой же, как присланный вами клип с движением. Тарификация идёт за секунду клипа с округлением вверх до целой секунды.

Чем отличается Kling 3.0 от Kling 2.6 Motion Control?

Kling 3.0 — более новая модель. Kling 2.6 стоит меньше за секунду. Обе принимают одни и те же входные данные и предлагают 720p и 1080p.

Можно ли загрузить собственное видео с движением?

Да. Загрузите его через POST /v1/uploads (видео до 50 МБ) и передайте полученную ссылку в video_url.

Попробуйте Kling Motion Control по одному ключу

Один API-ключ для обеих моделей motion control и всех остальных моделей видео и изображений. Предоплаченные кредиты от $10, списание только за доставленные клипы.