Kling VIDEO 4.0

Kling VIDEO 4.0 is a unified video model that generates 1080p clips of up to 30 seconds from text, images, reference videos, and reusable elements. It follows up to 10 keyframes per clip, including first, middle, and last frames, and combines reference images, reference videos, and elements in a single request to hold subjects, style, and motion. It also edits an existing video from a prompt, which suits long narrative shots, storyboard-driven sequences, and reference-driven production work.

Complete technical specification for integration
Ready-to-use code snippets for common workflows
Step-by-step tutorials for advanced use cases
← All GuidesLong takes and multi-shot sequences
How to use Kling VIDEO 4.0's 30-second range for complete stories, either as a timed shot list with hard cuts or as one continuous take with no cuts at all.
Introduction
Kling VIDEO 4.0 generates up to 30 seconds in a single request, long enough for a complete ad or a short scene with a beginning and an end. Multi-shot is on by default: given a long brief, the model splits it into shots and paces them on its own. You can let it, write the cuts yourself, or ask for one unbroken take.
A 30-second commercial for white wireless earbuds, realistic, bright and clean, five shots joined by hard cuts. Shot 1, 0–5 s: macro close-up as the matte white charging case opens on a light gray desk and the two earbuds lift slightly in their slots. Shot 2, 5–11 s: a young man in a plain green hoodie with no logo puts one earbud in on a crowded subway platform, and the noise of the station drops away as he closes his eyes. Shot 3, 11–18 s: tracking shot beside him as he jogs across a park bridge at sunrise, the earbud staying in place. Shot 4, 18–24 s: he takes a call while walking through a busy outdoor market and says in clear American English: "Yeah, I can hear you perfectly." Shot 5, 24–30 s: the earbuds settle back into the case on the desk and the lid closes with a soft click, holding on the closed case. The same man, hoodie, and earbuds stay consistent in every shot. Audio: station noise that fades when the earbud goes in, footsteps and birdsong on the bridge, market chatter, the click of the case, a light electronic music bed, no subtitles.
Because the whole sequence is one generation, the man and the earbuds stay the same person and the same product across every cut, and the sound runs continuously underneath.
Request shape
Length is set with duration, any whole number of seconds from 3 to 30. The structure of the clip lives in the prompt:
import { createClient } from '@runware/sdk'
const client = await createClient({ apiKey: process.env.RUNWARE_API_KEY })
await client.connect()
const [result] = await client.run({
model: 'klingai:kling-video@4.0',
positivePrompt: 'A 30-second commercial for white wireless earbuds, five shots joined by hard cuts. Shot 1, 0–5 s: macro close-up as the charging case opens on a light gray desk. Shot 2, 5–11 s: a young man in a plain green hoodie with no logo puts one earbud in on a crowded subway platform. Shot 3, 11–18 s: tracking shot beside him as he jogs across a park bridge at sunrise. Shot 4, 18–24 s: he takes a call in a busy outdoor market. Shot 5, 24–30 s: the earbuds settle back into the case and the lid closes. The same man, hoodie, and earbuds stay consistent in every shot. Audio: station noise, birdsong, market chatter, the click of the case, a light electronic music bed, no subtitles.',
width: 1920,
height: 1080,
duration: 30
})import asyncio
import os
from runware import Runware
async def main():
async with Runware(api_key=os.environ["RUNWARE_API_KEY"]) as client:
results = await client.run({
"model": "klingai:kling-video@4.0",
"positivePrompt": "A 30-second commercial for white wireless earbuds, five shots joined by hard cuts. Shot 1, 0–5 s: macro close-up as the charging case opens on a light gray desk. Shot 2, 5–11 s: a young man in a plain green hoodie with no logo puts one earbud in on a crowded subway platform. Shot 3, 11–18 s: tracking shot beside him as he jogs across a park bridge at sunrise. Shot 4, 18–24 s: he takes a call in a busy outdoor market. Shot 5, 24–30 s: the earbuds settle back into the case and the lid closes. The same man, hoodie, and earbuds stay consistent in every shot. Audio: station noise, birdsong, market chatter, the click of the case, a light electronic music bed, no subtitles.",
"width": 1920,
"height": 1080,
"duration": 30
})
asyncio.run(main())curl https://api.runware.ai/v1 \
-H "Authorization: Bearer $RUNWARE_API_KEY" \
-H "Content-Type: application/json" \
-d '[
{
"taskType": "videoInference",
"taskUUID": "8d9e0f1a-2b3c-4d4e-9f5a-6b7c8d9e0f1a",
"model": "klingai:kling-video@4.0",
"positivePrompt": "A 30-second commercial for white wireless earbuds, five shots joined by hard cuts. Shot 1, 0–5 s: macro close-up as the charging case opens on a light gray desk. Shot 2, 5–11 s: a young man in a plain green hoodie with no logo puts one earbud in on a crowded subway platform. Shot 3, 11–18 s: tracking shot beside him as he jogs across a park bridge at sunrise. Shot 4, 18–24 s: he takes a call in a busy outdoor market. Shot 5, 24–30 s: the earbuds settle back into the case and the lid closes. The same man, hoodie, and earbuds stay consistent in every shot. Audio: station noise, birdsong, market chatter, the click of the case, a light electronic music bed, no subtitles.",
"width": 1920,
"height": 1080,
"duration": 30
}
]'runware run klingai:kling-video@4.0 \
positivePrompt="A 30-second commercial for white wireless earbuds, five shots joined by hard cuts. Shot 1, 0–5 s: macro close-up as the charging case opens on a light gray desk. Shot 2, 5–11 s: a young man in a plain green hoodie with no logo puts one earbud in on a crowded subway platform. Shot 3, 11–18 s: tracking shot beside him as he jogs across a park bridge at sunrise. Shot 4, 18–24 s: he takes a call in a busy outdoor market. Shot 5, 24–30 s: the earbuds settle back into the case and the lid closes. The same man, hoodie, and earbuds stay consistent in every shot. Audio: station noise, birdsong, market chatter, the click of the case, a light electronic music bed, no subtitles." \
width=1920 \
height=1080 \
duration=30{
"taskType": "videoInference",
"taskUUID": "8d9e0f1a-2b3c-4d4e-9f5a-6b7c8d9e0f1a",
"model": "klingai:kling-video@4.0",
"positivePrompt": "A 30-second commercial for white wireless earbuds, five shots joined by hard cuts. Shot 1, 0–5 s: macro close-up as the charging case opens on a light gray desk. Shot 2, 5–11 s: a young man in a plain green hoodie with no logo puts one earbud in on a crowded subway platform. Shot 3, 11–18 s: tracking shot beside him as he jogs across a park bridge at sunrise. Shot 4, 18–24 s: he takes a call in a busy outdoor market. Shot 5, 24–30 s: the earbuds settle back into the case and the lid closes. The same man, hoodie, and earbuds stay consistent in every shot. Audio: station noise, birdsong, market chatter, the click of the case, a light electronic music bed, no subtitles.",
"width": 1920,
"height": 1080,
"duration": 30
}Response
[
{
"taskType": "videoInference",
"taskUUID": "8d9e0f1a-2b3c-4d4e-9f5a-6b7c8d9e0f1a",
"videoUUID": "3c4d5e6f-7a8b-4c9d-8e0f-1a2b3c4d5e6f",
"videoURL": "https://vm.runware.ai/video/os/a14d18/ws/2/vi/3c4d5e6f-7a8b-4c9d-8e0f-1a2b3c4d5e6f.mp4"
}
]The longer the clip, the more the prompt has to carry. A 30-second brief that only describes a mood leaves every shot decision to the model, so write the plan out once the clip runs past a few seconds.
Writing a shot list
A shot list gives each shot a number, a time range, and one action, and says how shots are joined. "Hard cuts" tells the model to cut, and the time ranges tell it where:
A 20-second vertical travel reel for a weekend city break, four shots joined by hard cuts. Shot 1, 0–5 s: close-up, hands zip a small carry-on suitcase closed on a hotel bed. Shot 2, 5–10 s: wide, a yellow tram climbs a steep cobblestone street between pastel buildings, filmed from the sidewalk. Shot 3, 10–15 s: following shot behind a woman in a linen shirt as she walks down a narrow alley lined with laundry lines. Shot 4, 15–20 s: wide, a hilltop viewpoint over terracotta rooftops and a river at sunset, the woman leaning on the railing. Warm natural light. Audio: a zipper, the tram bell and rails, footsteps on stone, a soft breeze at the viewpoint, no music, no voices, no subtitles.
Make the time ranges add up to the full duration. Four five-second shots in a 20-second clip leave no gap for the model to fill with something you did not ask for. Each shot also names its framing, close-up, wide or following, so every cut lands on a new view.
One continuous take
For walkthroughs and anything else where a cut would break the illusion, ask for the opposite: "one continuous shot, no cuts". The time ranges stay, but now they describe where the camera is at each moment instead of where a new shot starts:
A 20-second real estate walkthrough of a modern two-bedroom apartment, filmed as one continuous gimbal shot with no cuts. 0–5 s: the camera enters through the front door into a bright open-plan living room with oak floors and a gray sofa. 5–10 s: it glides past the kitchen island with white stone counters and pendant lights. 10–15 s: it turns down the short hallway into the main bedroom with a made bed and linen curtains. 15–20 s: it slows at the bedroom window and holds on the view of the city park outside. Steady eye-level movement at walking pace, natural daylight. Audio: soft footsteps, quiet room tone, no music, no voices, no subtitles.
A continuous take is a camera path. Describe the route through the space in order (door, living room, kitchen, hallway, bedroom, window) and the speed of travel, and end on something worth holding.
Keeping things consistent
Within one generation, consistency comes from saying what must not change. The hero prompt ends its shot list with "the same man, hoodie, and earbuds stay consistent in every shot", which matters most when shots jump between locations.
Across separate generations, the prompt alone cannot hold a character or a product steady. For a series of clips, or a story longer than 30 seconds, anchor them with reference images, an element, or keyframes that pin the opening and closing frames.
Tips
-
Write the cuts once the clip gets long. Past a few seconds, an unplanned clip is a sequence of choices you did not make.
-
Give every shot a number, a time range and one action. That is all the model needs to place a cut.
-
Make the ranges add up to the duration. Gaps get filled with shots you did not ask for.
-
Say "no cuts" for walkthroughs. Then use the time ranges to describe the camera path instead.
-
State what stays the same. Name the character and the product that must not change between shots.
-
Reach for references beyond one clip. A prompt keeps things consistent within a generation, not across several.