AI HUB Docs
English
Console →
Media · Video

Kling O3

Kuaishou Kling O3. Cinematic motion from a prompt or a picture. With a picture attached, the clip keeps the picture's shape.

Model id: kling-o3

See full pricing →

Parameters

Only model and prompt are required. Omitted optional params use the default. An unsupported value returns 400. These values are the same ones GET /v1/models?type=video reports.

ParameterAllowedDefaultRequired
quality std, pro std No
duration 5, 10 5 No
seed 0-2147483647 No

Attachment roles and upload limits

RoleContent blockMax per requestSupportedRequired
Opening first_frame image_url Yes Optional
Ending last_frame image_url No Optional
Reference image reference_image image_url 7 Yes Optional
Reference video reference_video video_url No Optional
Source video (edit/motion reference) source_video video_url No Optional
CombinationAllowedNotes
Opening + Ending No Sets the clip's opening and closing image. This is only offered on models that accept a last frame. Other models refuse the second image.
Opening + Reference image Yes Refused. A picture used as a frame and a picture used as a likeness reference are different modes, and no model accepts both at once.
Opening + Reference video No Allowed. A video reference is a different medium from a frame, so the two do not compete.
Reference image Yes Up to the per-request maximum in the table above. The cap differs per model, so one model's number never applies to another.
Source video (edit/motion reference) No The source clip's own duration is billed on top of the output, so a 5s edit of a 5s clip bills as 10 seconds.
Source image (photo to edit) No Never accepted on a video model, whatever its other capabilities. Editing a photo belongs on the image endpoint.

The role token distinguishes two attachments. First frame and last frame both travel as an image_url content block, so the block alone cannot identify them.

On this endpoint, a request may carry only one image_url attachment, and a second one is rejected even though /media allows more. This is the most common cause of support requests.

Sending a role a model does not support returns 422 model_capability_unsupported.

Per-file and total byte ceilings differ per model. One model's numbers never apply to another.

Limits have not yet been published for this model.

Example

cURL
curl https://console.aimodelhub.ai/v1/videos \
  -H "Authorization: Bearer $AIHUB_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"kling-o3","prompt":"a drone shot over a canyon"}'

Metered once at this model's list price on success and debited from the wallet. See the Video overview for the full request/response shape.