Kling 4.0 Flash is the faster variant of Kuaishou's Kling 4.0. It makes 3 to 20 second clips at 720p with generated sound, from a text prompt or from up to 10 reference images in one request. Aspect ratios: auto, 16:9, 9:16, 1:1 and 21:9. The prompt can be up to 8,000 characters, enough to describe several events in order. You pay per second of video, sound included.
Compared with Kling 3.0 there is no resolution choice (720p only) and no start-end frame pair. In return you get longer shots, up to 20 s.
Best for
- Longer shots where the action unfolds step by step (up to 20 s)
- 9:16 reels and 21:9 cinematic frames from one model
- Product or character scenes built from reference images
- Drafts before you spend more on a 1080p model
How to write prompts
- Describe the action in order: who, what they do, what happens next. Long prompts help at 15-20 s.
- Sound is generated automatically - say what should be heard (steps, rain, crowd).
- Put reference images in
image_urls- one character or product per image works best. - On-screen text and signs are unreliable - leave them out of the prompt.
FAQ
How much does Kling 4.0 Flash cost?
$0.187 per second. The price grows with clip length, sound is included. Failed generations are not charged.
What resolution does it output?
720p only. For 1080p or 4K use Kling 3.0.
Can I use a photo as the first frame?
In Jantaris the model takes images as references (up to 10), not as a locked first frame. To animate a specific photo, Kling 3.0 or Gemini Omni 1.2 fit better.
How to call Kling 4.0 Flash via API
curl https://jantaris.com/v1/generate?wait=60 \
-H "Authorization: Bearer $JANTARIS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "kling-4.0-flash",
"input": {
"prompt": "A slow dolly shot through a neon-lit night market in the rain, reflections on wet asphalt, cinematic",
"aspect_ratio": "16:9",
"resolution": "720p",
"duration": 5
}
}'import os, time, requests
API = "https://jantaris.com/v1"
H = {"Authorization": f"Bearer {os.environ['JANTARIS_API_KEY']}"}
task = requests.post(f"{API}/generate", headers=H, json={
"model": "kling-4.0-flash",
"input": {
"prompt": "A slow dolly shot through a neon-lit night market in the rain, reflections on wet asphalt, cinematic",
"aspect_ratio": "16:9",
"resolution": "720p",
"duration": 5
}
}).json()
while task["status"] in ("queued", "running"):
time.sleep(3)
task = requests.get(f"{API}/tasks/{task['id']}", headers=H).json()
print(task["status"], task["cost"], [o["url"] for o in task["output"]])const API = "https://jantaris.com/v1";
const headers = { Authorization: `Bearer ${process.env.JANTARIS_API_KEY}`, "Content-Type": "application/json" };
let task = await (await fetch(`${API}/generate`, {
method: "POST",
headers,
body: JSON.stringify({
"model": "kling-4.0-flash",
"input": {
"prompt": "A slow dolly shot through a neon-lit night market in the rain, reflections on wet asphalt, cinematic",
"aspect_ratio": "16:9",
"resolution": "720p",
"duration": 5
}
}),
})).json();
while (task.status === "queued" || task.status === "running") {
await new Promise((r) => setTimeout(r, 3000));
task = await (await fetch(`${API}/tasks/${task.id}`, { headers })).json();
}
console.log(task.status, task.cost, task.output.map((o) => o.url));
Parameters
| Parameter | Type | Allowed | Default |
|---|---|---|---|
prompt * | string | ≤ 8000 chars | |
aspect_ratio | string | auto 16:9 9:16 1:1 21:9 | 16:9 |
resolution | string | 720p | 720p |
duration | integer | 3-20 | 5 |
image_urls | array | max 10 |
The same schema is available from GET /v1/models/kling-4.0-flash.























