Kuaishou
Kling 3.0
kling-3.0/image-to-video
A unified multimodal video generation series supporting text-to-video, image-to-video, reference-to-video, and in-video editing, with native lip sync and multilingual audio
Try kling-3.0/image-to-video
Input
Showcases
View all showcasesOutput
videoPricing
kling-3.0/image-to-video per second
Overview
kling-3.0/image-to-video is the image-to-video path in the Kling 3.0 series: given a first-frame still, or a pair of first and last frames, the model generates coherent motion footage from them and outputs a video. It takes the starting image from the picture and the motion and style from an optional prompt, supports durations of 3–15 seconds and resolutions from 720p to 4K, and can generate synchronized sound effects and ambient audio on demand. It suits developers who already have a defined composition or storyboard keyframe and want to turn it into a playable shot, for workflows such as advertising clips, social videos, and film and television previsualization.
Key Features
- Two control modes: first frame, or first and last frames — Pass 1 image as the first frame, or pass 2 images to constrain the start and end points as "first frame, last frame", giving the camera movement a clearer destination.
- Duration and resolution adjustable per shot — A single generation supports 3 to 15 seconds and three resolution tiers: 720p, 1080p, and 4K, fitting different delivery requirements such as quick vertical-screen previews and high-definition final cuts.
- Optional synchronized sound effect generation — With native audio enabled, a single generation produces sound effects and ambient audio synchronized with the visuals, eliminating the extra step of aligning audio and video.
Capabilities
Image-driven motion generation: Using the first frame (or first and last frames) as the visual anchor, combined with an optional prompt to control motion direction and visual style, it produces continuous footage extended from a still image.
Controllable output specifications: Duration is specified within the 3–15 second range, and resolution can be selected from an enumerated list, letting you trade off between quality and cost according to the importance of each shot.
First-to-last frame transition control: When both a first frame and a last frame are provided, the model organizes the intermediate motion between the two images, suitable for transition shots that require precise starting and ending compositions.
Optional audio output: Enable synchronized sound effects as needed to output a video file with ambient audio; keep it off when sound is not needed for a lighter workflow.
Use Cases
- Animating existing keyframes for advertising and brand teams — Use the finalized design frame as the first frame to generate a short clip, producing assets ready for placement and reducing the iteration cost of generating from scratch and then selecting.
- Turning product images into showcase videos for e-commerce operations — Use a product hero image or scene image as the first frame to produce a several-second dynamic showcase segment for video slots in detail pages and feeds.
- Previsualizing early-stage storyboards for film and animation — Use storyboard frames as first and last frames to constrain the start and end of a shot, quickly obtaining motion preview clips so directors and artists can confirm pacing before formal production.
- Batch-producing vertical-screen social content — Use existing graphic and text assets as input to batch-generate shots with a consistent style and duration, supporting daily updates across multiple channels.
Limitations and Selection Advice
The input must include at least one image as the first frame; it cannot start a video from text alone. When pure text-to-video is needed, choose the text-to-video path in the same series. The maximum duration per generation is 15 seconds, so long narratives need to be generated in segments and then stitched together; the resulting length, resolution, and whether audio is enabled all affect billing. Native audio focuses on sound effects and ambient audio, so dialogue shots with lines and lip-sync matching should not rely on this path.
What's new
View changelog →- New model New models: Kling 3.0 Omni (可灵 O3) via POST /v1/tasks
Frequently asked questions
View all FAQs →-
Does Kling 3.0 Image-to-Video require an input image?
Yes. kling-3.0/image-to-video is an image-to-video route. The image establishes the subject and opening composition; the prompt directs motion, camera, and environmental change.
-
Which durations and resolutions does Kling 3.0 Image-to-Video support?
The current HiAPI contract supports 3–15s at 720p or 1080p or 4K. Check the page controls and API docs for the current options.
-
How is Kling 3.0 Image-to-Video billed?
Billing follows output duration and the selected tier. The page follows the global display unit, while the successful task record contains the final charge.
-
How can I improve subject consistency?
Use a clear, unobstructed source with a complete composition. Describe the main action and camera first, then name the appearance, material, and background relationships that must remain stable. Validate a short clip first.
Create a generation task
https://api.hiapi.ai/v1/tasks Headers
AuthorizationstringRequiredAccount API key. Required on every request. Example: Bearer YOUR_HIAPI_API_KEY. Get your API key
Content-TypestringOptionalThe request body is always parsed as JSON; when sent, only application/json (optionally with charset) is accepted — any other value returns 415. Example: application/json.
Idempotency-KeystringOptionalIdempotency key, up to 255 bytes. Retries with the same key from the same account create the task only once; replays return the original taskId.
On network timeouts or client retries, the same key creates the task only once — no double charges (scope: the API key's account). Use a business-unique identifier as the key (e.g. "order-42"); replays return the original taskId, and keys expire 24 hours after the first request. See the Unified Async API overview for the full scenario matrix.
Body
modelstringRequiredCurrent fixed value: kling-3.0/image-to-video
routestringOptionalCurrent fixed value: default
inputobjectRequired
Business parameters for kling-3.0/image-to-video and route default — see the parameter table below.
soundbooleanOptionalDefault: falseControls whether synchronized sound effects and ambient audio are generated; takes a boolean value. Defaults to false; enabling it incurs additional charges.
promptstringOptionalAn optional text prompt used to guide the motion style and manner of the generated footage; takes a string.
durationintegerOptionalDefault: 5min 3max 15Controls the length of the generated video clip in seconds; takes an integer between 3 and 15. Defaults to 5; the cost rises as the duration increases.
image_urlsarrayRequiredminItems 1maxItems 2Controls the image input for the first and last frames; takes an array of 1 to 2 image URLs: 1 is treated as the first frame, and 2 are interpreted in order as the first frame and the last frame. Supports JPEG, PNG, and WEBP formats.
Array [ string ]
resolutionstringOptionalDefault: "1080p"Controls the output video resolution; takes a string. Defaults to 1080p; the higher the resolution, the higher the cost.
720p1080p4KcallbackobjectOptional
Terminal-state notification config. When omitted, no callback is delivered — poll the task yourself. See the callback note below.
Provide callback.url when creating a task and HiAPI POSTs to your service once the task reaches a terminal state — no polling needed. The callback payload mirrors the task detail structure; signature verification, delivery retries and idempotency are documented on the Unified Async API overview page.
urlstringRequiredRequired when callback is present. A POST is sent to this URL once the task reaches a terminal state; must be a valid http(s) URL.
whenstringOptionalDefault: "final"Only final is supported today — notified on both success and fail.
finalstoragestringOptionalDefault: "temp"Artifact storage tier: temp (default, retained about 7 days) or persistent (long-term, billed by size). Insufficient balance or exceeding the storage cap silently downgrades to temp; the effective tier is shown in the task detail response.
temppersistentRequest examples
# Submit an async task; returns a taskId immediately (no waiting for generation)
curl -X POST "https://api.hiapi.ai/v1/tasks" \
-H "Authorization: Bearer $HIAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "kling-3.0/image-to-video",
"input": {
"sound": false,
"duration": 5,
"image_urls": "…",
"resolution": "1080p"
}
}' const res = await fetch("https://api.hiapi.ai/v1/tasks", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.HIAPI_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "kling-3.0/image-to-video",
input: {
"sound": false,
"duration": 5,
"image_urls": "…",
"resolution": "1080p"
}
}),
});
const task = await res.json();
// { code: 200, message: "success", data: { taskId } } import os, requests
res = requests.post(
"https://api.hiapi.ai/v1/tasks",
headers={"Authorization": f"Bearer {os.environ['HIAPI_API_KEY']}"},
json={
"model": "kling-3.0/image-to-video",
"input": {
"sound": False,
"duration": 5,
"image_urls": "…",
"resolution": "1080p"
}
},
)
print(res.json()) # { code, message, data: { taskId } } 200 OK
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-01HZTQ8BX2N3GM3YFK4Z9D7VQR"
}
} 400 Bad Request
{
"code": 400,
"message": "invalid request",
"data": null,
"error_code": "INVALID_REQUEST"
} Get task detail
https://api.hiapi.ai/v1/tasks/:id Response fields
taskIdstringRequiredTask ID, always prefixed with tk-hiapi-.
modelstringRequiredResolved full model name. Tasks submitted with the route parameter return base@route (e.g. gpt-image-2/text-to-image@ext); otherwise identical to the name passed at creation.
routestringOptionalPresent only when the task was submitted with an explicit route parameter; echoes the submitted value.
statusstringRequiredTask status.
queued Queued, not started yet.
handling Being processed.
archiving Processing finished, artifacts being prepared.
success Terminal: completed, artifacts available (output returned).
fail Terminal: failed (error returned).
After submission, check status: success and fail are terminal, everything else is non-terminal. Poll every 1–3 seconds until terminal. On success, download artifacts from output[].url and transfer them before expireAt; pass storage: "persistent" at creation time when long-term retention is needed.
creatednumberRequiredTask creation time (Unix seconds).
completednumberRequiredUnix seconds when the task reached a terminal state; fixed to 0 while not terminal.
outputarrayOptional
Present only when status == success. Artifact list — always an array; a single task may return multiple types at once (e.g. video + first_frame).
Array [ object ]
Array items
urlstringRequiredArtifact URL, directly downloadable.
typestringRequiredCurrent possible values: video, image, audio, first_frame, last_frame, thumbnail; more may be added later.
expireAtnumberRequiredUnix seconds until which the artifact remains accessible; download or transfer before it expires.
errorobjectOptional
Present only when status == fail.
codestringRequiredBusiness error code.
messagestringRequiredError description.
Response examples
Success
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-01HZTQ8BX2N3GM3YFK4Z9D7VQR",
"model": "happyhorse-1-0",
"status": "success",
"created": 1777282033,
"completed": 1777282099,
"output": [
{
"url": "https://cdn.hiapi.ai/tasks/.../video.mp4",
"type": "video",
"expireAt": 1777886899
}
]
}
} Processing (non-terminal)
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-...",
"model": "happyhorse-1-0",
"status": "archiving",
"created": 1777282033,
"completed": 0
}
} Failed
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-...",
"model": "happyhorse-1-0",
"status": "fail",
"created": 1777282033,
"completed": 1777282099,
"error": {
"code": "TASK_FAILED",
"message": "task failed"
}
}
} Articles
View all articles →Related Models
View all models →Same Type
-
Wan 2.7 Video Alibaba $0.100 /second -
HeyGen Avatar V HeyGen $0.150 /second -
Vidu Q4 Preview Vidu $0.051 /second -
FLUX 3 Video Black Forest Labs $0.090 /second -
Runway Gen 4.5 Runway $0.172 /second -
LTX 2.5 Fast Lightricks $0.086 /second -
Wan 3.0 Video Alibaba $0.040 /second -
Veo 3.1 Lite Google $0.060 /second -
Kling 3.0 Kuaishou $0.100 /second -
Ray 3.2 Luma $0.214 /video -
Kling 4.0 Kuaishou $0.330 /second -
Grok Imagine 1.5 xAI $0.011 /second





