Kling 3.0 Motion Control: API, Pricing and Code (2026)
Unicorn API Team · · 9 min read
Kling 3.0 motion control lets you take the movement from one video, a dance, a hand gesture, a walk across a room, and apply it to a completely different character from a single still image. Instead of describing motion in a prompt and hoping the model interprets it correctly, you show it exactly what you want. This guide covers how the feature works, which model to call, what it costs in credits, and complete code that runs the whole job through one API.
What is Kling 3.0 motion control?
Motion control is Kling’s name for motion transfer: extracting body and facial movement from a reference clip and re-performing it with a new subject. A reference video here simply means a real clip of someone moving, which acts as the choreography. The character image is the “actor” who will perform it.
Typical uses look like this:
- Mascots and illustrated characters. Film yourself doing a product gesture, then have your brand mascot do the same move.
- Dance and trend content. Copy a dance routine onto an avatar or a stylised character for short-form vertical video.
- Presenter clips. Transfer hand gestures and expressions onto a consistent virtual presenter.
- Pre-visualisation. Block out a scene with a phone recording, then render it with the final character design.
The key difference from ordinary image-to-video (animating a still from a text prompt alone) is control. Text prompts are good at mood, setting and camera style, but weak at precise timing: “raises left arm, spins, then points at camera” rarely comes out in the right order. A reference video fixes the choreography, so the prompt only has to handle the rest.
Kling announced the 3.0 version of Motion Control with upgraded motion capture and improved facial consistency, meaning the character’s face stays stable across the clip instead of drifting as it moves. That stability is what makes Kling 3.0 motion control usable for recurring characters, where viewers will notice if the face changes between shots.
Does Kling 3.0 have motion control, and which model runs it?
Yes. The 3.0 generation of Kling includes motion control, but the Kling 3.0 family on Unicorn API comes in more than one model, and they are not interchangeable:
- Kling 3.0 Omni (released 2026-08-12) is the one to use for Kling 3.0 motion control. It can create, animate, reference or transform video, and its inputs include
reference_videosandreference_images, plus characters, start and end frames, native audio, custom storyboards and output up to 4K. - Kling 3.0 (released 2026-02-06) is the cinematic text-to-video and image-to-video model, with native sound, subjects, storyboards and start/end frames. It does not take a reference video, so it cannot copy motion from one.
So when people search for the Kling 3.0 release date in connection with motion control, the relevant model is Omni, which arrived in August 2026, about six months after the base 3.0 model.
Omni’s input schema lists these fields: mode, image, prompt, duration, elements, end_image, resolution, with_audio, aspect_ratio, multi_prompt, reference_images, reference_videos, prefer_multi_shots and customize_multi_shots. Outputs can be 16:9, 9:16 or 1:1, from 3 to 15 seconds, at 720p, 1080p or 4K.

How Kling 3.0 motion control works
Under the hood, video models like Kling are diffusion models: they start from noise and refine it, step by step, into frames that match the conditions you give them. In plain text-to-video, the only conditions are your words. In Kling 3.0 motion control, the reference video becomes an extra, much stronger condition on how things move, while the character image conditions how things look.
Think of it as three inputs with separate jobs:
| Input | Omni field | What it controls |
|---|---|---|
| Reference video | reference_videos | Body pose over time, gestures, timing, facial movement |
| Character image | image or reference_images | Identity: face, outfit, art style, proportions |
| Prompt | prompt | Setting, lighting, camera feel, anything the other two don’t cover |
When these three agree, results are strong. When they fight each other, for example a prompt that says “sitting calmly” with a reference video of someone jumping, the model has to pick, and you usually get an awkward compromise. The most reliable approach is to let the reference video own the motion entirely and keep motion words out of the prompt.
What transfers well and what doesn’t
Full-body movement, dance, walking and clear hand gestures are the core strengths. Motion that depends on interacting with objects (picking up a cup, opening a door) is harder, because the character image may not contain the object, and the model has to invent it. Very fast motion with motion blur in the reference clip also transfers less cleanly, since blurred limbs give the model less to read.
Kling 3.0 motion control pricing
On Unicorn API every model is priced in credits. Monthly plans give credits at $0.01 each (Starter $25, Creator $50, Studio $100, Pro $200 per month). Top-up credits cost $0.015 each and never expire.
Kling 3.0 Omni is listed at 70 credits per video. That works out to:
- About $0.70 per clip on a monthly plan.
- About $1.05 per clip with top-up credits.
- Roughly 35 clips on the $25 Starter plan (2,500 credits).
For comparison, here is what the standard Kling 3.0 model charges for some common settings, since it is the model you might use for scenes that don’t need motion transfer:
| Kling 3.0 setting | Credits | Plan cost |
|---|---|---|
| 5 s, standard quality, no sound | 70 | $0.70 |
| 5 s, pro quality, with sound | 135 | $1.35 |
| 10 s, standard quality, with sound | 200 | $2.00 |
| 10 s, 4K | 670 | $6.70 |
Prices can depend on the options you send, so do not guess. Unicorn API returns the exact price of any request before you run it through POST /v1/models/price, which is worth calling from your app if you let users pick duration or resolution. Full plan details are on the pricing page.
A note on “Kling 3.0 free”: several sites advertise free trials of Kling 3.0 motion control. Free tiers usually come with watermarks, queues or tight daily limits. If you are building something, paying per clip with no subscription lock-in on a specific vendor is often the cheaper option in practice, because you only pay for what you render.

How to use Kling 3.0 motion control through the API
The Kling 3.0 API flow on Unicorn API is asynchronous, which is normal for video: generation takes a while, so you submit a job and check back.
- Create an API key on the keys page and export it as
UNICORN_API_KEY. - Host your reference video and character image at public URLs.
- Send
POST /v1/jobswith the model idkling-3.0-omni/videoand your inputs. - Poll
GET /v1/jobs/{id}untilstatusis"succeeded". - Download the result from
job.outputs[0].url.
The simplest possible request is just a prompt:
curl https://api.unicornapi.net/v1/jobs \
-H "Authorization: Bearer $UNICORN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"kling-3.0-omni/video","input":{"prompt":"A slow drone shot over a rocky coastline at sunset, waves breaking"}}'
A complete motion transfer example in Python
This script submits a Kling 3.0 motion control job with a reference dance clip and a mascot image, then waits for the result. The field names come from Omni’s input schema. The mode field selects between Omni’s workflows; check the exact accepted values and URL formats for reference_videos in the API documentation before you ship, and add mode if your use case requires it.
import os
import time
import requests
API = "https://api.unicornapi.net"
HEADERS = {
"Authorization": f"Bearer {os.environ['UNICORN_API_KEY']}",
"Content-Type": "application/json",
}
body = {
"model": "kling-3.0-omni/video",
"input": {
"prompt": (
"A cheerful cartoon fox mascot dancing on a bright studio stage, "
"soft key light, clean pastel background"
),
"image": "https://example.com/assets/fox-mascot.png",
"reference_videos": ["https://example.com/assets/dance-reference.mp4"],
"duration": 5,
"aspect_ratio": "9:16",
"resolution": "1080p",
"with_audio": False,
},
}
resp = requests.post(f"{API}/v1/jobs", json=body, headers=HEADERS, timeout=30)
resp.raise_for_status()
job = resp.json()
job_id = job["id"]
print("Submitted job", job_id)
while True:
r = requests.get(f"{API}/v1/jobs/{job_id}", headers=HEADERS, timeout=30)
r.raise_for_status()
job = r.json()
status = job["status"]
if status == "succeeded":
print("Video ready:", job["outputs"][0]["url"])
break
if status in ("failed", "canceled"):
raise RuntimeError(f"Job {job_id} ended with status {status}: {job}")
time.sleep(5)
A few practical details. Poll every few seconds rather than in a tight loop. Store the job id in your database as soon as you get it, so a crashed worker can resume polling instead of paying for a second render. And download the output to your own storage once it succeeds rather than serving the returned URL to users long-term.
If you would rather test inputs before writing code, the video playground runs the same models in the browser. If you work in Cursor or Claude Code, the agents setup lets your coding assistant call these models directly.
Choosing a good reference video and character image
Most bad Kling 3.0 motion control results trace back to the inputs, not the model. These rules make the biggest difference.
Reference video
- One person, fully visible. Keep the whole body (or whatever part matters) in frame for the entire clip. Limbs that leave the frame give the model nothing to copy.
- Plain background, steady camera. A locked-off phone on a tripod in front of a plain wall beats handheld footage in a busy room.
- Good light, little blur. Shoot in bright light so fast moves stay sharp.
- Match the output length. Omni outputs 3 to 15 seconds, so trim the reference to the part you actually want.
Character image
- Match framing and pose. If the reference is full-body, use a full-body character image. A head-and-shoulders portrait asked to perform a dance forces the model to invent legs.
- Neutral starting pose. A character standing upright with arms visible adapts to new motion far better than one already mid-action.
- Similar proportions. A short, round mascot copying a tall dancer works, but extreme proportion gaps produce stretched or rubbery limbs. Exaggerate less in the reference if your character is stylised.
- Match aspect ratio. Use a 9:16 image and reference for vertical output, 16:9 for landscape.
Prompt
Describe the scene, lighting and style. Leave the movement to the reference. “A cartoon fox on a neon-lit stage, cinematic lighting” works; “a cartoon fox doing a spin then a jump” competes with the reference and often hurts.
Common Kling 3.0 motion control mistakes
These come up again and again when teams first wire motion transfer into a product:
- Calling the wrong model. Sending a reference video to
kling-3.0/videodoes nothing useful because that model has noreference_videosinput. Usekling-3.0-omni/video. - Private or expiring URLs. The model fetches your inputs from their URLs. Signed links that expire in seconds, or files behind a login, cause failed jobs.
- Rendering 4K while iterating. Test framing and motion at 720p, then render the keeper at higher resolution.
- Not checking the price first. If users choose settings, call
POST /v1/models/priceand show the cost before the job runs. - Treating “succeeded” as “good”. A succeeded job only means a video exists. Review faces and hands, since those are where artefacts show up first.
- Re-polling forever. Handle failed and canceled statuses and set a maximum wait so a stuck job does not block a worker indefinitely.
Alternatives: when another model fits better
Kling 3.0 motion control is the right call when you have a specific movement to copy. When you don’t, a cheaper or simpler model may do the job. All of these run with the same key and the same job endpoints, so switching is a one-line change to model.
| Model | Best for | Example price |
|---|---|---|
| Kling 3.0 Omni | Motion transfer from a reference video, characters, storyboards, up to 4K | 70 credits per video |
| Kling 4.0 Keyframe To Video | Motion defined by keyframes you supply (first, last and in-between frames) | 28.5 credits per second at 720p, 42.5 at 1080p |
| Grok Imagine Video 1.5 | Cheap image-to-video from a start frame, prompt-driven motion | 5 s at 720p: 22.5, rounded up to 23 credits |
| Grok Imagine Video 1.0 | Longer clips, 6 to 30 seconds, text or image input | 30 s at 1080p: 240 credits |
| PixVerse V6 Max Image To Video | Image-to-video with optional generated audio | 8.8 credits per second at 720p without audio |
Kling 4.0 Keyframe To Video is the closest alternative for controlled motion: instead of a reference clip, you pin down poses with keyframe images and the model fills in the movement between them. It suits cases where you can draw or render the key poses but can’t film the motion. For prompt-only animation at low cost, Grok Imagine Video 1.5 is hard to beat, and our Grok Imagine prompt guide covers how to describe motion well in text. If your characters need to speak on camera, see how AI lip sync tools work.
A sensible production pattern is to mix them: use Kling 3.0 motion control for the hero shots where exact choreography matters, and a cheaper image-to-video model for b-roll and filler. Browse the full model catalog to compare every video model on the same credit scale.
Frequently asked questions
Does Kling 3.0 have motion control?
Yes. Kling released a 3.0 version of Motion Control with upgraded motion capture and better facial consistency. On Unicorn API, the reference-driven workflow runs through Kling 3.0 Omni, which accepts reference_videos and reference_images alongside a prompt and a character image. You send the clip whose movement you want, plus the character to animate, and the model produces a new video of that character performing the motion.
How do you use motion control in Kling AI?
Pick a short reference video with clear, unobstructed movement and a character image with a similar framing and pose. Submit both to Kling 3.0 Omni with a prompt describing the scene, choose duration, aspect ratio and resolution, then wait for the job to finish. Through the API that means POST /v1/jobs, then polling GET /v1/jobs/{id} until the status is succeeded and downloading the output URL.
What is motion control on Kling?
Motion control is Kling's motion transfer feature. Instead of describing movement in words, you show the model a reference video of a person moving: dancing, gesturing, walking or talking. The model extracts that body and facial motion and applies it to a different character from a still image, keeping the character's appearance consistent while it performs the copied movement.
Which Kling model has motion control?
Kling offered Motion Control before 3.0 and upgraded it for the 3.0 generation. On Unicorn API, use Kling 3.0 Omni for reference-driven motion, since it is the Kling model that takes reference videos as input. Standard Kling 3.0 handles text-to-video and image-to-video with start and end frames, and Kling 4.0 Keyframe To Video interpolates between keyframes you supply.
How much does Kling 3.0 motion control cost?
On Unicorn API, Kling 3.0 Omni is listed at 70 credits per video. Monthly plan credits cost $0.01 each, so a clip is about $0.70; top-up credits cost $0.015 each, about $1.05 per clip. A $25 Starter plan covers roughly 35 clips. You can check the exact price of any request before running it with POST /v1/models/price.