Introduction
Kling 3.0 Turbo Image to video takes an opening frame and a prompt describing what happens next, and returns a clip of 3 to 15 whole seconds with sound generated to match. The frame anchors the whole shot: Kling 3.0 Turbo keeps the person, the outfit and the setting from your image and invents the motion, the camera and the audio.
Choose a Kling 3.0 Turbo mode by starting material
| What you have at the start | Mode |
|---|---|
| a written scene | Kling 3.0 Turbo Text to video |
| an approved opening image | Kling 3.0 Turbo Image to video |
Key features & highlights
The opening frame anchors the whole clip
In our tests the first frame's face and outfit carried through every clip: a first-person hand-hold through a night market kept the same partner's face for the full run, and a couple on a scooter kept their jackets and the bike's color from the first frame to the last. Write only what happens after the frame.
Sound arrives synced to the motion
There is no aspect_ratio field on this endpoint - the clip's frame shape follows your source image, so crop it to the shape you want before you upload. Sound always renders and, in our tests, matched the visible action: engine noise and wind on the scooter clip, market chatter and a called-out line on the night-market clip.
Request parameters
| Parameter | Required | Description |
|---|---|---|
prompt | Yes | Describe only what happens after the frame: the action, the camera move and, since audio always renders, the dialogue or ambient sound. at least 1 characters · at most 2500 characters |
image_url | Yes | Opening frame. The person, outfit and setting in this image hold through the clip - only the motion, camera and sound are new. |
resolution | No | 720p or 1080p. Higher tiers cost more per second. |
duration_seconds | No | Whole seconds, 3 to 15. Drives the price along with resolution. |
Pricing
Billed per second of output; resolution and length both affect the rate.
| Specification | Price |
|---|---|
| $0.112 / second |
| $0.14 / second |
Use cases
Turning an approved still into a moving, scored beat
Animate a character, product or location you've already locked in a still, instead of describing the whole scene from nothing, when the exact look has to be precise.
POV clips that start with a single frame
A first-person opening frame plus a short prompt about the action is enough for a first-person tracking shot with dialogue and ambient sound that matches it. Our night-market test kept the same partner's face through a hand-held walk, with market chatter and a called-out line arriving synced to the motion.
Bringing a couple or duo shot to life
A still of two people - on a bike, at a table, walking together - holds both faces and outfits while the prompt supplies what they do and say next, which is faster than re-describing two people from a blank prompt in text-to-video.
Prompt guide & pro tips
Describe the next beat, not the whole scene
Since the frame already sets the look, the prompt only needs the motion, the camera and the sound: what the subject does next, how the camera follows, and - because audio always generates - the dialogue or ambient sound you want. Re-describing the outfit, the vehicle or the setting the frame already shows just wastes words the model could spend on the action.
Crop before you upload
There is no field to choose an aspect ratio here: the output takes the shape of your source image. Crop to 16:9, 9:16 or square before you upload if the frame shape matters to you.
Name a sound source that's actually in frame
In our tests, audio tied to something visible - an engine, wind, market chatter - rendered more consistently than a generic mood cue. If the frame shows a scooter or a crowd, name the sound that scene would actually make rather than describing an ambience with nothing on screen to produce it.
API quick start
# Generate the idempotency key once; reuse it when retrying after a lost response.
export SPICY_IDEMPOTENCY_KEY="${SPICY_IDEMPOTENCY_KEY:-$(uuidgen)}"
curl -X POST https://api.spicyapi.ai/api/v1/jobs/createTask \
-H "Authorization: Bearer $SPICY_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $SPICY_IDEMPOTENCY_KEY" \
-d '{
"model": "kling/3.0-turbo/image-to-video",
"input": {
"duration_seconds": 5,
"image_url": "https://example.com/reference.png",
"prompt": "A slow aerial shot drifting over a misty pine forest at sunrise",
"resolution": "720p"
}
}'
# Copy data.taskId from the response into TASK_ID, then poll the status.
TASK_ID="TASK_ID_FROM_RESPONSE"
curl "https://api.spicyapi.ai/api/v1/jobs/recordInfo?taskId=$TASK_ID" \
-H "Authorization: Bearer $SPICY_API_KEY"
See the API reference for authentication, the complete schema, polling, and error handling.











