Skip to main content
kuaishou avatar

Kling 2.6 Pro Image-to-Video API

kuaishou/kling-video/v2.6/image-to-video

Animate a still photo into a short, cinematic video with fluid motion driven by a text prompt, plus optional native audio.

0.14 per second of output video

Model Input

Input

Text description of the motion/action to animate in the video.

The start frame the video animates from. Use a JPEG image (min 300x300px, aspect ratio roughly 0.4-2.5).

Length of the generated video in seconds.

Additional Settings

Customize your input with more control.

Describe content to avoid in the generated video.

Optional end/tail frame to interpolate toward.

Whether to generate native audio for the video. Enabling audio raises the per-second rate.

You need to be logged in to run this model and view results.
Log in

Model Output

Output

Loading
Generated in 61.865 seconds
Logs (1 lines)

Model Example Requests

Examples

Example output 1Example output 2Example output 3Example output 4

Kling 2.6 Pro Image-to-Video API

Kling 2.6 Pro Image-to-Video is a image-to-video AI model by kuaishou. On ModelRunner it runs through a REST API or via MCP from any AI assistant, at $0.14 per second of video.

POST https://queue.modelrunner.run/kuaishou/kling-video/v2.6/image-to-video

cURL

# Submit a request to the queue. Input fields go at the top level of the
# body. The optional reserved "metadata" object holds your own flat string
# tags — stored on the request, never sent to the model; filter later with
# GET https://queue.modelrunner.run/requests?metadata=<url-encoded JSON>.
curl -X POST https://queue.modelrunner.run/kuaishou/kling-video/v2.6/image-to-video \
  -H "Authorization: Key $MRUN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "Steam billows from the sizzling wok as the vendor stirs, neon signs flicker and shimmer in their reflections on the w…",
    "duration": "5",
    "generate_audio": false,
    "negative_prompt": "blur, distort, and low quality",
    "start_image_url": "https://media.modelrunner.ai/jU3jqVekan9tfOnCxD2xc.jpeg",
    "metadata": {
      "project": "my-project"
    }
  }'
# → { "request_id": "...", "status_url": "...", "response_url": "..." }

# Poll status_url until "COMPLETED", then fetch the result
curl "https://queue.modelrunner.run/kuaishou/kling-video/v2.6/image-to-video/requests/$REQUEST_ID/status" \
  -H "Authorization: Key $MRUN_API_KEY"
curl "https://queue.modelrunner.run/kuaishou/kling-video/v2.6/image-to-video/requests/$REQUEST_ID" \
  -H "Authorization: Key $MRUN_API_KEY"

JavaScript

import { modelrunner } from "@modelrunner/client";

const result = await modelrunner.subscribe("kuaishou/kling-video/v2.6/image-to-video", {
  input: {
    "prompt": "Steam billows from the sizzling wok as the vendor stirs, neon signs flicker and shimmer in their reflections on the w…",
    "duration": "5",
    "generate_audio": false,
    "negative_prompt": "blur, distort, and low quality",
    "start_image_url": "https://media.modelrunner.ai/jU3jqVekan9tfOnCxD2xc.jpeg"
  },
});
console.log(result);

Python

import os
import requests

headers = {"Authorization": f"Key {os.environ['MRUN_API_KEY']}"}

submitted = requests.post(
    "https://queue.modelrunner.run/kuaishou/kling-video/v2.6/image-to-video",
    headers=headers,
    json={
      "prompt": "Steam billows from the sizzling wok as the vendor stirs, neon signs flicker and shimmer in their reflections on the w…",
      "duration": "5",
      "generate_audio": false,
      "negative_prompt": "blur, distort, and low quality",
      "start_image_url": "https://media.modelrunner.ai/jU3jqVekan9tfOnCxD2xc.jpeg"
    },
).json()

# Poll submitted["status_url"] until "COMPLETED", then:
result = requests.get(submitted["response_url"], headers=headers).json()

Input parameters

Input parameters of Kling 2.6 Pro Image-to-Video
NameTypeRequiredDescription
promptstringyesText description of the motion/action to animate in the video.
start_image_urlstring (uri)yesThe start frame the video animates from. Use a JPEG image (min 300x300px, aspect ratio roughly 0.4-2.5).
durationenumnoLength of the generated video in seconds. One of: 5, 10. Default: "5".
negative_promptstringnoDescribe content to avoid in the generated video. Default: "blur, distort, and low quality".
end_image_urlstring (uri)noOptional end/tail frame to interpolate toward.
generate_audiobooleannoWhether to generate native audio for the video. Enabling audio raises the per-second rate. Default: true.

Machine-readable: OpenAPI schema · llms.txt

Use Kling 2.6 Pro Image-to-Video from Claude & Cursor (MCP)

Point Claude Code, Claude Desktop, Cursor, or any MCP client at the ModelRunner MCP server and Kling 2.6 Pro Image-to-Video becomes a tool your assistant can call directly — it authorizes via OAuth (no API key in config) and runs this model with the run_model tool using the endpoint kuaishou/kling-video/v2.6/image-to-video.

MCP client config (Claude Desktop, Cursor)

{
  "mcpServers": {
    "modelrunner": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://mcp.modelrunner.run/mcp"]
    }
  }
}

Claude Code

claude mcp add --transport http modelrunner https://mcp.modelrunner.run/mcp

Then ask your assistant, for example: “Run kuaishou/kling-video/v2.6/image-to-video on ModelRunner to generate video”. MCP setup guide.

Model Details

Model Details

Kling 2.6 Pro Image-to-Video brings a still image to life: give it a start frame and a short prompt describing the motion, and it animates the scene into a fluid, cinematic clip while keeping the subject and composition of your source photo intact. Framing (aspect ratio) is inherited from the start image, so the output matches the shape of what you upload. Choose a 5-second or 10-second clip, optionally supply an end frame to interpolate toward, and toggle native audio on or off. Audio is generated together with the video when enabled.

## Best for - Animating an existing photo, illustration, or product shot into a moving clip - Adding believable camera movement and motion to a single hero image or establishing frame - Interpolating between a start and end frame for a controlled transition or reveal - Social-ready clips (vertical, square, or landscape) that keep the exact framing of your source image

## Choose another model when - You have no source image and want to generate motion from a text prompt alone — use a text-to-video model - You need a single still image rather than motion — use a text-to-image model - You need clips longer than 10 seconds or fine frame-by-frame timeline control — use a dedicated long-form video tool

## Tips - Use a JPEG start image; other formats can be rejected. Aim for a clear subject, at least 300x300px, and an aspect ratio between roughly 0.4 and 2.5 - Describe the motion you want, not the scene that is already visible: concrete motion verbs ("slowly pushes in", "drifts forward", "camera pans left") translate well to on-screen movement - Use `negative_prompt` to suppress recurring artifacts such as blur, warping, or low-quality texture - Supply `end_image_url` only when you want the clip to interpolate toward a specific final frame; leave it out for free-running motion - `generate_audio` defaults to true and adds native audio; turn it off if you only need silent video

To run via the ModelRunner JavaScript client: ```js import { modelrunner } from "@modelrunner/client";

const result = await modelrunner.subscribe("kuaishou/kling-video/v2.6/image-to-video", { input: { prompt: "The hot-air balloon drifts slowly forward over the misty valley, soft dawn light, gentle camera push-in", start_image_url: "https://media.modelrunner.ai/Wv3ouBZFL2snbDFPF61m1.jpeg", duration: "5", }, }); ```