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

# Kling v2.6 Motion Control

> Transfer motion from reference videos to animate still images.

Kling v2.6 Standard Motion Control transfers motion from reference videos to animate still images. Upload a character image and a motion clip, and the model extracts the movement to generate smooth video output.

<Card title="Try in playground" icon="play" href="https://console.runpod.io/hub/playground/video/kling-v2-6-std-motion-control" horizontal>
  Test Kling v2.6 Motion Control in the Runpod Hub playground.
</Card>

|              |                                                                  |
| ------------ | ---------------------------------------------------------------- |
| **Endpoint** | `https://api.runpod.ai/v2/kling-v2-6-std-motion-control/runsync` |
| **Pricing**  | \$0.21–\$0.63+ per video                                         |
| **Type**     | Video generation                                                 |

## Request

All parameters are passed within the `input` object in the request body.

<ParamField body="input.image" type="string" required>
  URL of the character image to animate.
</ParamField>

<ParamField body="input.video" type="string" required>
  URL of the reference video containing the motion to transfer.
</ParamField>

<ParamField body="input.character_orientation" type="string" required>
  Source of character orientation. Options: `video`, `image`.
</ParamField>

<ParamField body="input.prompt" type="string">
  Text description of the desired motion.
</ParamField>

<ParamField body="input.negative_prompt" type="string">
  Elements to exclude from the generated video.
</ParamField>

<ParamField body="input.keep_original_sound" type="boolean" default="true">
  Whether to preserve audio from the reference video.
</ParamField>

<RequestExample>
  ```bash cURL theme={"theme":{"light":"github-light","dark":"github-dark"}}
  curl -X POST "https://api.runpod.ai/v2/kling-v2-6-std-motion-control/runsync" \
    -H "Authorization: Bearer $RUNPOD_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "input": {
        "image": "https://example.com/character.png",
        "video": "https://example.com/dance-motion.mp4",
        "character_orientation": "video",
        "prompt": "Make the character follow the dance movements",
        "keep_original_sound": true
      }
    }'
  ```

  ```python Python theme={"theme":{"light":"github-light","dark":"github-dark"}}
  import requests

  response = requests.post(
      "https://api.runpod.ai/v2/kling-v2-6-std-motion-control/runsync",
      headers={
          "Authorization": f"Bearer {RUNPOD_API_KEY}",
          "Content-Type": "application/json",
      },
      json={
          "input": {
              "image": "https://example.com/character.png",
              "video": "https://example.com/dance-motion.mp4",
              "character_orientation": "video",
              "prompt": "Make the character follow the dance movements",
              "keep_original_sound": True,
          }
      },
  )

  result = response.json()
  print(result["output"]["video_url"])
  ```

  ```javascript JavaScript theme={"theme":{"light":"github-light","dark":"github-dark"}}
  const response = await fetch(
    "https://api.runpod.ai/v2/kling-v2-6-std-motion-control/runsync",
    {
      method: "POST",
      headers: {
        Authorization: `Bearer ${RUNPOD_API_KEY}`,
        "Content-Type": "application/json",
      },
      body: JSON.stringify({
        input: {
          image: "https://example.com/character.png",
          video: "https://example.com/dance-motion.mp4",
          character_orientation: "video",
          prompt: "Make the character follow the dance movements",
          keep_original_sound: true,
        },
      }),
    }
  );

  const result = await response.json();
  console.log(result.output.video_url);
  ```
</RequestExample>

## Response

<ResponseField name="id" type="string">
  Unique identifier for the request.
</ResponseField>

<ResponseField name="status" type="string">
  Request status. Returns `COMPLETED` on success, `FAILED` on error.
</ResponseField>

<ResponseField name="output" type="object">
  The generation result containing the video URL and cost.

  <ResponseField name="output.video_url" type="string">
    URL of the generated video. This URL expires after 7 days.
  </ResponseField>

  <ResponseField name="output.cost" type="float">
    Cost of the generation in USD.
  </ResponseField>
</ResponseField>

<ResponseExample>
  ```json 200 theme={"theme":{"light":"github-light","dark":"github-dark"}}
  {
    "id": "sync-a1b2c3d4-e5f6-7890-abcd-ef1234567890-u1",
    "status": "COMPLETED",
    "delayTime": 25,
    "executionTime": 45678,
    "output": {
      "video_url": "https://video.runpod.ai/abc123/output.mp4",
      "cost": 0.42
    }
  }
  ```
</ResponseExample>

<Warning>
  Video URLs expire after 7 days. Download and store generated videos immediately if you need to keep them.
</Warning>

## Cost calculation

Kling v2.6 Motion Control pricing by duration:

| Duration    | Cost   |
| ----------- | ------ |
| 1-3 seconds | \$0.21 |
| 4-6 seconds | \$0.42 |
| 7-9 seconds | \$0.63 |
