For the complete documentation index, see llms.txt. This page is also available as Markdown.

V3 Motion control

This documentation is valid for the following list of our models:

  • klingai/video-v3-motion-control

An advanced AI video generation model developed by Kuaishou Technology that animates a character from a reference image using the motion captured from a reference video. Kling v3 Motion Control transfers movements from a source video onto a character provided in an image, enabling high-fidelity motion replication with support for Standard and Professional quality modes.

Setup your API Key

If you don't have an API key for the AI/ML API yet, feel free to use our Quickstart guide.

How to Make a Call

Step-by-Step Instructions

Generating a video using this model involves sequentially calling two endpoints:

  • The first one is for creating and sending a video generation task to the server (returns a generation ID).

  • The second one is for requesting the generated video from the server using the generation ID received from the first endpoint.

Below, you can find both corresponding API schemas.

API Schemas

Create a video generation task and send it to the server

Both image_url and video_url are required. The character from the image will be animated using the motion from the reference video.

Retrieve the generated video from the server

After sending a request for video generation, this task is added to the queue. This endpoint lets you check the status of a video generation task using its id, obtained from the endpoint described above. If the video generation task status is completed, the response will include the final result β€” with the generated video URL and additional metadata.

post
Body
modelstring Β· enumRequiredPossible values:
promptstringOptional

Optional instructions that define the background elements, including their appearance, timing in the frame, and behavior, and can also subtly adjust the character's animation.

image_urlstring Β· uriRequired

A direct link to an online image or a Base64-encoded local image that serves as the character reference for animation. The image must contain exactly one clearly visible character, who will be animated using the motion from the reference video provided in the video_url parameter. For optimal results, be sure the character's proportions in the image match those in the video.

video_urlstring Β· uriRequired

A HTTPS URL pointing to a video or a data URI containing a video. The character's movements from this video will be applied to the character from the image provided in the image_url parameter. For best results, use a video with a single clearly visible character. If the video contains two or more characters, the motion of the character occupying the largest portion of the frame will be used for generation.

character_orientationstring Β· enumOptional

Generate the orientation of the character in the video, which can be selected to match the image or the video:

  • image: has the same orientation as the person in the picture; At this time, the reference video duration should not exceed 10 seconds;
  • video: consistent with the orientation of the characters in the video; At this time, the reference video duration should not exceed 30 seconds;
Default: videoPossible values:
keep_audiobooleanOptional

Whether to keep the original audio from the video.

Default: true
modestring Β· enumOptional

Video generation mode:

  • std: Standard Mode β€” basic, cost-effective.
  • pro: Professional Mode β€” higher quality, higher cost.
Default: stdPossible values:
Responses
200Success
application/json
idstringRequired

The ID of the generated video.

Example: 60ac7c34-3224-4b14-8e7d-0aa0db708325
statusstring Β· enumRequired

The current status of the generation task.

Example: completedPossible values:
post/v2/video/generations
200Success

Full Example: Generating and Retrieving the Video From the Server

The example below animates a character from a reference image using the motions captured in a reference video. The code creates a video generation task, then automatically polls the server every 15 seconds until it receives the video URL.

Response

Last updated

Was this helpful?