# Kling Motion Control > AI model for generating video content ## Overview - **Model ID**: `kling-motion-control` - **Category**: video - **Provider**: klingai - **Status**: model_ready - **Screenshot**: `https://assets.modelslab.com/generations/f8506650-29ee-4c93-92d6-f9ad0a023c06.webp` ## API Information This model can be used via our HTTP API. See the API documentation and usage examples below. ### Endpoint - **URL**: `https://modelslab.com/api/v7/video-fusion/motion-control` - **Method**: POST ### Parameters - **`prompt`** (required): Text prompt words, which can include positive and negative descriptions - Type: textarea - **`init_image`** (required): Reference Image. The characters, backgrounds, and other elements in the generated video are based on the reference image The video content must meet the following requirements: Keep the character’s proportions consistent between the image and the reference video. Avoid using a full-body reference video with a half-body image. Ensure the character’s entire body and head are clearly visible and not obstructed. Character Selection is supported for up to 1 character. For best results, choose characters with larger proportions in the frame. Supports uploading images of realistic/stylised characters (including humans, humanoid animals, certain pure animals, and characters with partial humanoid body proportions). - Type: file - **`init_video`** (required): The video content must meet the following requirements: Ensure the character’s entire body and head are clearly visible and not obstructed. Upload a single character motion reference. For motion reference with two or more characters, the motion of the character occupying the largest portion of the frame will be used for generation. Real human actions are recommended, while certain stylised humanoid or humanoid body proportions can be recognized. Avoid cuts and camera movements in the motion reference. Avoid overly fast motions; steady, moderate movements yield the best results. The video file supports. mp4/. mov, with a file size not exceeding 100MB, and only supports side lengths between 340px and 3850px. If the above verification fails, an error code and other information will be returned. The lower limit of video duration should not be less than 3 seconds, and the upper limit of duration is related to the character orientation reference (character_orientation): When the orientation of the character matches that of the character in the video, the video can last up to 30 seconds; When the orientation of the character is consistent with the character in the picture, the video duration can reach up to 10 seconds; - Type: file - **`character_orientation`** (required): Use "image" when the character in your reference image and reference video are facing/posing in the same direction. This keeps the character looking the same way as in your image. Use "video" when you want the character to follow the motion and direction shown in your reference video, even if it differs from the image orientation. This allows for longer videos (up to 30 seconds). - Type: select (options: image, video) - **`model_id`** (optional): - Type: text - **`mode`** (optional): Video generation mode Enum values: std, pro std: Standard Mode, which is cost-effective pro: Professional Mode, generates videos use longer duration but higher quality video output - Type: select (options: std, pro) ## Usage Examples ### cURL ```bash curl --request POST \ --url https://modelslab.com/api/v7/video-fusion/motion-control \ --header "Content-Type: application/json" \ --data '{ "key": "YOUR_API_KEY", "model_id": "kling-motion-control", "prompt": "make this image accurately animate to the video", "init_image": "https://assets.modelslab.com/generations/8d4def68-7edd-449c-b5ce-2ba4a5108f43.jpg", "init_video": "https://assets.modelslab.com/generations/5c570825-d8dc-421c-876d-e0ce3ee6b7bc.mov", "character_orientation": "image", "mode": "std" }' ``` ### Python ```python import requests response = requests.post( "https://modelslab.com/api/v7/video-fusion/motion-control", headers={ "Content-Type": "application/json" }, json={ "key": "YOUR_API_KEY", "model_id": "kling-motion-control", "prompt": "make this image accurately animate to the video", "init_image": "https://assets.modelslab.com/generations/8d4def68-7edd-449c-b5ce-2ba4a5108f43.jpg", "init_video": "https://assets.modelslab.com/generations/5c570825-d8dc-421c-876d-e0ce3ee6b7bc.mov", "character_orientation": "image", "mode": "std" } ) print(response.json()) ``` ### JavaScript ```javascript fetch("https://modelslab.com/api/v7/video-fusion/motion-control", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ "key": "YOUR_API_KEY", "model_id": "kling-motion-control", "prompt": "make this image accurately animate to the video", "init_image": "https://assets.modelslab.com/generations/8d4def68-7edd-449c-b5ce-2ba4a5108f43.jpg", "init_video": "https://assets.modelslab.com/generations/5c570825-d8dc-421c-876d-e0ce3ee6b7bc.mov", "character_orientation": "image", "mode": "std" }) }) .then(response => response.json()) .then(data => console.log(data)); ``` ## Links - [Model Playground](https://modelslab.com/models/kling-motion-control/kling-motion-control) - [API Documentation](https://docs.modelslab.com) - [ModelsLab Platform](https://modelslab.com)