Kling V1 - Image to Video
kling-v1-i2v
Image-to-video generation with stronger temporal coherence and consistency for longer or more complex scenes.
API Notes
Section titled “API Notes”kling-v1-i2v does not support only tail frame (image_tail only)
kling-v1-i2v only supports first and last frame (image + image_tail) when duration is 5 seconds
kling-v1-i2v only supports motion brush (dynamic_masks/static_mask) when duration is 5 seconds
kling-v1-i2v generates videos at 720p resolution with 30fps frame rate for both std and pro modes
Endpoints
Section titled “Endpoints”POST /v1/queue/kling-v1-i2v # Create taskGET /v1/queue/kling-v1-i2v/requests/{request_id}/status # Check statusGET /v1/queue/kling-v1-i2v/requests/{request_id}/response # Get resultPUT /v1/queue/kling-v1-i2v/requests/{request_id}/cancel # Cancel taskRequest parameters
Section titled “Request parameters”curl --request 'POST' 'https://odirouter.ai/model/v1/queue/kling-v1-i2v' \ --header 'Authorization: Bearer YOUR_API_KEY' \ --header 'Content-Type: application/json' \ --location \ --data-raw '{ "image": "https://www.gstatic.com/webp/gallery/2.jpg", "prompt": "A cinematic drone shot over a misty mountain range at sunrise", "negative_prompt": "blurry, low quality, distorted", "cfg_scale": 0.5, "mode": "std"}'Reference image. Supports Base64 encoded image or image URL (ensure accessibility)
If using Base64, ensure all image data parameters are Base64 encoded strings without prefixes like data:image/png;base64,. The correct format should be the Base64 encoded string directly
Image requirements:
Format: .jpg / .jpeg / .png
File size: max 10MB
Dimensions: min 300px width and height
Aspect ratio: between 1:2.5 ~ 2.5:1
image + image_tail parameters and dynamic_masks/static_mask parameters are mutually exclusive, cannot be used together
Reference image - tail frame control. Supports Base64 encoded image or image URL (ensure accessibility)
If using Base64, ensure all image data parameters are Base64 encoded strings without prefixes like data:image/png;base64,. The correct format should be the Base64 encoded string directly. Please only provide the Base64 encoded string portion so the system can correctly process and parse your data
Image requirements:
Format: .jpg / .jpeg / .png
File size: max 10MB
Dimensions: min 300px width and height
Video generation prompt, length between 1-2500 characters
Video generation mode
std: Standard mode, basic mode, high cost-performance
pro: Expert mode (high quality), high performance mode, better generated video quality
Options: std, pro
Default: std
Video duration in seconds
Options: 5, 10
Default: 5
Freedom of generated video; larger value means less model freedom, stronger correlation with user input prompt
Range: 0 - 1
Default: 0.5
Negative prompt for specifying content you don't want in the generated video, max 2500 characters
Static brush mask area (mask image painted by user through motion brush)
"Motion brush" capability includes "dynamic brush dynamic_masks" and "static brush static_mask"
Supports Base64 encoded image or image URL (ensure accessibility, format requirements same as image field)
Image requirements:
Format: .jpg / .jpeg / .png
Aspect ratio must match input image (image field), otherwise task fails
Resolution of static_mask and dynamic_masks.mask must be identical, otherwise task fails
Note: Only supported when duration is 5 seconds
Dynamic brush configuration list. Can configure multiple groups (max 6), each containing "mask area mask" and "motion trajectory trajectories" sequence
Note: Only supported when duration is 5 seconds
Dynamic brush mask area (mask image painted by user through motion brush)
Supports Base64 encoded image or image URL (ensure accessibility, format requirements same as image field)
Image requirements:
Format: .jpg / .jpeg / .png
Aspect ratio must match input image (image field), otherwise task fails
Resolution of static_mask and dynamic_masks.mask must be identical, otherwise task fails
Motion trajectory coordinate sequence
For 5s video, trajectory length max 77, coordinate count range: [2, 77]
Trajectory coordinate system uses image bottom-left corner as origin
Note 1: More coordinate points mean more accurate trajectory; with only 2 trajectory points, it's a straight line connecting these two points
Note 2: Trajectory direction follows input order, first coordinate is trajectory start, subsequent coordinates connect sequentially to form motion trajectory
Trajectory point x-coordinate (pixel coordinate in 2D coordinate system, with input image bottom-left as origin)
Trajectory point y-coordinate (pixel coordinate in 2D coordinate system, with input image bottom-left as origin)
Whether to generate results with watermark simultaneously
Defined by enabled parameter, specific array format as follows:
"watermark_info": {
"enabled": boolean // true for generation, false for no generation
}
Custom watermarks are not currently supported
Callback notification address for this task result. If configured, the server will actively notify when task status changes
Custom task ID
User-defined task ID. Input will not overwrite system-generated task ID, but supports task query through this ID
Please note, must ensure uniqueness under a single user
Response parameters
Section titled “Response parameters”{ "request_id": "task_01hxyz...", "response_url": "https://odirouter.ai/model/v1/queue/kling-v1-i2v/requests/task_01hxyz.../response", "status_url": "https://odirouter.ai/model/v1/queue/kling-v1-i2v/requests/task_01hxyz.../status", "cancel_url": "https://odirouter.ai/model/v1/queue/kling-v1-i2v/requests/task_01hxyz.../cancel", "queue_position": 0}| Field | Type | Description |
|---|---|---|
request_id | string | Task ID used for all follow-up operations. |
response_url | string | URL to fetch the final result. |
status_url | string | URL to query task status. |
cancel_url | string | URL to cancel the task. |
queue_position | int | Current queue position. |