Claude Opus 5.5 is live on SeedRouter

Video

Kling 4.0 Flash

View Markdown

Generate 3–20 second Kling 4.0 Flash clips at 720p with sound from text, reference images, reference videos and reusable character or prop elements.

Kling 4.0 Flash is the lighter member of Kuaishou's Kling 4.0 family. On SeedRouter it covers text to video and reference-based generation: up to 10 reference images, up to 5 reference videos and up to 7 elements (named subjects built from 2–4 images or one short video), each mentioned in the prompt. Every clip is 3–20 seconds at 720p with sound. Send the request, keep the returned task ID, and read the finished video from the task. Media goes in as URLs.

Model IDs

Model IDInputsResolutionLength
kling-4-0-flashtext, reference images, reference videos, elements720p3–20 seconds

See the model page for current prices.

Quick example

curl https://api.seedrouter.ai/v1/videos/generations \
  -H "Authorization: Bearer $SEEDROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "kling-4-0-flash",
    "prompt": "A paper boat drifts down a rain-filled city gutter at dusk, the camera skimming the water beside it past glowing shop windows, raindrops ticking on the surface. No text, no logos.",
    "duration": 5,
    "aspect_ratio": "16:9"
  }'

Endpoint

POST https://api.seedrouter.ai/v1/videos/generations
HeaderValue
AuthorizationBearer YOUR_API_KEY
Content-Typeapplication/json

The response is a task ({"id": "task_...", "status": "processing"}), not the finished video. Poll GET /v1/tasks/{task_id} for the result. Keep API keys in server-side code.

Parameters

FieldTypeDefaultNotes
modelstringrequiredkling-4-0-flash
promptstringrequiredUp to 8,000 characters. Mention materials as @image_1, @video_1 or @<element name> (see Mentions).
durationinteger53–20 seconds of output.
resolutionenum720p720p is the only output.
aspect_ratioenumby inputauto, 16:9, 9:16, 1:1, 21:9. Left out: auto when any reference material is given, 16:9 otherwise.
image_urlsURL listnoneReference images, up to 10, mentioned as @image_1, @image_2, … in order.
video_urlsURL listnoneReference videos, up to 5, mentioned as @video_1, @video_2, … Billed at the video-input rate.
keep_original_soundbooleanfalseKeep the reference videos' own audio. Only takes effect with video_urls; without reference videos the clip always gets new sound.
elementsobject listnoneSubjects for this request, up to 7, mentioned as @name (see Elements).

Every clip comes with sound; there is no sound switch. There are no first, middle or last frame fields, no negative_prompt, watermark or standalone voices field: bind a voice to an element with voice_url. The schema is strict: unknown fields are rejected rather than ignored. callback_url is not available; poll the task instead.

Mentions

Every material you send is optional; with none, the request is plain text to video. Once you send materials, point at them from the prompt:

MaterialMentionLimit
image_urls@image_1, @image_2, …10 images
video_urls@video_1, @video_2, …5 videos
elements@name7 elements, at most 3 of them video elements

Every @ followed by a letter, digit, underscore or Chinese character must name a material of this request, or the request is rejected before anything is charged. Names are matched longest first and without regard to case. A name that ends in a letter, digit or underscore cannot run straight into another one: @image_12 with a single image is rejected; write @image_1 2 or @image_1,.

Reference videos plus video elements are at most 5, and images, videos and elements together at most 15.

{
  "model": "kling-4-0-flash",
  "prompt": "The dancer from @image_1 performs the routine of @video_1 on a rooftop at dusk",
  "image_urls": ["https://example.com/dancer.png"],
  "video_urls": ["https://example.com/routine.mp4"],
  "keep_original_sound": false,
  "duration": 8
}

Elements

An element is a named subject you can reuse in the prompt. There are two kinds:

FieldImage elementVideo element
namerequiredrequired
typeimage (default)video
image_urls2–4 views, the first being the main viewnot accepted
video_urlnot acceptedone 3–8 second single-shot video of a character, shortest side at least 700 pixels
tagcharacter, animal, prop, costume, scene, effect or others; inferred when left outcharacter only
descriptionup to 100 charactersup to 100 characters
voice_urlreference audio; characters only (tag character or left out)reference audio; left out, the video's own speech is used

Names are 1–20 letters, digits, underscores or Chinese characters, unique without regard to case. image_N, video_N, keyframe_N, object_N, audio_N, first_frame and last_frame are reserved.

{
  "model": "kling-4-0-flash",
  "prompt": "@Mira opens the shop door and greets the morning crowd",
  "elements": [
    {
      "name": "Mira",
      "image_urls": ["https://example.com/mira-front.png", "https://example.com/mira-side.png"],
      "tag": "character",
      "description": "baker in a flour-dusted apron"
    }
  ],
  "aspect_ratio": "9:16",
  "duration": 6
}

Media inputs

Images, videos and audio are public HTTP(S) URLs. Base64 data URIs are not accepted: upload the files to your own storage and pass their URLs. Reference videos and video elements together must be 2–20 seconds long; their length is read when the request is accepted, and a video whose length cannot be read is rejected before anything is charged.

Pricing dimensions

Check the model pricing section for current rates. Kling 4.0 Flash is billed per second of 720p video:

text, reference images, image elements:   cost = duration × standard rate
reference videos or video elements:       cost = (output + max(output, input)) × video-input rate

input is the summed length of the reference videos and video elements, rounded up to whole seconds. It is measured when the request is accepted, so the amount reserved is the amount charged. Example: a 5-second clip guided by a 7.2-second reference video bills 5 + 8 = 13 seconds; with a 3-second reference video it bills 5 + 5 = 10 seconds. Failed tasks are not charged.

Output schema

Submission returns the task:

{"id": "task_...", "model": "kling-4-0-flash", "status": "processing", "created_at": 1789689600}

Get the task

GET https://api.seedrouter.ai/v1/tasks/{task_id}

Poll every 10–20 seconds until status is completed or failed. A network timeout while polling does not mean generation failed: keep the task ID and resume checking it. Do not create another task to check progress.

Completed task

{
  "id": "task_...",
  "model": "kling-4-0-flash",
  "status": "completed",
  "created_at": 1789689600,
  "finished_at": 1789689800,
  "output": {
    "video_url": "https://static.seedrouter.ai/media/tasks/task_example/0.mp4"
  }
}

In our tests 5-second clips came back as MP4 (H.264) at 1280 × 720 with a stereo AAC track, 91–103 seconds after submission; the file runs about one frame longer than duration (5.04 seconds for 5).

Errors

Requests rejected before a task is created return an HTTP error with an error object and are not charged. A task that fails after acceptance returns HTTP 200 when queried, with status: "failed" and an error object.

See the shared error catalog for codes, HTTP statuses, and retry guidance.

{
  "id": "task_...",
  "model": "kling-4-0-flash",
  "status": "failed",
  "error": {
    "code": 60001,
    "message": "The request was rejected by the content policy. Please revise the prompt or input images."
  }
}

If submission itself times out, check your tasks before submitting again: the first request may have been accepted.

Tips

  • Describe subject, place, camera move, light and sound; the clip's audio follows the prompt.
  • Use Flash to try prompts, ratios and references cheaply, then move the shot that works to Kling 4.0 when you need 1080p, keyframes, editing or extension.
  • Give a recurring character an element with two or three clear views instead of one reference image.
  • Add no text, no logos to keep invented marks out.