> ## 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.

# Seedance 2.0 — Omni Reference to Video

> Generate videos with multiple reference images, videos, and audio tracks using ByteDance's Seedance 2.0 model

Generate videos using multiple reference media inputs with ByteDance's Seedance 2.0. Reference uploaded images, videos, and audio tracks directly inside your prompt with `@image1`, `@video1`, and `@audio1` placeholders.

| Property            | Value                                   |
| ------------------- | --------------------------------------- |
| **Provider**        | ByteDance                               |
| **Model**           | Seedance 2.0                            |
| **Capability**      | Omni Reference to Video                 |
| **Base Cost**       | 240,000 micro-cents/second (\$0.24/sec) |
| **Processing Time** | \~300 seconds                           |

## Request Body

<ParamField body="model" type="string" required placeholder="bytedance/seedance-2.0/omni-reference">
  Model slug. Use `bytedance/seedance-2.0/omni-reference` for omni reference to video generation.
</ParamField>

<ParamField body="input" type="object" required>
  Input parameters for omni reference to video generation.

  <Expandable title="properties" defaultOpen>
    <ParamField body="prompt" type="string" required>
      Text description of the desired video. Use `@image1`, `@video1`, `@audio1` placeholders to reference uploaded media (max 5000 characters).
    </ParamField>

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

    <ParamField body="omni_images" type="array">
      Reference images (max 9). Reference them in the prompt as `@image1`..`@image9`.
    </ParamField>

    <ParamField body="omni_videos" type="array">
      Reference video clips (max 3). Reference them in the prompt as `@video1`..`@video3`.
    </ParamField>

    <ParamField body="omni_audios" type="array">
      Reference audio tracks (max 3). Reference them in the prompt as `@audio1`..`@audio3`.
    </ParamField>

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

    <ParamField body="resolution" type="string">
      Output resolution. Default: `720p`. Options: `720p`, `1440p`.
    </ParamField>

    <ParamField body="fps" type="string">
      Frames per second. Default: `24`. Options: `24`, `30`, `60`.
    </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:** 240,000 micro-cents per second (\$0.24/sec)

```
finalCost = baseCost × duration × resolution × fps
```

| Factor         | Option  | Multiplier |
| -------------- | ------- | ---------- |
| **Duration**   | `4`     | 4x         |
|                | `5`     | 5x         |
|                | `6`     | 6x         |
|                | `7`     | 7x         |
|                | `8`     | 8x         |
|                | `9`     | 9x         |
|                | `10`    | 10x        |
|                | `11`    | 11x        |
|                | `12`    | 12x        |
|                | `13`    | 13x        |
|                | `14`    | 14x        |
|                | `15`    | 15x        |
| **Resolution** | `720p`  | 1x         |
|                | `1440p` | 2x         |
| **FPS**        | `24`    | 1x         |
|                | `30`    | 1.1x       |
|                | `60`    | 1.25x      |

<Tip>
  **Default cost:** 5 seconds, 720p, 24 fps = 240,000 × 5 × 1 × 1 = **1,200,000 micro-cents (\$1.20)**
</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": "bytedance/seedance-2.0/omni-reference",
      "input": {
        "prompt": "The character from @image1 walks through the city street shown in @image2",
        "aspect_ratio": "16:9",
        "omni_images": [
          "https://example.com/image.jpg",
          "https://example.com/image.jpg"
        ],
        "duration": "5",
        "resolution": "720p",
        "fps": "24"
      }
    }'
  ```

  ```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": "bytedance/seedance-2.0/omni-reference",
          "input": {
              "prompt": "The character from @image1 walks through the city street shown in @image2",
              "aspect_ratio": "16:9",
              "omni_images": [
                  "https://example.com/image.jpg",
                  "https://example.com/image.jpg"
              ],
              "duration": "5",
              "resolution": "720p",
              "fps": "24"
          }
      }
  )

  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: "bytedance/seedance-2.0/omni-reference",
      input: {
        prompt: "The character from @image1 walks through the city street shown in @image2",
        aspect_ratio: "16:9",
        omni_images: [
          "https://example.com/image.jpg",
          "https://example.com/image.jpg"
        ],
        duration: "5",
        resolution: "720p",
        fps: "24"
      }
    })
  });

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