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

# Kling 3.0 — Image-to-Video Elements

> Generate videos with character reference elements using Kling 3.0 via PixelByte API

Generate videos from an input image, prompt, and character reference elements with Kling 3.0. Supports multi-character compositions, std/pro quality tiers, and durations from 3 to 15 seconds.

| Property            | Value                                   |
| ------------------- | --------------------------------------- |
| **Provider**        | Kling                                   |
| **Model**           | Kling 3.0                               |
| **Capability**      | Image-to-Video Elements                 |
| **Base Cost**       | 85,000 micro-cents/second (\$0.085/sec) |
| **Processing Time** | \~240 seconds                           |

## Request Body

<ParamField body="model" type="string" required placeholder="kling/kling-elements-i2v-v3/image-to-video-elements">
  Model slug. Use `kling/kling-elements-i2v-v3/image-to-video-elements`.
</ParamField>

<ParamField body="input" type="object" required>
  Input parameters for image-to-video elements generation.

  <Expandable title="properties" defaultOpen>
    <ParamField body="prompt" type="string" required>
      Text description of the video to generate (max 2500 characters).
    </ParamField>

    <ParamField body="image_url" type="string" required>
      URL of the input scene image.
    </ParamField>

    <ParamField body="elements" type="array" required>
      Array of character reference elements used to compose the video.

      <Expandable title="element properties">
        <ParamField body="characterImages" type="array" required>
          Character reference image URLs (1–4 items). The first image is the main reference; additional images provide extra angles.
        </ParamField>

        <ParamField body="type" type="string">
          Element type. Default: `IMAGE`. Options: `IMAGE`, `VIDEO`.
        </ParamField>

        <ParamField body="name" type="string">
          Element name (auto-generated if empty).
        </ParamField>

        <ParamField body="voice" type="string">
          Voice audio URL.
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField body="quality" type="string">
      Generation quality. Default: `std`. Options: `std`, `pro`.
    </ParamField>

    <ParamField body="duration" type="string">
      Video duration in seconds. Default: `5`. Options: `3`, `4`, `5`, `6`, `7`, `8`, `9`, `10`, `11`, `12`, `13`, `14`, `15`.
    </ParamField>

    <ParamField body="aspect_ratio" type="string">
      Video aspect ratio. Default: `16:9`. Options: `16:9`, `9:16`, `1:1`.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="webhookUrl" type="string">
  HTTPS URL to receive a webhook notification when the job completes or fails.
</ParamField>

## Pricing

**Base cost:** 85,000 micro-cents per second (\$0.085/sec)

```
finalCost = baseCost × duration × quality
```

| Factor       | Option | Multiplier |
| ------------ | ------ | ---------- |
| **Duration** | `3`    | 3x         |
|              | `4`    | 4x         |
|              | `5`    | 5x         |
|              | `6`    | 6x         |
|              | `7`    | 7x         |
|              | `8`    | 8x         |
|              | `9`    | 9x         |
|              | `10`   | 10x        |
|              | `11`   | 11x        |
|              | `12`   | 12x        |
|              | `13`   | 13x        |
|              | `14`   | 14x        |
|              | `15`   | 15x        |
| **Quality**  | `std`  | 1x         |
|              | `pro`  | 1.5x       |

<Tip>
  **Default cost:** 5 seconds, std quality = 85,000 × 5 × 1 = **425,000 micro-cents (\$0.425)**
</Tip>

## Response

<ResponseField name="jobId" type="string">
  Unique identifier for the submitted job.
</ResponseField>

<ResponseField name="status" type="string">
  Initial job status. Always `"pending"` on successful submission.
</ResponseField>

<ResponseField name="estimatedCompletionTime" type="string">
  ISO 8601 timestamp of the estimated completion time.
</ResponseField>

<ResponseField name="costMicroCents" type="number">
  The cost of the job in micro-cents.
</ResponseField>

## Code Examples

<CodeGroup>
  ```bash cURL theme={null}
  curl -X POST https://api.muvi.video/v1/jobs/submit \
    -H "Authorization: Bearer $PIXELBYTE_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "model": "kling/kling-elements-i2v-v3/image-to-video-elements",
      "input": {
        "prompt": "Two friends greet each other and walk into a sunlit cafe",
        "image_url": "https://example.com/image.jpg",
        "elements": [
          {
            "characterImages": ["https://example.com/image.jpg"],
            "type": "IMAGE",
            "name": "Character A"
          }
        ],
        "quality": "std",
        "duration": "5",
        "aspect_ratio": "16:9"
      }
    }'
  ```

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

  response = requests.post(
      "https://api.muvi.video/v1/jobs/submit",
      headers={
          "Authorization": "Bearer YOUR_API_KEY",
          "Content-Type": "application/json"
      },
      json={
          "model": "kling/kling-elements-i2v-v3/image-to-video-elements",
          "input": {
              "prompt": "Two friends greet each other and walk into a sunlit cafe",
              "image_url": "https://example.com/image.jpg",
              "elements": [
                  {
                      "characterImages": ["https://example.com/image.jpg"],
                      "type": "IMAGE",
                      "name": "Character A"
                  }
              ],
              "quality": "std",
              "duration": "5",
              "aspect_ratio": "16:9"
          }
      }
  )

  data = response.json()
  print(data)
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch("https://api.muvi.video/v1/jobs/submit", {
    method: "POST",
    headers: {
      "Authorization": "Bearer YOUR_API_KEY",
      "Content-Type": "application/json"
    },
    body: JSON.stringify({
      model: "kling/kling-elements-i2v-v3/image-to-video-elements",
      input: {
        prompt: "Two friends greet each other and walk into a sunlit cafe",
        image_url: "https://example.com/image.jpg",
        elements: [
          {
            characterImages: ["https://example.com/image.jpg"],
            type: "IMAGE",
            name: "Character A"
          }
        ],
        quality: "std",
        duration: "5",
        aspect_ratio: "16:9"
      }
    })
  });

  const data = await response.json();
  console.log(data);
  ```
</CodeGroup>
