What it is good at
- Copies body movement and gestures from a reference video
- Keeps the character from one photo
- Clips from 3 to 30 seconds
Kuaishou · Video · 27 credits per second
For anyone who has a performance on video and a character in a photo and wants the two joined. Your clip decides the length and the bill: 27 credits for each second of it.
27 credits per second.
Resolutions: 720p, 1080p.
Think of it as a puppet rig with two inputs. A phone video of a friend doing a dance trend becomes your mascot doing the same steps. A presenter's hand gestures from a pitch rehearsal move onto an illustrated host. A product tester's unboxing motion transfers onto a stylized avatar for a channel intro.
Open the Motion Control tool. It takes two uploads, an image and a video. There are no presets to choose from, so the inputs carry the whole result. A short text note is optional. Use it for small things like lighting or background mood. An example is "soft studio light, plain gray backdrop, keep the jacket red".
The character photo needs the head and the full body in frame. A cropped waist-up portrait leaves the engine guessing about legs and feet. The guesses show the moment the dance starts. Stand the subject against a plain wall, arms slightly away from the torso. That keeps the outline easy to read.
The reference clip must run between 3 and 30 seconds. One performer, a locked-off camera and clothes that contrast with the background give the cleanest transfer. Very fast spins or hands that pass behind the body are where blur appears. Trim those moments out before you upload rather than paying for them.
You choose 720p or 1080p. Use 720p while you check that the motion maps correctly onto the character. Then rerun the approved clip at 1080p for delivery.
A 5-second reference costs 135 credits, about $1.44 at the largest pack. A 10-second one costs 270 credits, about $2.87. Among the 31 models that bill video by the second, this one sits sixth from the cheapest. Rates in that group run from a floor of 10 to a ceiling of 205 credits.
Genjutsu, at 205 credits per second, is for recasting a whole existing clip with its camera moves and timing. It accepts up to eight reference images. Without any performance video, Kling 3.0 generates motion from a prompt at the same 27 credits per second.
| Pack | Credits | Seconds |
|---|---|---|
| $9 | 750 | 27 |
| $19 | 1,650 | 61 |
| $39 | 3,500 | 129 |
| $79 | 7,300 | 270 |
| $149 | 14,000 | 518 |
curl -X POST https://ugesi.com/api/generate \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "kling-motion-control",
"prompt": "a product shot on white marble",
"image_url": "https://ugesi.com/media/...",
"video_url": "https://ugesi.com/media/...",
"consent": true
}'<?php
$ch = curl_init('https://ugesi.com/api/generate');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer YOUR_API_KEY',
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode([
'model' => 'kling-motion-control',
'prompt' => 'a product shot on white marble',
'image_url' => 'https://ugesi.com/media/...',
'video_url' => 'https://ugesi.com/media/...',
'consent' => '1',
]),
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
print_r($response);type GenerateRequest = {
model: string;
prompt: string;
image_url?: string;
video_url?: string;
consent?: boolean;
};
type GenerateResponse = {
job_id: number;
job_token: string;
credits_held: number;
status: "queued" | "succeeded";
output_text?: string;
};
const body: GenerateRequest = {
model: "kling-motion-control",
prompt: "a product shot on white marble",
image_url: "https://ugesi.com/media/...",
video_url: "https://ugesi.com/media/...",
consent: true,
};
const resp = await fetch("https://ugesi.com/api/generate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.UGESI_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify(body),
});
if (!resp.ok) throw new Error(`HTTP ${resp.status}`);
const job = (await resp.json()) as GenerateResponse;
console.log(job.job_id, job.status);import requests
resp = requests.post(
"https://ugesi.com/api/generate",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={
"model": "kling-motion-control",
"prompt": "a product shot on white marble",
"image_url": "https://ugesi.com/media/...",
"video_url": "https://ugesi.com/media/...",
"consent": "1",
},
timeout=60,
)
resp.raise_for_status()
print(resp.json()){
"model": "kling-motion-control",
"prompt": "a product shot on white marble",
"image_url": "https://ugesi.com/media/...",
"video_url": "https://ugesi.com/media/...",
"consent": true
}The API comes with every credit pack, from Lite to Enterprise, and uses the same balance as the website. API documentation and access →
Outputs made with paid credits can be used commercially. The maker's own rules for Kling 3.0 Motion Control also apply (Kling AI API terms). The full rules are in our Terms of service.
As long as your reference clip. Upload anything from 3 to 30 seconds and the output follows that length. If you only need part of the performance, trim the clip first.
It works poorly. The engine expects the head and full body to be visible. With only a face, it has to invent the body, and limbs often look wrong once the movement begins.
Very fast or hidden movement is the known weak spot. Pick a take where the hands stay in view and the moves are clear. You can also slow the reference down before uploading it.
Yes. Everyone who appears in the photo or in the reference clip must have agreed to being used this way. That applies to a dancer, a friend or a model alike.
Pay only for what you generate. New accounts start with free credits, no card needed.
Start for freeEssential cookies keep you signed in and protect forms. With your consent we also use statistics: where visits come from (for example a campaign) and which tools work. You can change your choice at any time under “Cookie settings” in the footer. Cookie policy
Essential (always on)
Sign-in, form security and remembering this choice.
An anonymous visit ID and the campaign source (utm), so we know what works. This data stays with us.