Переносит движение из референс‑видео на изображение и делает короткий ролик. Цена: 6 ₽/сек (720p) или 9 ₽/сек (1080p), длительность 3–30 сек (округление вверх).
Общая документация Public API · API-ключ можно создать в настройках аккаунта
Kling 2.6 Motion Control нужен для сценариев, где у вас уже есть:
Модель переносит движение из видео на персонажа с изображения и возвращает готовый ролик. Это удобно для анимации персонажей, танцев, коротких рекламных сцен и любых задач, где важно повторить жесты, позы и пластику из исходного видео.
В API у модели два практических режима:
character_orientation = "video" - сильнее ориентируется на позы и динамику из референс-видео;character_orientation = "image" - сильнее держится за исходное изображение, но доступен только для референс-видео длиной до 10 секунд.Каждый вызов создаёт асинхронную операцию. Сразу после запроса API возвращает id, стартовый статус и стоимость запуска, а готовый результат нужно получать отдельной проверкой статуса.
POST /api/v1/operationsAuthorization: Bearer brth_...id, стартовый статус и стоимость.Практически у Kling 2.6 Motion Control есть два сценария вызова:
character_orientation = "video";character_orientation = "image".Базовая форма запроса:
{
"tool": "kling-2-6-motion-control",
"input": {
"...": "..."
}
}
tool - slug нейросети. Для этой модели всегда используйте "kling-2-6-motion-control".input - параметры конкретного запуска.input_urls и video_urls передаются массивами URL, но в каждом поле должен быть ровно один файл.| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
prompt | string | Нет | Дополнительное текстовое описание сцены, внешнего вида и атмосферы. Полезно, когда нужно уточнить фон, стиль или настроение ролика. Максимум 2500 символов. |
input_urls | string[] (url) | Да | Массив с одним внешним URL исходного изображения, которое нужно анимировать. Разрешены только http/https ссылки. Максимум 1 файл. Допустимые расширения для Public API: .jpg, .jpeg, .png. |
video_urls | string[] (url) | Да | Массив с одним внешним URL референс-видео, из которого берётся движение. Разрешены только http/https ссылки. Максимум 1 файл. Допустимые расширения: .mp4, .mov. |
character_orientation | enum | Да | Режим переноса движения. Варианты: video - сильнее повторяет позы и динамику из видео; image - сильнее сохраняет исходный ракурс и внешний вид изображения, но доступен только для референс-видео длиной до 10 секунд. |
mode | enum | Да | Разрешение результата. Варианты: 720p, 1080p. Влияет на итоговую цену. |
curl -X POST https://bratuha.ru/api/v1/operations \
-H "Authorization: Bearer brth_ваш_ключ" \
-H "Content-Type: application/json" \
-d '{
"tool": "kling-2-6-motion-control",
"input": {
"prompt": "Персонаж повторяет движения из танцевального референса, мягкий студийный свет, аккуратный фон без лишних деталей",
"input_urls": [
"https://cdn.example.com/source-character-1.jpg"
],
"video_urls": [
"https://cdn.example.com/source-motion-1.mp4"
],
"character_orientation": "video",
"mode": "720p"
}
}'
const response = await fetch('https://bratuha.ru/api/v1/operations', {
method: 'POST',
headers: {
Authorization: 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
body: JSON.stringify({
tool: 'kling-2-6-motion-control',
input: {
prompt:
'Персонаж повторяет движения из танцевального референса, мягкий студийный свет, аккуратный фон без лишних деталей',
input_urls: ['https://cdn.example.com/source-character-1.jpg'],
video_urls: ['https://cdn.example.com/source-motion-1.mp4'],
character_orientation: 'video',
mode: '720p',
},
}),
})
const data = await response.json()
console.log(data)
import requests
response = requests.post(
"https://bratuha.ru/api/v1/operations",
headers={
"Authorization": "Bearer brth_ваш_ключ",
"Content-Type": "application/json",
},
json={
"tool": "kling-2-6-motion-control",
"input": {
"prompt": "Персонаж повторяет движения из танцевального референса, мягкий студийный свет, аккуратный фон без лишних деталей",
"input_urls": ["https://cdn.example.com/source-character-1.jpg"],
"video_urls": ["https://cdn.example.com/source-motion-1.mp4"],
"character_orientation": "video",
"mode": "720p",
},
},
timeout=30,
)
print(response.status_code)
print(response.json())
curl -X POST https://bratuha.ru/api/v1/operations \
-H "Authorization: Bearer brth_ваш_ключ" \
-H "Content-Type: application/json" \
-d '{
"tool": "kling-2-6-motion-control",
"input": {
"prompt": "Персонаж повторяет жест руками из короткого референса, сохраняет исходный ракурс и внешний вид, чистый светлый фон",
"input_urls": [
"https://cdn.example.com/source-character-2.png"
],
"video_urls": [
"https://cdn.example.com/source-motion-2.mov"
],
"character_orientation": "image",
"mode": "1080p"
}
}'
const response = await fetch('https://bratuha.ru/api/v1/operations', {
method: 'POST',
headers: {
Authorization: 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
body: JSON.stringify({
tool: 'kling-2-6-motion-control',
input: {
prompt:
'Персонаж повторяет жест руками из короткого референса, сохраняет исходный ракурс и внешний вид, чистый светлый фон',
input_urls: ['https://cdn.example.com/source-character-2.png'],
video_urls: ['https://cdn.example.com/source-motion-2.mov'],
character_orientation: 'image',
mode: '1080p',
},
}),
})
const data = await response.json()
console.log(data)
import requests
response = requests.post(
"https://bratuha.ru/api/v1/operations",
headers={
"Authorization": "Bearer brth_ваш_ключ",
"Content-Type": "application/json",
},
json={
"tool": "kling-2-6-motion-control",
"input": {
"prompt": "Персонаж повторяет жест руками из короткого референса, сохраняет исходный ракурс и внешний вид, чистый светлый фон",
"input_urls": ["https://cdn.example.com/source-character-2.png"],
"video_urls": ["https://cdn.example.com/source-motion-2.mov"],
"character_orientation": "image",
"mode": "1080p",
},
},
timeout=30,
)
print(response.status_code)
print(response.json())
{
"id": "op_uuid-123",
"status": "queued",
"tool": "kling-2-6-motion-control",
"cost": 48,
"balance_after": 495,
"created_at": "2026-03-27T12:00:00Z"
}
{
"id": "op_uuid-123",
"status": "completed",
"tool": "kling-2-6-motion-control",
"cost": 48,
"created_at": "2026-03-27T12:00:00Z",
"completed_at": "2026-03-27T12:05:37Z",
"result": {
"type": "video",
"urls": [
"https://storage.bratuha.ru/results/kling-2-6-motion-control/result.mp4"
]
},
"error_message": null
}
После создания операции сохраните id и используйте его для отдельной проверки статуса:
GET /api/v1/operations/{id}id возвращается сразу после POST /api/v1/operations.curl -H "Authorization: Bearer brth_ваш_ключ" \
https://bratuha.ru/api/v1/operations/op_uuid-123
const response = await fetch(
'https://bratuha.ru/api/v1/operations/op_uuid-123',
{
headers: {
Authorization: 'Bearer brth_ваш_ключ',
},
},
)
const data = await response.json()
console.log(data)
После успешного завершения операция возвращает result в таком формате:
{
"type": "video",
"urls": [
"https://storage.bratuha.ru/results/kling-2-6-motion-control/result.mp4"
]
}
Что важно знать:
type всегда "video";urls - массив ссылок на готовые mp4-файлы;Базовая ставка начинается от 18 ₽ за минимальный запуск.
Итоговая цена зависит от двух вещей:
mode;video_urls.Длительность определяется сервером по metadata видео до расчёта цены и до создания операции. Секунды округляются вверх. Минимальная длина референс-видео - 3 секунды, максимальная - 30 секунд.
Текущие ставки:
| Разрешение | Ставка |
|---|---|
720p | 6 ₽/сек |
1080p | 9 ₽/сек |
Примеры расчёта:
720p и видео на 8 секунд - 48 ₽;720p и видео на 10.2 секунды - 66 ₽, потому что длительность округляется вверх до 11;1080p и видео на 8 секунд - 72 ₽.Практически это означает:
1080p дороже 720p;character_orientation = "image" доступен только для референс-видео длиной до 10 секунд.POST /api/v1/operations не идемпотентен: каждый повторный запрос создаёт новую операцию.queued, затем отдельно проверяете статус по id.input_urls и video_urls подходят только внешние http/https URL. localhost, private IP и внутренние адреса не принимаются.input_urls и video_urls передаются массивами, в каждом поле должен быть ровно один URL.video_urls определяется сервером по metadata видео до расчёта цены и до создания операции. Если сервер не может надёжно прочитать длительность референс-видео, запрос отклоняется с ошибкой, а операция не создаётся.input_urls используйте только .jpg, .jpeg, .png. Форматы UI-загрузки вроде webp, heic, heif не нужно переносить в Public API по URL.video_urls используйте только .mp4 и .mov.character_orientation = "video".character_orientation = "image", но держите референс-видео не длиннее 10 секунд.GET /api/v1/operations/{id} слишком часто. Практически безопасно проверять статус примерно раз в секунду.