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 GuidesDialogue and on-screen text
How to write spoken lines, languages and accents for Kling VIDEO 4.0, and how to get readable signs and burned-in subtitles that hold steady while the camera moves.
Introduction
Kling VIDEO 4.0 generates speech with lip sync in Chinese, English, Japanese, Korean, Spanish, Portuguese, German, French and Hindi, and it renders readable text inside the frame. Both come from the prompt. A spoken line is written in quotation marks, and a sign or a subtitle is spelled out exactly as it should appear.
A vertical selfie-style video of the founder of a small skincare brand, a woman in her early thirties with short black hair and a linen apron, standing in her bright packing studio with shelves of amber bottles behind her. She looks into the lens and says in warm, natural American English, at a relaxed pace: "We make every batch in small runs, so it's always fresh when it reaches you." She smiles at the end. Handheld phone camera, natural daylight. Audio: her voice clear and close, quiet room tone, no music, no subtitles.
Request shape
There is no separate speech parameter. The line goes inside positivePrompt, next to the description of the shot:
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 vertical selfie-style video of the founder of a small skincare brand standing in her bright packing studio. She looks into the lens and says in warm, natural American English, at a relaxed pace: "We make every batch in small runs, so it\'s always fresh when it reaches you." She smiles at the end. Audio: her voice clear and close, quiet room tone, no music, no subtitles.',
width: 1080,
height: 1920,
duration: 8
})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 vertical selfie-style video of the founder of a small skincare brand standing in her bright packing studio. She looks into the lens and says in warm, natural American English, at a relaxed pace: \"We make every batch in small runs, so it's always fresh when it reaches you.\" She smiles at the end. Audio: her voice clear and close, quiet room tone, no music, no subtitles.",
"width": 1080,
"height": 1920,
"duration": 8
})
asyncio.run(main())curl https://api.runware.ai/v1 \
-H "Authorization: Bearer $RUNWARE_API_KEY" \
-H "Content-Type: application/json" \
-d '[
{
"taskType": "videoInference",
"taskUUID": "2b3c4d5e-6f7a-4b8c-9d0e-1f2a3b4c5d6e",
"model": "klingai:kling-video@4.0",
"positivePrompt": "A vertical selfie-style video of the founder of a small skincare brand standing in her bright packing studio. She looks into the lens and says in warm, natural American English, at a relaxed pace: \"We make every batch in small runs, so it's always fresh when it reaches you.\" She smiles at the end. Audio: her voice clear and close, quiet room tone, no music, no subtitles.",
"width": 1080,
"height": 1920,
"duration": 8
}
]'runware run klingai:kling-video@4.0 \
positivePrompt="A vertical selfie-style video of the founder of a small skincare brand standing in her bright packing studio. She looks into the lens and says in warm, natural American English, at a relaxed pace: \"We make every batch in small runs, so it's always fresh when it reaches you.\" She smiles at the end. Audio: her voice clear and close, quiet room tone, no music, no subtitles." \
width=1080 \
height=1920 \
duration=8{
"taskType": "videoInference",
"taskUUID": "2b3c4d5e-6f7a-4b8c-9d0e-1f2a3b4c5d6e",
"model": "klingai:kling-video@4.0",
"positivePrompt": "A vertical selfie-style video of the founder of a small skincare brand standing in her bright packing studio. She looks into the lens and says in warm, natural American English, at a relaxed pace: \"We make every batch in small runs, so it's always fresh when it reaches you.\" She smiles at the end. Audio: her voice clear and close, quiet room tone, no music, no subtitles.",
"width": 1080,
"height": 1920,
"duration": 8
}Response
[
{
"taskType": "videoInference",
"taskUUID": "2b3c4d5e-6f7a-4b8c-9d0e-1f2a3b4c5d6e",
"videoUUID": "7e8f9a0b-1c2d-4e3f-8a4b-5c6d7e8f9a0b",
"videoURL": "https://vm.runware.ai/video/os/a14d18/ws/2/vi/7e8f9a0b-1c2d-4e3f-8a4b-5c6d7e8f9a0b.mp4"
}
]The quotation marks inside the prompt are escaped in JSON. Whatever sits between them is what the character says, word for word.
Writing a spoken line
A line works best when the prompt answers three questions: who says it, the exact words, and how it sounds. The speaker can be named by role or position ("the founder", "the woman on the left"). The words go in quotes. The delivery is where most of the character comes from: age, tone, pace and emotion, as in "warm, natural American English, at a relaxed pace".
Match the line to the clip. An eight-second clip comfortably holds one or two short sentences. A speaker who has to rush a paragraph loses the natural pauses that make the delivery believable, and a line much shorter than the clip can be padded with invented words to fill the time. For longer copy, raise duration rather than packing more words into the same clip.
Languages and accents
To get speech in another language, write the line in that language and name the language in the sentence that introduces it. The same greeting from a hotel front desk, in four versions:
A hotel receptionist in her twenties with a neat low bun and a navy blazer stands behind a light wood front desk in a bright modern lobby and greets the guest in front of her with a friendly smile. Medium shot at eye level, steady camera. She says in natural, clear Spanish: "Bienvenidos. Su habitación está lista en el quinto piso." Audio: her voice clear, soft lobby ambience, no music, no subtitles.
A hotel receptionist in her twenties with a neat low bun and a navy blazer stands behind a light wood front desk in a bright modern lobby and greets the guest in front of her with a friendly smile. Medium shot at eye level, steady camera. She says in natural, clear Japanese: "ようこそ。お部屋は五階にご用意しております。" Audio: her voice clear, soft lobby ambience, no music, no subtitles.
A hotel receptionist in her twenties with a neat low bun and a navy blazer stands behind a light wood front desk in a bright modern lobby and greets the guest in front of her with a friendly smile. Medium shot at eye level, steady camera. She says in natural, clear Hindi: "स्वागत है। आपका कमरा पाँचवीं मंज़िल पर तैयार है।" Audio: her voice clear, soft lobby ambience, no music, no subtitles.
A hotel receptionist in her twenties with a neat low bun and a navy blazer stands behind a light wood front desk in a bright modern lobby and greets the guest in front of her with a friendly smile. Medium shot at eye level, steady camera. She says in clear English with a British accent: "Welcome. Your room is ready on the fifth floor." Audio: her voice clear, soft lobby ambience, no music, no subtitles.
Accents belong in the delivery note. English takes American, British and Indian accents, and Chinese takes regional accents and dialects such as Cantonese. Name the one you want in the same place you name the language.
Each take above is a separate generation from text, so the receptionist herself changes between them. To keep one presenter across every language, pass her in as a reference image or save her as an element, and change only the line.
Two or more speakers
Conversations need two extra pieces of information: which person says which line, and when. Assign every line to someone the viewer can identify, put each turn on the clock, and say that people take turns:
A real estate agent in a gray suit shows a young couple around a sunny, empty two-bedroom apartment with white walls and oak floors. 0–4 s: medium shot of all three by the living room window. The agent gestures to the view and says in clear, upbeat American English: "You get morning sun in here all year round." 4–8 s: cut to a two-shot of the couple. The woman turns to her partner and asks: "Could we fit a desk by that window?" 8–12 s: cut back to the agent, who nods and answers: "Easily, there's almost ten feet of wall." Only one person speaks at a time, with no overlapping dialogue, and each person has a distinct voice. Audio: clear voices, the faint echo of an empty room, no music, no subtitles.
The cuts in the prompt follow the dialogue: the camera is on whoever is talking. State "only one person speaks at a time" and "each person has a distinct voice" outright, since they keep lines from overlapping and voices from blending.
Burned-in subtitles
The model can draw subtitles straight into the frame. This is the opposite of the "no subtitles" exclusion from Prompting: when you do want them, specify the position, the style, and the timing of every line, and make each subtitle match its spoken line word for word.
A vertical fitness clip: a female trainer in a teal sports top and black leggings does jumping jacks on a rooftop gym deck at sunrise, facing the camera. She counts out loud in energetic American English. 0.5–1.5 s: "One!" 2.0–3.0 s: "Two!" 3.5–4.5 s: "Three!" 5.0–6.0 s: "Four!" 7.0–9.0 s: "Great job, keep going!" Burn in English subtitles at the bottom center inside the title-safe area, 12% above the bottom edge, in bold white sans-serif text on a rounded black panel, one line at a time, each subtitle appearing and disappearing in sync with its spoken line. Audio: her voice, footsteps on the deck, light wind, no music.
The timestamps do double duty: they schedule the speech and tell the model when each subtitle appears. Keep the panel inside the title-safe area and to one or two lines, the same rules a human editor would follow for a vertical platform.
Text in the scene
Signs and packaging follow the same principle as dialogue. Spell the text exactly, in quotes, and say where it sits. If the camera moves, ask for the text to stay fixed to its surface:
A slow lateral dolly past a teal food truck parked on a city street at lunchtime. A large hand-painted sign on its side reads "TACO LIBRE" in bold yellow letters, and a chalkboard menu by the window reads "3 TACOS $9". The text stays sharp, correctly spelled, and fixed to the truck as the camera moves. A cook hands a paper tray of tacos through the window to a customer. Audio: street ambience, sizzling from the grill, light chatter, no music, no subtitles.
The store name and the price both held their spelling through the dolly. Keep in-scene text to strings that short, and add longer copy in post.
Tips
-
Quote every line exactly. The words between the quotation marks are what gets spoken.
-
Describe the voice, not just the words. Age, tone, pace and emotion turn a line into a performance.
-
Write the line in its own language. Name the language and, if it matters, the accent in the same sentence.
-
Schedule conversations. Assign each line to a speaker and a time slot, and state that only one person speaks at a time.
-
Ask for subtitles with a full spec. Position, style, and a time range per line that matches the speech.
-
Keep in-scene text short. A name and a price held their spelling through a camera move.