Kling v3.0 Text-to-Video
Kling v3.0 Text-to-Video is Kling's v3.0 text-to-video model with multi-shot narrative generation, physics-aware motion, native multilingual audio, and up to 15-second output from a single prompt. Your use is subject to Kling AI's Terms & Privacy Policies.
View API reference- Price
- $0.17, Per secondLowest available configuration
import { experimental_generateVideo as generateVideo } from 'ai';
const result = await generateVideo({ model: 'klingai/kling-v3.0-t2v', prompt: 'A serene mountain lake at sunrise.'});Copy link to headingPlayground
Try out Kling v3.0 Text-to-Video 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.
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 |
|---|
Getting started
Generate videos with Kling v3.0 Text-to-Video 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.
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-t2v', prompt: 'A chicken flying into the sunset in the style of 90s anime', providerOptions: { klingai: { 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, aspectRatio, and duration.
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-t2v', prompt: 'A chicken flying into the sunset in the style of 90s anime', aspectRatio: '16:9', 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);| Parameter | Type | Required | Description |
|---|---|---|---|
prompt | string | Yes | Text description of the video to generate. Max 2500 characters. |
duration | number | No | Video length in seconds. 3-15 seconds. |
resolution | string | No | Resolution ('1280x720', '1920x1080', '3840x2160'). |
aspectRatio | string | No | Aspect ratio ('16:9', '9:16', '1:1'). |
generateAudio | boolean | No | Generate synchronized audio with the video. |
Input limits
| Input | Formats | Sources | Max count | Max size | Limits |
|---|---|---|---|---|---|
| Text | — | — | — | — | Up to 2500 characters |
Provider options
Load the always-compatible KlingAI options under providerOptions.klingai. Feature controls like cameraControl, voiceList, and multiShot are mutually exclusive with each other and are shown in their own examples below.
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-t2v', prompt: 'A chicken flying into the sunset in the style of 90s anime', aspectRatio: '16:9', duration: 5, generateAudio: true, providerOptions: { klingai: { mode: 'pro', negativePrompt: 'blurry, low quality', cfgScale: 0.5, 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
mode | 'std' | 'pro' | No | 'std' for standard quality. 'pro' for professional quality. Defaults to 'std'. |
negativePrompt | string | No | What to avoid in the video. Max 2500 characters. |
cfgScale | number | No | Prompt adherence (0-1). Higher = stricter. Defaults to 0.5. Not supported on v2.x. |
voiceList | array | No | Voice IDs for speech. Max 2 voices. Requires generateAudio: true. Cannot coexist with elementList. |
multiShot | boolean | No | Enable multi-shot generation. Requires v3.0+. |
shotType | 'customize' | 'intelligence' | No | Storyboard method, required when multiShot is true. 'customize' takes the shots from multiPrompt; 'intelligence' lets the model segment the main prompt. Requires v3.0+. |
multiPrompt | Array<{ index: number; prompt: string; duration: string }> | No | Per-shot details, required when multiShot is true and shotType is 'customize'. Up to 6 shots, each prompt max 512 characters, and the shot durations must sum to the total duration. Requires v3.0+. |
cameraControl.type | string | No | Camera movement type: 'simple', 'down_back', 'forward_up', 'right_turn_forward', or 'left_turn_forward'. |
cameraControl.config | object | No | Movement configuration. Required when type is 'simple'. Set one of horizontal, vertical, pan, tilt, roll, or zoom in range [-10, 10] and leave the others at 0. |
watermarkEnabled | boolean | No | Generate a watermarked result alongside the video. |
pollIntervalMs | number | No | How often to check task status. Defaults to 5000. |
pollTimeoutMs | number | No | Maximum wait time. Defaults to 600000 (10 minutes). |
Audio and voice
Set generateAudio: true to enable audio.
Reference voices in your prompt with the <<<voice_1>>> syntax, where the number matches the order of entries in voiceList. You can use up to 2 voices per video, and voice generation requires generateAudio: true.
Multi-shot generation
Multi-shot generation requires v3.0+. Set multiShot: true with shotType: 'customize' and a multiPrompt array, where each entry has an index (shot order, starting from 1), a prompt, and a duration (in seconds, as a string).
When using multiPrompt, the top-level prompt is typically left empty because each shot supplies its own prompt.
Camera control
Control camera movement during generation. Use a preset movement type or 'simple' with a config that sets one axis (others stay at 0).
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-t2v', prompt: 'A serene mountain landscape at sunset', aspectRatio: '16:9', providerOptions: { klingai: { mode: 'std', cameraControl: { type: 'simple', config: { zoom: 5, horizontal: 0, vertical: 0, pan: 0, tilt: 0, roll: 0, }, }, }, }, });
// Save the generated video fs.writeFileSync('output.mp4', result.videos[0].uint8Array);
console.log('Video saved to output.mp4');}
main().catch(console.error);Multi-shot generation
Generate videos with multiple storyboard shots, each with its own prompt and duration. Requires Kling v3.0+ models.
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-t2v', prompt: '', aspectRatio: '16:9', duration: 10, generateAudio: true, providerOptions: { klingai: { mode: 'pro', multiShot: true, shotType: 'customize', multiPrompt: [ { index: 1, prompt: 'A sunrise over a calm ocean, warm golden light.', duration: '4', }, { index: 2, prompt: 'A flock of seagulls take flight from the beach.', duration: '3', }, { index: 3, prompt: 'Waves crash against rocky cliffs at sunset.', duration: '3', }, ], }, }, });
// 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 headingAbout Kling v3.0 Text-to-Video
Kling v3.0 Text-to-Video introduces multi-shot generation as its signature feature. A single prompt can describe a multi-scene narrative. The model produces up to five coherent shots in one generation pass, each with its own visual composition and action. Total video duration runs up to 15 seconds across these shots, edited together as a continuous sequence. This eliminates the manual workflow of generating and stitching individual clips for multi-scene narratives.
The v3 generation tier improves visual quality in several areas. More realistic physics simulation governs object interactions, environmental elements, and secondary motion. Temporal consistency across frames is stronger. Native audio generation (multilingual speech in English, Chinese, Japanese, Korean, Spanish, and others, plus action sound effects and ambient audio) integrates into the same inference call.
For narrative-driven content production, advertising, and creative storytelling, v3.0 t2v reduces the number of sequential generation calls needed for a multi-scene video. Directing multiple shots from a single descriptive prompt also makes it well suited to AI-assisted storyboarding and pre-visualization workflows.
Copy link to headingWhat To Consider When Choosing a Provider
- Configuration: Multi-shot generation in v3.0 bills total output duration as the sum of each shot duration. Plan cost per asset with that in mind.
- 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 Text-to-Video
Best for
- Multi-scene narrative video: Story sequences, ads with setup and payoff, or explainer progressions from a single prompt
- Quality-first text-to-video: Work where visual detail, motion quality, and audio matter more than turbo speed
- Multilingual narration: Content requiring multilingual voice or layered audio alongside generated visuals
- Creative pre-visualization: Storyboarding for film or advertisement production
Consider alternatives when
- Image-anchored subject: A reference image must anchor the subject appearance or visual style, so use v3.0 i2v
- Motion transfer required: A reference performance video defines the desired motion, so use motion control
- Cost and speed priority: Cost and speed matter more than maximum quality and multi-shot capability, so use v2.5 Turbo t2v
Copy link to headingConclusion
Kling v3.0 Text-to-Video is the v3.0 text-to-video model in the Kling family. It combines multi-shot narrative output, physics-aware motion, longer total duration, and native multilingual audio. Pick it when you need several scenes with sound from one narrative prompt.
Copy link to headingFrequently Asked Questions
What is multi-shot generation in Kling v3.0 Text-to-Video?
A single prompt produces up to five distinct video shots in one inference pass. The shots form a continuous edited sequence. This enables narrative multi-scene videos without manual clip stitching.
What is the maximum output duration?
Up to 15 seconds total across all shots, extended from 10 seconds in earlier Kling versions.
What languages does the native audio generation support in v3.0?
English, Chinese, Japanese, Korean, and Spanish, including accented variants.
How does v3.0 t2v differ from v2.6 t2v?
V3.0 adds multi-shot narrative generation, extends maximum duration to 15 seconds, improves physics simulation, and expands audio language support compared to v2.6.
How is total video cost calculated for multi-shot output?
This page lists the current rates. Multiple providers can serve Kling v3.0 Text-to-Video, so AI Gateway surfaces live pricing rather than a single fixed figure.
Does v3.0 t2v support vertical video output?
Yes. The 9:16 aspect ratio is supported alongside 16:9 and 1:1.