VideoPriced by input
Kling LipSync
Kling LipSync takes a video of a person and a new audio track and regenerates realistic lip movement to match — swap the script, the language, or the voice without reshooting a frame.
// Node.js. Running this creates one paid generation.
import { randomUUID } from 'node:crypto';
const base = "https://www.made.app/api";
const headers = {
Authorization: `Bearer ${process.env.MADE_API_KEY}`,
'Content-Type': 'application/json',
};
const input = {
"model": "kling_lipsync",
"medias": [
{
"value": "https://example.com/reference.mp4",
"role": "video"
},
{
"value": "https://example.com/reference.mp3",
"role": "audio"
}
]
};
async function api(path, body) {
const response = await fetch(base + path, {
method: body ? 'POST' : 'GET', headers,
...(body && { body: JSON.stringify(body) }),
});
if (!response.ok) throw new Error(await response.text());
return response.json();
}
const { cost } = await api('/v1/cost', input);
console.log('Quoted cents:', cost.customerCostCents);
// Preserve this request ID when retrying a submission.
const requestId = randomUUID();
let job = await api('/v1/generations', {
...input, request_id: requestId,
max_cost_cents: cost.customerCostCents,
});
console.log('Request:', job.id);
while (!['succeeded', 'failed', 'canceled'].includes(job.status)) {
await new Promise(resolve => setTimeout(resolve, 3000));
job = await api('/v1/generations/' + job.id);
}
if (job.status !== 'succeeded') throw new Error(JSON.stringify(job.error || job.status));
console.log(job.result.assets);Input
Uses your credits. See the exact price before generating.
Result
ExampleRe-voiced to a new track
Price
Priced by input. Add your reference media to get an exact quote. Check the exact cost for your settings before generating. Failed generations are refunded. Full price sheet.
More models by Kling AI
Compare available models and their prices. The exact price depends on your settings.
| Model name | Price | Resolution | Duration |
|---|---|---|---|
| Kling 2.5 Turbo | 4.2 credits / second | — | 5–10s |
| Kling 2.5 Turbo Pro | 7 credits / second | — | 5–10s |
| Kling 2.6 Pro | 7 credits / second | — | 5–10s |
| Kling 2.6 (Image to Video) | from 7 credits / second | — | 5–10s |
| Kling 3 4K | 42 credits / second | — | 3–15s |
| Kling 3 Motion Control Pro | Priced by input | — | — |
| Kling 3 Pro | from 11.2 credits / second | — | 3–15s |
| Kling 3 Pro (Image to Video) | from 11.2 credits / second | — | 3–15s |
| Kling 3 Standard (Image to Video) | from 8.4 credits / second | — | 3–15s |
| Kling 3 Turbo | 11.2 credits / second | — | 3–15s |
| Kling AI Avatar v2 Pro | Priced by input | — | — |
| Kling AI Avatar v2 Standard | Priced by input | — | — |