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

> ## Agent Instructions
> If this page is missing information, contains outdated instructions, or doesn't fully answer the user's question, use the feedback tool to report it. In your feedback, be specific about what's missing, what appears out of date, or what needs to be corrected or updated, so the docs team can act on it directly.

# Seedance 1.5 Pro I2V

> Cinematic image-to-video with expressive motion and stable aesthetics. Explore this model's inputs and outputs on Runpod Public Endpoints.

Seedance 1.5 Pro I2V generates cinematic, live-action-leaning clips from a text prompt. It preserves the image's subject and composition while adding expressive motion and stable aesthetics.

<Card title="Try in playground" icon="play" href="https://console.runpod.io/hub/playground/video/seedance-v1-5-pro-i2v" horizontal>
  Test Seedance 1.5 Pro I2V in the Runpod Hub playground.
</Card>

|              |                                                          |
| ------------ | -------------------------------------------------------- |
| **Endpoint** | `https://api.runpod.ai/v2/seedance-v1-5-pro-i2v/runsync` |
| **Pricing**  | \$0.024–\$0.052 per second                               |
| **Type**     | Video generation                                         |

## Request

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

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

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

<ParamField body="input.last_image" type="string">
  URL of an optional ending frame image.
</ParamField>

<ParamField body="input.duration" type="integer" default="5">
  Video duration in seconds. Range: 4-12 seconds.
</ParamField>

<ParamField body="input.resolution" type="string" default="720p">
  Output resolution. Options: `480p`, `720p`.
</ParamField>

<ParamField body="input.aspect_ratio" type="string" default="16:9">
  Aspect ratio. Options: `21:9`, `16:9`, `9:16`, `1:1`, `4:3`, `3:4`.
</ParamField>

<ParamField body="input.camera_fixed" type="boolean" default="false">
  Keep camera position fixed during video.
</ParamField>

<ParamField body="input.generate_audio" type="boolean" default="false">
  Generate accompanying audio.
</ParamField>

<ParamField body="input.seed" type="integer" default="-1">
  Seed for reproducible results. Set to -1 for random.
</ParamField>

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST "https://api.runpod.ai/v2/seedance-v1-5-pro-i2v/runsync" \
    -H "Authorization: Bearer $RUNPOD_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "input": {
        "prompt": "The character slowly turns and smiles at the camera",
        "image": "https://example.com/portrait.jpg",
        "duration": 5,
        "resolution": "720p",
        "aspect_ratio": "16:9",
        "seed": -1
      }
    }'
  ```

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

  response = requests.post(
      "https://api.runpod.ai/v2/seedance-v1-5-pro-i2v/runsync",
      headers={
          "Authorization": f"Bearer {RUNPOD_API_KEY}",
          "Content-Type": "application/json",
      },
      json={
          "input": {
              "prompt": "The character slowly turns and smiles at the camera",
              "image": "https://example.com/portrait.jpg",
              "duration": 5,
              "resolution": "720p",
              "aspect_ratio": "16:9",
              "seed": -1,
          }
      },
  )

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

  ```javascript JavaScript theme={null}
  const response = await fetch(
    "https://api.runpod.ai/v2/seedance-v1-5-pro-i2v/runsync",
    {
      method: "POST",
      headers: {
        Authorization: `Bearer ${RUNPOD_API_KEY}`,
        "Content-Type": "application/json",
      },
      body: JSON.stringify({
        input: {
          prompt: "The character slowly turns and smiles at the camera",
          image: "https://example.com/portrait.jpg",
          duration: 5,
          resolution: "720p",
          aspect_ratio: "16:9",
          seed: -1,
        },
      }),
    }
  );

  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={null}
  {
    "id": "sync-a1b2c3d4-e5f6-7890-abcd-ef1234567890-u1",
    "status": "COMPLETED",
    "delayTime": 25,
    "executionTime": 65432,
    "output": {
      "video_url": "https://video.runpod.ai/abc123/output.mp4",
      "cost": 0.26
    }
  }
  ```
</ResponseExample>

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

## Cost calculation

Seedance 1.5 Pro I2V charges per second of video:

| Resolution | Cost per second |
| ---------- | --------------- |
| 480p       | \$0.024         |
| 720p       | \$0.052         |

Example: A 5-second 720p video costs \$0.26.
