imagestring
Optional first-frame image URL for image-to-video.
kwaivgi/kling-video/o3Kling O3 by Kuaishou is a single entry point for Kling 3.0 Omni video: text, image, reference, and video-guided generation in Standard, Pro, or 4K quality, with optional native audio.
Try the model
PNG, JPEG, WebP, or GIF · 20 MiB maximum
Customize your input with more control.
PNG, JPEG, WebP, or GIF · 20 MiB maximum
PNG, JPEG, WebP, or GIF · 20 MiB maximum each
Your output will appear here
Complete the inputs, then click Run.
A single endpoint for Kling O3: text-to-video, image-to-video (with optional end frame), reference images, and video reference in one schema. Pick the tier with resolution.
| Mode | Send |
|---|---|
| Text | prompt only |
| Frames | image, optional end_image |
| References | images (refer to them as @Image1, …) |
| Video reference | video, optional images |
| Field | Type | Default | Notes |
|---|---|---|---|
prompt | string, required | — | Up to 2,500 characters. |
resolution | standard / pro / 4k | standard | Tier: standard, pro, or 4k; sets the per-second rate. |
image | image URL | — | Optional first frame. |
video | video URL | — | Optional reference video. |
keep_original_sound | boolean | true | Keep the reference video's audio track. |
character_orientation | image / video | — | video follows the reference video's orientation (better for complex moves, up to 30s); image follows the image (better for camera moves, up to 10s). |
end_image | image URL | — | Optional last frame. |
images | image URL[] | — | Reference images, referred to as @Image1, @Image2, … in the prompt. |
duration | 3–15 | 5 | Output length in seconds. |
aspect_ratio | 16:9 / 9:16 / 1:1 | 16:9 | Output frame shape. |
generate_audio | boolean | true | Generate native audio with the clip. |
shot_type | customize / intelligent | customize | customize follows your multi_prompt shot list; intelligent lets the model plan the cuts. |
multi_prompt | object[] | — | Optional list of shots, each with its own prompt and duration. |
You pay per output second. Standard: $0.112 with audio, $0.084 without. Pro: $0.14 with audio, $0.112 without. 4K: $0.42. With a reference video: $0.126 (standard) or $0.168 (pro).
| Output | standard | pro | 4k |
|---|---|---|---|
| 5s with audio | $0.56 | $0.70 | $2.10 |
| 5s without audio | $0.42 | $0.56 | $2.10 |
| 5s with reference video | $0.63 | $0.84 | $2.10 |
| 10s with audio | $1.12 | $1.40 | $4.20 |
Failed runs are not charged.
multi_prompt with one entry per shot.Related: kwaivgi/kling-video/o3/pro/text-to-video (single-mode endpoint), kwaivgi/kling-video/o3/pro/image-to-video (single-mode endpoint).
Start building
Submit this model through the SandBase Unified Run API.
# 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",
"image": "https://static.sandbase.ai/examples/mirrored/f77b827ca02a-TNErq9yD7ZxGRATjfAqnh_EIgJSN67.png",
"video": "https://static.sandbase.ai/examples/mirrored/f1ecbb471a16-hklvF__w53diz6Rve7f5__JuDW2xl0mr6sJ_Kjz3Vxe_vidoeook--1-_1.mp4",
"prompt": "Based on @Video1, make the character from @Image1 dance.",
"duration": 5,
"shot_type": "customize",
"resolution": "standard",
"aspect_ratio": "16:9",
"generate_audio": true,
"keep_original_sound": true,
"character_orientation": "image"
}
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"Create a SandBase API key and set it in your server environment. All requests use Bearer authentication.
export SANDBASE_API_KEY="YOUR_API_KEY"Keep the key on your server. Do not expose it in browser code or commit it to a repository.
POST to /v1/run with this model ID and its inputs. The request example above includes submission and polling.
Use the returned run ID to poll until the status is completed, failed or timeout. Read output only after completed.
curl "https://api.sandbase.ai/v1/run/$RUN_ID" \
-H "Authorization: Bearer $SANDBASE_API_KEY"Pass a publicly accessible file URL in the model’s image, video or audio field. Supported formats and limits are shown beside each Playground input.
Use the upload or replace control on supported image fields in the Playground. Video URL fields accept a hosted driving video; they do not imply video-upload support.
imagestringOptional first-frame image URL for image-to-video.
videostringOptional reference video URL for video-to-video generation.
imagesarrayOptional reference image URLs.
promptstringrequiredText prompt for video generation or transformation. When using reference media, refer to them as @Image1, @Image2, and @Video1.
durationintegerGenerated video duration in seconds.
Default: 5
Possible values: 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
end_imagestringOptional end-frame image URL for image-to-video.
shot_typestringDefault: "customize"
Possible values: "customize", "intelligent"
resolutionstringGeneration quality tier.
Default: "standard"
Possible values: "standard", "pro", "4k"
aspect_ratiostringDefault: "16:9"
Possible values: "16:9", "9:16", "1:1"
multi_promptarraygenerate_audiobooleanDefault: true
keep_original_soundbooleanDefault: true
character_orientationstringPossible values: "image", "video"
{
"model": "kwaivgi/kling-video/o3",
"image": "https://static.sandbase.ai/examples/mirrored/f77b827ca02a-TNErq9yD7ZxGRATjfAqnh_EIgJSN67.png",
"video": "https://static.sandbase.ai/examples/mirrored/f1ecbb471a16-hklvF__w53diz6Rve7f5__JuDW2xl0mr6sJ_Kjz3Vxe_vidoeook--1-_1.mp4",
"prompt": "Based on @Video1, make the character from @Image1 dance.",
"duration": 5,
"shot_type": "customize",
"resolution": "standard",
"aspect_ratio": "16:9",
"generate_audio": true,
"keep_original_sound": true,
"character_orientation": "image"
}A completed run exposes its result in output. The following is the model’s saved example, not a new generation.
No example output has been published yet. Use Playground → Result → JSON after a completed run to inspect your response.