We use cookies to enhance your experience, provide personalised content, and analyse our traffic; see our Cookie Policy.
kuaishou/kling-v4One video model for text, frames, references and edits
Kling V4 is the 4.0 generation of Kuaishou's video model, released on 15 October 2026. A single model takes every kind of input: a text prompt, a first and a last frame, keyframes in between, reference images, reference videos, or a video to edit.
It makes clips of 3 to 30 seconds in 720p or 1080p, in 16:9, 9:16, 1:1 or 21:9, with sound always generated. You can send up to 10 images and 5 videos in one request, and point at each of them in the prompt as @image_1 or @video_1.
On Tchavi, one account, one API key and one balance open 100+ models, video, image and text together. You top up with mobile money, and your credits never expire.
Any whole second, in 16:9, 9:16, 1:1 or 21:9
Pin the start, the end and keyframes in between
Characters, products, places or style, cited as @image_1, @image_2…
Borrow motion, camera work or style from up to 5 videos
Send a video and describe the change; the result follows its length
No switch to flip: every clip comes with its soundtrack
An afrobeat dancer on a Cotonou rooftop at sunset, slow tracking shot circling her, her wrap swirling, street ambience and distant percussion.
Close-up of coffee pouring into a glass in slow motion, steam, splashes and warm light reflections, shallow depth of field, crisp liquid sound.
A text prompt, a first frame (image_url), middle keyframes (middle_images), a last frame (last_frame_image_url), reference images (reference_images), reference videos (reference_videos) and a video to edit (base_video_url). Up to 10 images and 5 videos in total.
Write @image_1, @image_2… for images and @video_1… for videos. Images are numbered first frame, then middle images, then last frame, then reference images. The video to edit is @video_1, before the reference videos.
With a first, middle or last frame, or a video to edit, the ratio comes from your inputs, so aspect_ratio is refused. With a video to edit, the output follows its length, so duration is refused. Otherwise the ratio is 16:9, 9:16, 1:1 or 21:9 and the duration 3 to 30 seconds.
By the second of output: 338 credits at 720p, 505 at 1080p. With any input video, reference or to edit, the rate is 202 (720p) or 303 (1080p) credits per billed second, where billed seconds are the output length plus the longer of the input videos' total length and the output length. A 5-second output with a 7-second reference video bills 12 seconds.
Kling V3 (model: "kling-v3") runs 3 to 15 seconds, goes up to 4K, has an optional audio switch and a negative prompt. Kling V4 runs up to 30 seconds, takes middle frames, up to 10 images and input videos, and always generates sound. Pick on the inputs and lengths you need.
Send a POST to /v1/videos/generations with your Tchavi key and model: "kling-v4", then prompt and, as needed, resolution, duration, image_url, middle_images, last_frame_image_url, reference_images, reference_videos or base_video_url. The job runs asynchronously: poll it until it completes.
Yes. Top up your Tchavi account with Orange Money, MTN MoMo, M-Pesa or another mobile money operator. No bank card is needed. Credits land as soon as the payment is confirmed and are deducted as you use them.
Yes. Keep your current OpenAI SDK, just change the base URL to Tchavi's (shown in the API tab) and use your Tchavi key. The rest of your code stays the same.
import Tchavi from '@tchavi/sdk';
const client = new Tchavi({ apiKey: 'API_KEY' });
const job = await client.videos.generations.create({
"model": "kling-v4",
"prompt": "A cinematic shot of a cat astronaut floating in space",
"resolution": "720p",
"duration": 5,
"aspect_ratio": "16:9",
"generate_audio": true
});
console.log('Job id:', job.id);
console.log('Credits used:', job.tchavi.credits_used);
// Poll for completion
let result = await client.videos.generations.retrieve(job.id);
while (result.status === 'pending' || result.status === 'processing') {
await new Promise((r) => setTimeout(r, 2000));
result = await client.videos.generations.retrieve(job.id);
}
console.log('Video URL:', result.output?.video_url);Every parameter this model accepts on the API. Check the SDK for full typings.
modelRequiredID of the video model (e.g. `kling-v4`).
promptRequiredText description of the video to generate.