> ## 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. Review inputs and output formats for this model on Runpod Public Endpoints.

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 |
