> ## Documentation Index
> Fetch the complete documentation index at: https://docs.anyfast.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# kling-v3 - Image to Video

> Kuaishou's Kling 3.0 i2v model. Generate videos from reference images with camera control, motion brush, and multi-shot storyboarding.

Kling 3.0 i2v is an image-to-video generation model from Kuaishou's Kling series, available through AnyFast API. Transform static images into dynamic videos with customizable camera movements, motion brushes, and multi-shot storyboarding.

<Info>
  This page uses Kling's Legacy API: `POST /kling/v1/videos/image2video` with `model_name: "kling-3.0"`. It does not use the upgraded `/image-to-video/kling-3.0` request structure.
</Info>

## Key capabilities

* **Image-to-Video** — Generate videos from first frame and/or end frame reference images
* **Camera Control** — Preset and custom camera movements (pan, tilt, zoom, roll)
* **Motion Brush** — Static and dynamic brush masks for precise motion control
* **Multi-Shot** — Create up to 6 storyboard shots with custom prompts and durations
* **Sound and Voice** — Generate synchronized sound or reference up to 2 voices
* **Multiple Output Modes** — `std` (720p), `pro` (1080p), and `4k`

## Quick example

<CodeGroup>
  ```bash cURL theme={null}
  curl https://www.anyfast.ai/kling/v1/videos/image2video \
    -H "Authorization: Bearer YOUR_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "model_name": "kling-3.0",
      "image": "https://example.com/photo.jpg",
      "prompt": "The person smiles and waves to the camera",
      "duration": "5",
      "mode": "std"
    }'
  ```

  ```python Python theme={null}
  import requests

  response = requests.post(
      "https://www.anyfast.ai/kling/v1/videos/image2video",
      headers={
          "Authorization": "Bearer YOUR_API_KEY",
          "Content-Type": "application/json"
      },
      json={
          "model_name": "kling-3.0",
          "image": "https://example.com/photo.jpg",
          "prompt": "The person smiles and waves to the camera",
          "duration": "5",
          "mode": "std"
      }
  )

  task = response.json()
  print(f"Task ID: {task['task_id']}")
  ```
</CodeGroup>

## Parameters

| Parameter         | Type    | Required    | Description                                                                                        |
| ----------------- | ------- | ----------- | -------------------------------------------------------------------------------------------------- |
| `model_name`      | string  | Yes         | Must be `kling-3.0`                                                                                |
| `image`           | string  | Conditional | First-frame image (raw Base64 or URL)                                                              |
| `image_tail`      | string  | Conditional | End-frame image (raw Base64 or URL)                                                                |
| `prompt`          | string  | Conditional | Text prompt (max 2500 chars)                                                                       |
| `negative_prompt` | string  | No          | Negative prompt (max 2500 chars)                                                                   |
| `mode`            | string  | No          | `std` (720p), `pro` (1080p), or `4k`. Default: `std`                                               |
| `duration`        | string  | No          | `3`–`15` seconds. Default: `5`                                                                     |
| `cfg_scale`       | float   | No          | Prompt relevance `0`–`1`. Default: `0.5`                                                           |
| `multi_shot`      | boolean | No          | Enable multi-shot storyboarding. Default: `false`                                                  |
| `shot_type`       | string  | Conditional | `customize` or `intelligence`. Required when `multi_shot` is `true`                                |
| `multi_prompt`    | array   | Conditional | 1–6 shots. Required for customized storyboards; shot durations must sum to `duration`              |
| `element_list`    | array   | No          | Up to 3 element IDs from the Kling element library                                                 |
| `voice_list`      | array   | No          | Up to 2 voice IDs. Mutually exclusive with `element_list`; referenced voices require `sound: "on"` |
| `camera_control`  | object  | No          | Camera movement control                                                                            |
| `static_mask`     | string  | No          | Static motion-brush mask, using the same image rules and aspect ratio as `image`                   |
| `dynamic_masks`   | array   | No          | Up to 6 dynamic masks with trajectories                                                            |
| `sound`           | string  | No          | `on` or `off`. Default: `off`                                                                      |
| `watermark_info`  | object  | No          | Set `enabled` to generate an additional watermarked result                                         |

## Input rules

* Provide at least one of `image` or `image_tail`; last-frame-only generation is supported by this Legacy endpoint when the selected model/mode allows it.
* Images support `.jpg`, `.jpeg`, and `.png`, up to 10 MB, with both dimensions at least 300 px and an aspect ratio from 1:2.5 to 2.5:1. Raw Base64 must not include a `data:image/...;base64,` prefix.
* `image_tail`, motion-brush masks, and `camera_control` are mutually exclusive.
* Each dynamic trajectory contains 2–77 coordinates for a 5-second video. Static and dynamic masks must use the same resolution.
* `element_list` and `voice_list` cannot be used together.

<Card title="API Reference" icon="code" href="/api-reference/model-api/kuaishou/kling-v3-i2v">
  View the interactive API playground for Kling 3.0 i2v.
</Card>

<script src="/public/feedback.js" />
