---
title: "Create a Kling image-to-video task"
method: POST
path: "/kling/v1/videos/image2video"
---

# Create a Kling image-to-video task

`POST /kling/v1/videos/image2video`

Submit one source image and receive a task id for later polling.

## Request body

- object
  - `prompt` string — Text prompt describing the desired motion. Maximum 500 characters.
  - `negative_prompt` string — Elements to exclude from the video. Maximum 200 characters.
  - `image` string, required — Source image URL or base64 image string. Use an image that meets Kling pixel requirements; very small thumbnails are rejected. For base64 input, send the encoded image string as the field value.
  - `callback_url` string — Webhook URL to receive task status updates when the task completes.
  - `mode` 'std' | 'pro' — Generation mode. `std` for standard (faster), `pro` for professional (higher quality).
  - `model_name` 'kling-v1' | 'kling-v1-5' | 'kling-v1-6' | 'kling-v2-master' | 'kling-v2-1' | 'kling-v2-1-master' | 'kling-v2-5-turbo' | 'kling-v2-6' | 'kling-v3' — Model ID for this image-to-video request. Use `kling-v3` for new requests. Use Omni model IDs only with the Omni Video endpoint.
  - `image_tail` string — Tail-frame reference image as a Base64 string or public URL. Same format requirements as `image`. Controls the last frame of the generated video.
  - `cfg_scale` number — Prompt adherence strength. Higher values follow the prompt more closely. Range: 0–1.
  - `duration` string — Output video length in seconds. Use `5` or `10`; omit to use `5`.
  - `static_mask` string — Static brush mask image as a Base64 string or public URL. White areas are frozen in place during video generation. Must match the aspect ratio and resolution of the input image.
  - `dynamic_masks` object[] — Optional motion masks. Each entry contains a mask image and an ordered trajectory list.
    - `mask` string, required — Mask image URL or base64 string for the moving area.
    - `trajectories` object[], required — Trajectory points for the masked area.
      - `x` integer, required — Horizontal coordinate.
      - `y` integer, required — Vertical coordinate.
  - `external_task_id` string — Custom task id for your own tracking. Does not replace the system-generated task id but can be used to query tasks. Must be unique per user.
  - `sound` 'on' | 'off' — Optional generated-audio switch for models that support video sound. Use `on` or `off`, or omit the field for the model default.

## Response `200`

Task accepted.

- object
  - `code` integer, required — Error code; specifically define the error code
  - `message` string, required — error message
  - `data` object, required
    - `task_id` string, required — Task ID, system generated
    - `task_status` string, required — Task status, enumerated values: submitted, processing, succeed, failed.
    - `task_status_msg` string
    - `task_info` object
    - `created_at` integer, required — Task creation time, Unix timestamp, in ms.
    - `updated_at` integer, required — Task update time, Unix timestamp, in ms.

---

[API](https://skmtc.net/cometapi/apis/create-api-key.md) · [All operations](https://skmtc.net/cometapi/apis/create-api-key/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/cometapi/create-api-key/versions/0863102dbf34/schema)
