API Kling Motion Control: заставьте персонажа повторять видео
Kling Motion Control переносит персонажа с одной картинки в движения реального видео. В этом руководстве — что отправлять, как устроена посекундная тарификация и как вызывать Kling 3.0 и 2.6 Motion Control через один API.
Что делает motion control
Kling Motion Control принимает две вещи: картинку персонажа и видео двигающегося человека. Он создаёт новый клип, в котором персонаж с картинки повторяет движения из видео — с теми же таймингом, жестами и языком тела. Так делают танцевальные тренды, ролики с маскотами и продуктовых «спикеров», которые двигаются как настоящий актёр, без съёмки самого персонажа.
На Revana доступны две версии:
| Модель | Id модели | Разрешение | Цена за секунду | Маршруты |
|---|---|---|---|---|
| Kling 3.0 Motion Control | kling-3.0-motion-control | 720p, 1080p | $0.13 в 720p, $0.17 в 1080p | два маршрута |
| Kling 2.6 Motion Control | kling-2.6-motion-control | 720p, 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 секунд.
| Модель | Разрешение | Клип 5 с | Клип 10 с | Клип 15 с |
|---|---|---|---|---|
| Kling 3.0 Motion Control | 720p | $0.65 | $1.30 | $1.95 |
| Kling 3.0 Motion Control | 1080p | $0.85 | $1.70 | $2.55 |
| Kling 2.6 Motion Control | 720p | $0.35 | $0.70 | $1.05 |
| Kling 2.6 Motion Control | 1080p | $0.60 | $1.20 | $1.80 |
Обрежьте клип с движением до нужной части, прежде чем отправлять: каждая лишняя секунда тарифицируется. Задайте max_cost_usd равным максимальной сумме, которую вы готовы заплатить за такую длительность клипа, и задача, которая обошлась бы дороже, будет отклонена, а не запущена. Неудавшаяся задача ничего не стоит, а кредиты предоплачиваются от $10 без подписки; см. страницу цен.
Создайте клип motion control
Отправьте POST /v1/generations с обеими ссылками, затем опрашивайте, пока у задачи не появится succeeded или failed. С 10-секундным клипом движения в 720p это стоит $1.30.
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"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 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, списание только за доставленные клипы.