Kling 3 Motion Control
Kuaishou motion transfer model that maps movement from a reference video onto a character in a still image.
| Property | Value |
|---|---|
modelSlug | kling-3-motion-control |
| Kind | Video |
| Maker | Kuaishou |
Copies per request (variations) | 1 to 5 |
| How the cost is counted | per second of output, as long as the clip in motion_video, at a rate that depends on resolution |
| Over MCP | yes, with the generate tool |
Credit amounts are left out because they change. The lowest price is creditCost on GET /v1/models, and POST /v1/jobs answers with the exact creditCost of a request.
input fields
Send the fields below inside the input object. A field you leave out takes its Default. Unknown field names are dropped without an error, so check the spelling if a setting seems to have no effect.
| Field | Type | Required | Default | Rules |
|---|---|---|---|---|
prompt | string | – | – | Up to 2,500 characters |
character_image | string[] (image upload ids) | – | – | Character image. One file at most |
motion_video | string[] (video upload ids) | – | – | Driving video. One file at most |
resolution | string (one of) | – | 720p | 720p, 1080p |
character_orientation | string (one of) | – | video | video (Ikuti video), image (Ikuti gambar) |
Rules by setting
This model runs a different version depending on what you send. The rules below are checked before any credits move; a request that breaks one is refused with 400 and a message naming the field.
Every request
character_image: required; one file at most; at most 10 MB per file; JPG or PNG; sides at least 341 px; width to height ratio 0.4 to 2.5.
character_orientation = image
motion_video: required; one file at most; at most 100 MB per file; each clip 3 to 10 seconds long; sides at least 341 px; width to height ratio 0.4 to 2.5.
Otherwise
motion_video: required; one file at most; at most 100 MB per file; each clip 3 to 30 seconds long; sides at least 341 px; width to height ratio 0.4 to 2.5.
Example request
{
"modelSlug": "kling-3-motion-control",
"input": {
"prompt": "The camera circles slowly around a steaming cup of coffee on a wooden table",
"character_image": [
"<upload-id>"
],
"motion_video": [
"<upload-id>"
]
}
}Fill media fields with the id from POST /v1/uploads, not a URL.

