Kling Video O3 4k
kwaivgi/kling-video/o3/4k/reference-to-videoKling Video O3 4k by KwaiVGI - animate still images into dynamic videos with AI. Transform photos into cinematic clips with natural motion, camera movement, and optional audio generation.
- Base price
- $2.10USD / run
- Execution
- async
- Model type
- video
- Input fields
- 9
Try the model
Playground
PNG, JPEG, WebP, or GIF · 20 MiB maximum
PNG, JPEG, WebP, or GIF · 20 MiB maximum each
PNG, JPEG, WebP, or GIF · 20 MiB maximum
Your output will appear here
Complete the inputs, then click Run.
Specifications
Pricing
- Base price
- $2.10 / run
- Billing formula
- params.duration * 0.42
Context & modalities
- Input
- Schema-defined
- Output
- video
Capabilities
- Chat
- Not supported
- Vision
- Not supported
- Reasoning
- Not supported
- Structured output
- Not supported
- Function calling
- Not supported
- Audio input
- Not supported
Access
- Provider
- KwaiVGI
- Model ID
- kwaivgi/kling-video/o3/4k/reference-to-video
- Execution
- async
- API
- Unified Run API
- Endpoint
- /v1/run
API README
Kling Video O3 4k
reference to video in the Kling Video lineup is built to build a moving scene around supplied visual references. The kling video o3 4k reference to video configuration combines that transformation with the quality and motion profile represented by this exact model version, so teams can choose it deliberately among adjacent family variants. It is useful when the input already establishes part of the creative intent and the model must supply a polished result rather than a generic media conversion, with subject identity, scene logic, visual hierarchy, and the delivery goal kept explicit.
For production work with kwaivgi/kling-video/o3/4k/reference-to-video, begin with the non-negotiable content, then describe the desired change, framing, action, atmosphere, and finishing cues in that order. Separate what must remain recognizable from what may vary, and prefer concrete nouns and observable actions over abstract praise. That structure makes outputs easier to compare across storyboard passes, campaign variants, catalog assets, and other repeatable creative pipelines.
Highlights
Reference identity retention. Carries recognizable characters, products, costumes, or design cues into motion.
Cross-reference composition. Brings multiple visual ingredients into one directed scene.
Narrative motion generation. Creates action, camera movement, and environment response around references.
kling video o3 4k reference to video asset continuity. Supports recurring visual identities across storyboard and campaign variations. This is the defining creative strength of the kling video o3 4k reference to video configuration.
Pricing
| Duration | Price per generated clip |
|---|---|
| 3 seconds | $1.2600 |
| 4 seconds | $1.6800 |
| 5 seconds | $2.1000 |
| 6 seconds | $2.5200 |
| 7 seconds | $2.9400 |
| 8 seconds | $3.3600 |
| 9 seconds | $3.7800 |
| 10 seconds | $4.2000 |
| 11 seconds | $4.6200 |
| 12 seconds | $5.0400 |
| 13 seconds | $5.4600 |
| 14 seconds | $5.8800 |
| 15 seconds | $6.3000 |
Billing follows params.duration * 0.42: multiply generated seconds by the $0.4200 per-second rate.
When to Use
| ✅ Good fit | ❌ Consider alternatives |
|---|---|
| The model's named workflow matches the source material and intended output | A different input modality or model route is required |
| A managed asynchronous result is suitable for the production pipeline | A synchronous, interactive editor is essential |
| The documented controls cover the required duration, framing, or format | The project needs controls outside this endpoint's schema |
| Creative iteration benefits from a repeatable request structure | Exact deterministic pixels, frames, geometry, or samples are mandatory |
| A finished downloadable media asset is the desired deliverable | Editable source layers or a native project file are required |
Prompt Guide
For image-conditioned generation, state the intended result first, then add the subject or source treatment, progression, style, and delivery constraints. Keep one creative variable per phrase, use the documented field names for controls, and change one setting at a time when comparing results.
{
"aspect_ratio": "16:9",
"duration": 8,
"image": "https://static.sandbase.ai/examples/mirrored/d5f4a0f0f119-NaslJIC7F2WodS6DFZRRJ.png",
"images": [
[
"https://example.com/reference.png"
]
],
"prompt": "@Element1 and @Element2 enters the scene from two sides. Elephant starts to play with the ball"
}
Technical Specs
| Spec | Value |
|---|---|
| Model ID | kwaivgi/kling-video/o3/4k/reference-to-video |
| Inputs | aspect_ratio, duration, end_image, generate_audio, image, images, multi_prompt, prompt, shot_type |
| Required inputs | prompt, image |
| Output fields | content_type, url |
| Execution | Async (submit, then poll for result) |
| Duration | 3 / 4 / 5 / 6 / 7 / 8 / 9 / 10 / 11 / 12 / 13 / 14 / 15 |
| Aspect Ratio | 16:9 / 9:16 / 1:1 |
Related Models
Start building
Send your first request
OpenAI-compatible endpoint with unified authentication and usage tracking.
# The quoted heredoc keeps Unicode and shell metacharacters unchanged.
result=$(curl --fail-with-body --silent \
-X POST "https://api.sandbase.ai/v1/run" \
-H "Authorization: Bearer $SANDBASE_API_KEY" \
-H "Content-Type: application/json" \
--data-binary @- <<'SANDBASE_JSON'
{
"model": "kwaivgi/kling-video/o3/4k/reference-to-video",
"image": "https://static.sandbase.ai/examples/mirrored/d5f4a0f0f119-NaslJIC7F2WodS6DFZRRJ.png",
"prompt": "@Element1 and @Element2 enters the scene from two sides. Elephant starts to play with the ball",
"duration": 8,
"end_image": "https://static.sandbase.ai/examples/mirrored/b5db8ef4ab4d-BwHi22qoQnqaTNMMhe533.png",
"shot_type": "customize",
"generate_audio": false
}
SANDBASE_JSON
)
run_id=$(printf '%s' "$result" | jq -r .id)
for attempt in $(seq 1 120); do
status=$(printf '%s' "$result" | jq -r .status)
case "$status" in completed|failed|timeout) break ;; esac
sleep 2
result=$(curl --fail-with-body --silent \
-H "Authorization: Bearer $SANDBASE_API_KEY" \
"https://api.sandbase.ai/v1/run/$run_id")
done
status=$(printf '%s' "$result" | jq -r .status)
[ "$status" = completed ] || { echo "Generation ended: $status" >&2; exit 1; }
printf '%s\n' "$result"Choose your model
Compare models
| Model | Context | Input / 1M | Output / 1M | Released |
|---|---|---|---|---|
Kling Video O3 4kThis model KwaiVGI | — | — | — | Apr 23, 2026 |
KwaiVGI | — | — | — | Jul 6, 2026 |
KwaiVGI | — | — | — | Jul 6, 2026 |
KwaiVGI | — | — | — | Jul 3, 2026 |
KwaiVGI | — | — | — | Jul 3, 2026 |
KwaiVGI | — | — | — | Jul 3, 2026 |
