# Kling | v3 | Standard | Motion Control Transfers motion from a reference video onto any character image, using a cost-efficient mode optimized for portraits and simple animated movements. ## API Information - **Model Slug:** kling-v3-standard-motion-control - **Branded URL:** https://www.eachlabs.ai/kling/kling-v3/kling-v3-standard-motion-control - **Provider:** Kling - **Category:** Image to Video - **Output Type:** video - **Status:** active - **Version:** 0.0.1 - **Base Cost:** $0.126 per second of generated video. - **Estimated Processing Time:** 300 seconds - **Last Updated:** 2026-06-08 - **Interactive Demo:** https://www.eachlabs.ai/ai-models/kling-v3-standard-motion-control ## Pricing - **Charge Type:** dynamic - **Pricing Details:** $0.126 per second of generated video. ### Pricing Rules | Condition | Pricing | | --- | --- | | Rule 1 | $0.126 per second of generated video. | ## Input Schema | Parameter | Type | Required | Default | Constraints | Description | |-----------|------|----------|---------|-------------|-------------| | prompt | string | No | - | - | - | | image_url | string | Yes | - | - | Reference image URL. The characters, backgrounds, and other elements in the generated video are based on this reference image. Characters should have clear body proportions, avoid occlusion, and occupy more than 5% of the image area. | | video_url | string | Yes | - | - | Reference video URL. The character actions in the generated video will be consistent with this reference video. Should contain a realistic style character with entire body or upper body visible, including head, without obstruction. Duration limit depends on character_orientation: 10s max for 'image', 30s max for 'video'. | | keep_original_sound | boolean | No | true | - | Whether to keep the original sound from the reference video. | | character_orientation | string | Yes | video | image,video | Controls whether the output character's orientation matches the reference image or video. 'video': orientation matches reference video - better for complex motions (max 30s). 'image': orientation matches reference image - better for following camera movements (max 10s). | | elements | array | No | - | 0–1 | Optional element for facial consistency binding. Upload a facial element to enhance identity preservation in the generated video. Only 1 element is supported. Reference in prompt as @Element1. Element binding is only supported when character_orientation is 'video'. | ## Example Request ```bash curl -X POST https://api.eachlabs.ai/v1/prediction/ \ -H "X-API-Key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "kling-v3-standard-motion-control", "input": { "character_orientation": "video", "video_url": "https://storage.googleapis.com/magicpoint/inputs/kling-v3-standard-motion-control-input-video.mp4", "image_url": "https://storage.googleapis.com/magicpoint/inputs/kling-v3-standard-motion-control-input-image.png" } }' ``` ## Output Schema Response returned by `GET /v1/prediction/{id}` when the job completes: ```json { "status": "success", "predictionID": "string", "output": "string (URL of generated video)", "metrics": { "predict_time": "number (seconds)" } } ``` ## Polling ```bash curl https://api.eachlabs.ai/v1/prediction/{PREDICTION_ID} \ -H "X-API-Key: YOUR_API_KEY" ``` | Status | Meaning | |--------|---------| | `processing` | Still running — poll again | | `success` | Done — read `output` | | `error` | Failed — read `message` / `details` | ## Webhook (alternative to polling) Pass `"webhook_url": "https://your.host/path"` in the create request. Eachlabs POSTs this payload when the job ends: ```json { "exec_id": "prediction-uuid", "status": "succeeded", "output": "https://...", "error": "" } ``` `status` is `"succeeded"` or `"failed"`. `exec_id` equals the `predictionID` from create. Return 2xx within 30 seconds. ## Errors Error body: `{ "status": "error", "message": "...", "details": "..." }` | Code | Meaning | |------|---------| | `400` | Invalid input | | `401` | Missing / invalid `X-API-Key` | | `404` | Unknown model or prediction id | | `429` | Rate limit — 100 creates / min, 10 concurrent per key | | `5xx` | Retry with backoff | ## Overview The **Kling | v3 | Standard | Motion Control** model from Kling specializes in image-to-video generation, transforming static images into dynamic videos with precise motion control via tools like Motion Brush and Start/End Frame Interpolation. This **Kling image-to-video** solution excels in maintaining object permanence and realistic physics, solving the challenge of creating fluid, director-like animations from single images without melting artifacts or floaty movements. Part of the Kling v3 family hosted on each::labs (eachlabs.ai), it leverages the Multi-modal Visual Language (MVL) framework for unified handling of visuals and motion prompts. Its primary differentiator is advanced **Motion Control**, enabling users to paint motion vectors or define transitions for professional-grade outputs up to 15 seconds. Ideal for creators needing controlled, high-fidelity animations, the **Kling | v3 | Standard | Motion Control API** integrates seamlessly into workflows on each::labs. ## Usage Notes - API Base URL: `https://api.eachlabs.ai/v1` - Authentication: send `X-API-Key: YOUR_API_KEY`. Generate a key from the Eachlabs dashboard at https://www.eachlabs.ai/dashboard/api-keys. - File-typed parameters (`*_url`, `image_url`, `video_url`, `audio_url`, etc.) accept publicly-reachable HTTPS URLs only. Upload your asset first (GCS / S3 / your CDN) and pass the resulting URL. Data-URIs and localhost URLs are rejected. - For structured parameters (arrays / objects) send real JSON values, not stringified payloads. - Monetary values are reported in USD; per-token / per-megapixel rates may be billed in micro-cents internally. - Prefer `webhook_url` over polling for long-running predictions — see the Webhook Callback section.