Skip to content
English

Kling 3.0 Omni Image-to-Video API

POST Base URL: https://api.hiapi.ai /v1/tasks

Image, video, and audio models are called through theUnified Async API POST /v1/tasks endpoint; only the input fields differ (see input parameters below).

Model summary

Model name kling-3.0-omni/image-to-video
Type Video generation (image-to-video)
Endpoint POST /v1/tasks
Pricing See HiAPI Pricing

Kling 3.0 Omni image-to-video animates one first frame, or a first and last frame, into a 3–15 second clip at 720p to 4k that follows the first frame's aspect ratio, with native synchronized audio, smart multi-shot planning, and @name subject references.

Production guidance

Production guidance
  • For production, pass callback.url at the top level of the request body so HiAPI can notify your service when the task reaches a terminal state.
  • GET /v1/tasks/:id is better for local debugging, low-volume jobs, or fallback reconciliation if a callback is missed.
  • Use callback.when=final. Both success and fail are terminal states, so your service should deduplicate by taskId.

Best suited for

Animate a still image

Use an existing image as the first frame and add subject motion, camera moves, and atmosphere.

image_urlsprompt
First-to-last frame transitions

Pass two images as the first and last frames and let the model generate the transition between them.

image_urlsduration
Clips with synchronized audio

Turn on audio to generate ambience and sound effects together with the picture.

audio
Consistent characters

Add more images of the same subject in elements and reference it as @name in the prompt.

elements

Request parameters

model string required

Fixed value kling-3.0-omni/image-to-video.

example kling-3.0-omni/image-to-video
input object required

Model-specific parameters. Put the Kling 3.0 Omni Image-to-Video configuration here.

prompt string required

Describe the scene, subject motion, and camera work. To use a subject from elements, mention it in the prompt as @name. 1–3072 characters.

image_urls string[] required

1 image = first frame; 2 images = first frame then last frame. JPG/PNG, up to 50MB each, shortest side at least 300px, aspect ratio 0.4–2.5. The output aspect ratio follows the first frame.

duration integer optional

Video length in seconds; any integer from 3 to 15.

default 5
resolution enum optional

Resolution of the generated video.

default 720p enum: 720p1080p4k
audio boolean optional

Whether to generate native audio synchronized with the picture (ambience and sound effects).

default false example true
prefer_multi_shots boolean optional

Smart multi-shot: when enabled, the model plans multiple shots from the prompt automatically.

default false example true
elements object[] optional

Reusable subjects, up to 3. Each has a name, a short description, and 2–4 images of the same subject; reference it in the prompt as @name to keep the character or object consistent across the video.

name string required

Unique subject name without spaces; referenced in the prompt as @name.

description string required

Short description of the subject.

element_input_urls string[] required

2–4 image URLs of the same subject, JPG/PNG.

callback object optional

Optional callback configuration. When set, HiAPI notifies your service when the task reaches a terminal state.

url string required

Required when callback is set; HTTPS URL that receives terminal task notifications.

example https://your-domain.com/hiapi/callback
when enum optional

Callback trigger timing. Use final.

default final enum: final

Example requests

Foggy harbor morning

Minimal image-to-video example driven by one first frame: 3 seconds, 720p, no audio.

Request body
{
  "model": "kling-3.0-omni/image-to-video",
  "input": {
    "prompt": "Morning fog slowly lifts over the harbor as the fishing boats rock gently on the water; the low sun breaks through the haze and glints on the wet pier, camera slowly pushes in along the dock. Cinematic, calm, photorealistic.",
    "image_urls": [
      "https://static.hiapi.ai/gallery/2026/07/8acba0f00bdacec3.jpg"
    ],
    "duration": 3,
    "resolution": "720p",
    "audio": false
  }
}
First and last frame at 1080p with audio

Pass two images as the first and last frames for an 8-second 1080p transition with native audio. Replace the last-frame URL with your own image.

Request body
{
  "model": "kling-3.0-omni/image-to-video",
  "input": {
    "prompt": "Slow transition from a fog-covered harbor at dawn to the same pier under bright midday sun; the haze gradually clears and the reflections on the water grow brighter while the camera keeps a steady push-in. Photorealistic, with ambient waves and gulls.",
    "image_urls": [
      "https://static.hiapi.ai/gallery/2026/07/8acba0f00bdacec3.jpg",
      "https://example.com/harbor-noon-last-frame.jpg"
    ],
    "duration": 8,
    "resolution": "1080p",
    "audio": true
  }
}
First frame + subject elements + smart multi-shot

Lock the scene with a first frame, add two images of the same character in elements referenced as @captain, and enable smart multi-shot for a 10-second clip. Replace the example URLs with publicly accessible subject images.

Request body
{
  "model": "kling-3.0-omni/image-to-video",
  "input": {
    "prompt": "@captain walks from the cabin onto the deck, looks out at the clearing morning fog, then starts coiling a rope. Several shots: medium shot at the cabin door, close-up gazing out, wide shot of the deck. Soft dawn light, cinematic.",
    "image_urls": [
      "https://static.hiapi.ai/gallery/2026/07/8acba0f00bdacec3.jpg"
    ],
    "elements": [
      {
        "name": "captain",
        "description": "Middle-aged fisherman in a dark blue raincoat and a knit beanie",
        "element_input_urls": [
          "https://example.com/captain-front.jpg",
          "https://example.com/captain-side.jpg"
        ]
      }
    ],
    "duration": 10,
    "resolution": "1080p",
    "audio": false,
    "prefer_multi_shots": true
  }
}

Getting the result

  1. The response returns a taskId immediately without waiting for generation to finish.
  2. In production, prefer waiting for callback.url to receive the terminal notification. For local debugging, poll GET /v1/tasks/:id.
  3. When status=success, download the generated video from output[].url.
  4. When status=fail, fix the request based on the returned error instead of retrying the same invalid payload.

FAQ

What determines the output aspect ratio?

The aspect ratio of the first image in image_urls, so this model has no aspect_ratio parameter.

What is the difference between 1 and 2 images in image_urls?

One image sets only the first frame. With two images, the first is the first frame and the second is the last frame, and the model generates the transition between them.

What are the image requirements?

JPG/PNG, up to 50MB each, shortest side at least 300px, aspect ratio between 0.4 and 2.5.

How many subjects can elements hold?

Up to 3 subjects for image-to-video, each with 2–4 images of the same subject, referenced in the prompt as @name.

How is it billed?

See the live prices on the HiAPI pricing page. View pricing

Next steps