Skip to content
Dashboard

Kling v3.0 Motion Control

Kling v3.0 Motion Control transfers full-body motion from a reference video onto a character defined by a reference image, holding facial identity stable through occlusions, multi-angle motion, and camera moves at up to 1080p.

View API reference
Price
$0.13, Per second
Lowest available configuration
import { experimental_generateVideo as generateVideo } from 'ai';
const result = await generateVideo({
model: 'klingai/kling-v3.0-motion-control',
prompt: 'A serene mountain lake at sunrise.'
});
Read docs

Copy link to headingPlayground

Try out Kling v3.0 Motion Control by Kling AI. Usage is billed to your team at API rates. Free users (those who haven't made a payment) get $5 of credits every 30 days.

klingai logo
Reference image (required)
Reference video (required)
Prompt(optional)

Videos to generate
Mode
Character orientation
Keep original sound
klingai logo

Your generated video will appear here.

Copy link to headingProviders

Route requests across multiple providers. Copy a provider slug to set your preference. Visit the docs for more info. Using a provider means you agree to their terms, listed under Legal.

Provider
Input
Output
Capabilities
ZDR
No Training
Free Tier
Release Date
$0.13/sec+1 more
03/04/2026

Getting started

Generate videos with Kling v3.0 Motion Control using the experimental_generateVideo function from AI SDK 6 or later. AI Gateway handles routing and polls until the video is ready.

Install the AI SDK (pnpm add ai dotenv), create an API key from the API Keys page, and set it as AI_GATEWAY_API_KEY in your environment. Full setup is covered in the video generation quickstart.

index.ts
import { experimental_generateVideo as generateVideo } from 'ai';
import fs from 'node:fs';
import 'dotenv/config';
async function main() {
const result = await generateVideo({
model: 'klingai/kling-v3.0-motion-control',
prompt: {
image: fs.readFileSync('./character.png'),
},
providerOptions: {
klingai: {
videoUrl: 'https://example.com/dance-reference.mp4',
characterOrientation: 'video',
mode: 'std',
},
},
});
// Save the generated video
fs.writeFileSync('output.mp4', result.videos[0].uint8Array);
console.log('Video saved to output.mp4');
}
main().catch(console.error);

Top-level parameters

Exercise the supported top-level parameters: prompt.image, prompt.text, aspectRatio, resolution, and duration.

top-level-params.ts
import { experimental_generateVideo as generateVideo } from 'ai';
import fs from 'node:fs';
import 'dotenv/config';
async function main() {
const result = await generateVideo({
model: 'klingai/kling-v3.0-motion-control',
prompt: {
image: fs.readFileSync('./character.png'),
text: 'The character walks forward through a serene mountain landscape',
},
aspectRatio: '16:9',
resolution: '720p',
duration: 5,
});
// Save the generated video
fs.writeFileSync('output.mp4', result.videos[0].uint8Array);
console.log('Video saved to output.mp4');
}
main().catch(console.error);
ParameterTypeRequiredDescription
prompt.imagestringYesURL of the image to animate.
prompt.textstringNoDescription of the motion or animation. Max 2500 characters.
durationnumberNoVideo length in seconds. 3-30 seconds.
resolutionstringNoResolution ('1280x720', '1920x1080').
aspectRatiostringNoAspect ratio ('16:9', '9:16', '1:1').

Input limits

InputFormatsSourcesMax countMax sizeLimits
TextUp to 2500 characters
Imagejpg, jpeg, pngurl, base64, buffer110 MB≥300px · aspect 2:5–5:2
Videomp4, movurl1100 MB3-30s · ≥340px · ≤3850px

Provider options

Load the required KlingAI motion-control options under providerOptions.klingai: videoUrl, characterOrientation, and mode.

provider-options.ts
import { experimental_generateVideo as generateVideo } from 'ai';
import fs from 'node:fs';
import 'dotenv/config';
async function main() {
const result = await generateVideo({
model: 'klingai/kling-v3.0-motion-control',
prompt: {
image: fs.readFileSync('./character.png'),
text: 'The character performs the motion from the reference clip',
},
providerOptions: {
klingai: {
videoUrl: 'https://example.com/dance-reference.mp4',
characterOrientation: 'video',
mode: 'pro',
keepOriginalSound: 'yes',
watermarkEnabled: true,
pollIntervalMs: 5000,
pollTimeoutMs: 600000,
},
},
});
// Save the generated video
fs.writeFileSync('output.mp4', result.videos[0].uint8Array);
console.log('Video saved to output.mp4');
}
main().catch(console.error);

Pass KlingAI-specific options under providerOptions.klingai in your generateVideo call.

ParameterTypeRequiredDescription
videoUrlstringYesURL of the reference motion video — see the Input limits table for supported formats, size, and dimensions. Max duration depends on characterOrientation.
characterOrientation'image' | 'video'Yes'image' matches the character image orientation (max 10s output). 'video' matches the reference video orientation (max 30s output).
mode'std' | 'pro'Yes'std' for standard quality. 'pro' for professional quality.
keepOriginalSound'yes' | 'no'NoKeep audio from the reference video. Defaults to 'yes'.
watermarkEnabledbooleanNoGenerate a watermarked result alongside the video.
pollIntervalMsnumberNoHow often to check task status. Defaults to 5000.
pollTimeoutMsnumberNoMaximum wait time. Defaults to 600000 (10 minutes).

Reference video and orientation

Motion control requires a reference clip via providerOptions.klingai.videoUrl. Provide the character as prompt.image and set characterOrientation to control how output duration is capped.

characterOrientation: 'image' limits output to 10 seconds and matches the character image orientation. 'video' limits output to 30 seconds and matches the reference video orientation.

The reference video must be a URL (use Vercel Blob for local files). Minimum 3 seconds of usable continuous motion is required.

Base64 image encoding

When passing an image as base64 (for example prompt.image), submit only the raw base64 string. Do not include a data:image/png;base64, prefix.

Motion transfer with Vercel Blob

Drive the character image with motion from a reference video. Upload local clips to Vercel Blob first, then pass the URL as videoUrl.

motion-transfer.ts
import { experimental_generateVideo as generateVideo } from 'ai';
import fs from 'node:fs';
import 'dotenv/config';
import { put } from '@vercel/blob';
async function main() {
const referenceVideo = fs.readFileSync('./dance.mp4');
const { url: videoUrl } = await put('dance.mp4', referenceVideo, {
access: 'public',
});
const result = await generateVideo({
model: 'klingai/kling-v3.0-motion-control',
prompt: {
image: fs.readFileSync('./character.png'),
},
providerOptions: {
klingai: {
videoUrl,
characterOrientation: 'video',
mode: 'pro',
},
},
});
// Save the generated video
fs.writeFileSync('output.mp4', result.videos[0].uint8Array);
console.log('Video saved to output.mp4');
}
main().catch(console.error);

Copy link to headingMore models by Kling AI

Model
Context
Latency
Throughput
Input
Output
Cache
Web Search
Capabilities
Providers
ZDR
No Training
Free Tier
Release Date
$0.17/sec+1 more
klingai logo
02/05/2026
$0.07/sec+1 more
klingai logo
12/18/2025
$0.04/sec+1 more
klingai logo
12/03/2025
$0.04/sec+1 more
klingai logo
12/03/2025
$0.04/sec+1 more
klingai logo
09/23/2025
$0.04/sec+1 more
klingai logo
09/23/2025

Copy link to headingAbout Kling v3.0 Motion Control

Kling v3.0 Motion Control generates video where character actions match a reference video while visual appearance comes from a reference image. You provide a still image of the character, a clip containing the motion to capture, and an optional text prompt that guides elements, backgrounds, and motion effects. Kling v3.0 Motion Control maps full-body posture, joint movement, hand gestures, and facial expressions from the clip onto your character.

Character fidelity is the focus of the v3.0 generation. Facial features stay stable across multi-angle and long-duration motion, and subtle emotional transitions (smiling, surprise, sadness) carry over accurately. When hands, hats, props, or fans partially cover the face, Kling v3.0 Motion Control restores facial detail from the reference imagery across frames. Clarity also holds while the camera zooms, pans, or tracks the subject, so motion transfer combines cleanly with camera direction in the prompt.

Two character orientation modes control framing and duration. In image mode the character keeps facing the direction shown in the still, with output up to 10 seconds. In video mode the character's orientation follows the reference clip, with output up to 30 seconds. Output renders at 720p in std mode or 1080p in pro mode, and this page lists the live per-second rates for each.

Compared with Kling v2.6 Motion Control, the v3.0 release improves element consistency, preserves character identity more reliably, and produces smoother motion transfer. Choose Kling v3.0 Motion Control when a specific character must perform a specific referenced motion and identity drift is not acceptable.

Copy link to headingWhat To Consider When Choosing a Provider

  • Configuration: Reference quality drives transfer accuracy. Keep the character's full body and head clearly visible in the reference image, and match proportions between the image and the video. Avoid pairing a full-body reference clip with a half-body image. Steady, clear movements transfer best. Very fast or chaotic motion can degrade results.
  • Configuration: Video generation is in beta for Pro and Enterprise plans and paid AI Gateway users. Confirm your plan before you ship.
  • Zero Data Retention: Zero Data Retention is offered on a per-provider and model basis. See the documentation for details.
  • Authentication: AI Gateway authenticates requests using an API key or OIDC token. You do not need to manage provider credentials directly.

Copy link to headingWhen to Use Kling v3.0 Motion Control

Best for

  • Character Motion Transfer: Applying a reference performance to a character defined by a single still image
  • Dance and Performance Clips: Replicating body movement, gestures, and timing on a new character or scene
  • Virtual Avatars and Mascots: Keeping facial identity stable while a brand character performs referenced motion
  • Camera-Aware Staging: Combining motion transfer with tracking shots, pans, and zooms without losing clarity

Consider alternatives when

  • No Reference Video: You prefer purely text-driven generation without a motion clip, so use v3.0 t2v
  • Simple Image Animation: You want to animate a still image without motion transfer, so use v3.0 i2v
  • Speed and Cost Priority: Generation speed and cost matter more than motion fidelity, so Kling's turbo tiers are faster and cheaper

Kling v3.0 Motion Control brings v3.0 character fidelity to motion transfer. Appearance comes from one image, motion comes from one clip, and identity holds through occlusions and camera movement. Pick Kling v3.0 Motion Control when a defined character needs to perform a defined motion without identity drift.

Copy link to headingFrequently Asked Questions

  • What inputs does Kling v3.0 Motion Control require?

    Two inputs are required: a reference image that defines the character's appearance and a reference video that defines the motion. An optional text prompt guides elements, backgrounds, and motion effects. Keep the character's full body and head clearly visible in the image.

  • How do the character orientation modes affect output duration?

    Image mode keeps the character facing the direction shown in the reference image and caps output at 10 seconds. Video mode follows the orientation in the reference clip and extends output up to 30 seconds.

  • What resolutions does Kling v3.0 Motion Control support?

    Output renders at 720p in std mode and 1080p in pro mode. Std mode is the cost-effective tier; pro mode targets higher quality. This page lists the live per-second rate for each mode.

  • How does Kling v3.0 Motion Control keep facial identity stable during occlusions?

    When hands, hats, props, or fans partially cover the face, Kling v3.0 Motion Control restores facial detail from the reference imagery across frames. Facial features also stay stable across multi-angle and long-duration motion, and clarity holds while the camera zooms, pans, or tracks.

  • How does v3.0 Motion Control differ from v2.6 Motion Control?

    V3.0 improves element consistency, preserves character identity more reliably, and produces smoother motion transfer than v2.6. V3.0 also centers the workflow on a character reference image, so a defined subject performs the referenced motion with stable facial identity.

  • How do I use Kling v3.0 Motion Control through AI Gateway?

    Call Kling v3.0 Motion Control with generateVideo from the AI SDK, passing your reference image, reference video, and optional prompt. Video generation is in beta for Pro and Enterprise plans and paid AI Gateway users, so confirm your plan before you ship.

Your use is subject to Kling AI's Terms & Privacy Policies.