Kling AI / Kling 2.6 / Motion control
kling_ai/kling-2.6/motion_control
Async
Transfer motion from a reference video onto a character image. The character keeps its appearance while performing the movement, gestures and expressions from the reference video.
Parameters
| Name | Type | Required | Description | Allowed values | Bundle dim. |
|---|---|---|---|---|---|
| mode | string | yes | Quality tier — standard (720p) or pro (1080p). | standard, pro | — |
| prompt | string | no | Optional text guidance for background / timing. | — | — |
| input_image | string | yes | Character image to animate — HTTPS URL or base64 (no data: prefix). .jpg/.jpeg/.png, ≤10MB, aspect ratio between 1:2.5 and 2.5:1. | — | — |
| callback_url | string | no | Webhook URL invoked when async task completes. | — | — |
| reference_video | string | yes | Reference motion video — HTTPS URL. .mp4/.mov, ≤100MB. 3–10s when character_orientation=image, 3–30s when character_orientation=video. | — | — |
| duration_seconds | integer | yes | Output duration in seconds — must equal the reference video length. Pricing is PER_SECOND, so this is the billing multiplier, NOT part of the bundle key. | — | — |
| keep_original_sound | boolean | no | Keep the audio track from the reference video. | — | — |
| character_orientation | string | no | image: portrait + camera movement, max 10s. video: full-body performance, up to 30s. | image, video | — |
Example request
{
"provider": "kling_ai",
"model": "kling-2.6",
"method": "motion_control",
"params": {
"mode": "pro",
"prompt": "Studio lighting, plain background",
"input_image": "https://example.com/character.jpg",
"reference_video": "https://example.com/dance-reference.mp4",
"duration_seconds": 5,
"character_orientation": "video"
}
}Example response
{
"status": "queued",
"task_id": "tsk_01H..."
}