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

# Seedance 2.0 Fast

> ByteDance's Seedance 2.0 Fast video generation model with multimodal reference, video editing, extension, audio generation, and web search.

Seedance 2.0 Fast is ByteDance's latest video generation model available through Upmore API. It supports text-to-video, image-to-video, multimodal reference input, video editing, video extension, and synchronized audio generation.

## Key capabilities

| Feature                             | Description                                                                                       |
| ----------------------------------- | ------------------------------------------------------------------------------------------------- |
| Text-to-video                       | Generate video from text prompts                                                                  |
| Image-to-video (first frame)        | Use an image as the first frame                                                                   |
| Image-to-video (first + last frame) | Use two images as first and last frames                                                           |
| Multimodal reference                | Combine images, videos, and audio as references (1–9 images, up to 3 videos, up to 3 audio clips) |
| Video editing                       | Modify elements in an existing video using reference images                                       |
| Video extension                     | Extend and concatenate reference videos                                                           |
| Audio generation                    | Auto-generate synchronized voice, sound effects, and background music                             |
| Web search                          | Enhance generation with real-time internet content (text-to-video only)                           |
| Return last frame                   | Retrieve the last frame of generated video                                                        |

## Output specifications

| Property     | Value                                     |
| ------------ | ----------------------------------------- |
| Resolution   | 480p, 720p, 1080p                         |
| Aspect ratio | 16:9, 4:3, 1:1, 3:4, 9:16, 21:9, adaptive |
| Duration     | 4–15 seconds                              |
| Format       | mp4                                       |

## Workflow

```
1. POST /v1/video/generations  →  task_id
2. Poll GET /v1/video/generations/{task_id}  →  status
3. When status = "succeeded"  →  download video URL (valid 24 hours)
```

## Examples

### Text-to-video

<CodeGroup>
  ```bash cURL theme={null}
  curl https://api.upmore.net/v1/video/generations \
    -H "Authorization: Bearer YOUR_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "model": "seedance-fast",
      "content": [
        {
          "type": "text",
          "text": "A cat playing piano in a sunlit room, cinematic lighting"
        }
      ],
      "generate_audio": true,
      "ratio": "16:9",
      "duration": 8
    }'
  ```

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

  headers = {"Authorization": "Bearer YOUR_API_KEY", "Content-Type": "application/json"}

  # Step 1: create task
  resp = requests.post(
      "https://api.upmore.net/v1/video/generations",
      headers=headers,
      json={
          "model": "seedance-fast",
          "content": [
              {"type": "text", "text": "A cat playing piano in a sunlit room, cinematic lighting"}
          ],
          "generate_audio": True,
          "ratio": "16:9",
          "duration": 8
      }
  )
  task_id = resp.json()["task_id"]

  # Step 2: poll for result
  while True:
      result = requests.get(
          f"https://api.upmore.net/v1/video/generations/{task_id}",
          headers=headers
      ).json()
      status = result["data"]["status"]
      if status == "SUCCESS":
          print("Video URL:", result["data"]["data"]["content"]["video_url"])
          break
      elif status == "FAILED":
          print("Failed:", result["data"].get("fail_reason"))
          break
      time.sleep(5)
  ```
</CodeGroup>

### Multimodal reference (image + video + audio)

```bash cURL theme={null}
curl https://api.upmore.net/v1/video/generations \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-fast",
    "content": [
      {
        "type": "text",
        "text": "Extend the video with a smooth camera pan, festive atmosphere"
      },
      {
        "type": "image_url",
        "image_url": {"url": "https://example.com/character.jpg"},
        "role": "reference_image"
      },
      {
        "type": "video_url",
        "video_url": {"url": "https://example.com/clip.mp4"},
        "role": "reference_video"
      },
      {
        "type": "audio_url",
        "audio_url": {"url": "https://example.com/bgm.mp3"},
        "role": "reference_audio"
      }
    ],
    "generate_audio": true,
    "ratio": "16:9",
    "duration": 11
  }'
```

### Video editing

```bash cURL theme={null}
curl https://api.upmore.net/v1/video/generations \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-fast",
    "content": [
      {
        "type": "text",
        "text": "Replace the water bottle in the video with the perfume bottle from the image, keep camera movement unchanged"
      },
      {
        "type": "image_url",
        "image_url": {"url": "https://example.com/perfume.jpg"},
        "role": "reference_image"
      },
      {
        "type": "video_url",
        "video_url": {"url": "https://example.com/original.mp4"},
        "role": "reference_video"
      }
    ],
    "generate_audio": true,
    "ratio": "16:9",
    "duration": 5
  }'
```

### Web search enhanced (text-to-video only)

```bash cURL theme={null}
curl https://api.upmore.net/v1/video/generations \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-fast",
    "content": [
      {
        "type": "text",
        "text": "Macro shot of cherry blossoms in spring, petals falling slowly"
      }
    ],
    "generate_audio": true,
    "ratio": "16:9",
    "duration": 11,
    "tools": [{"type": "web_search"}]
  }'
```

## Parameters

| Parameter                 | Type    | Required    | Description                                                                          |
| ------------------------- | ------- | ----------- | ------------------------------------------------------------------------------------ |
| `model`                   | string  | Yes         | `seedance-fast`                                                                      |
| `content`                 | array   | Yes         | Input content array (text, image\_url, video\_url, audio\_url items)                 |
| `content[].type`          | string  | Yes         | `text`, `image_url`, `video_url`, or `audio_url`                                     |
| `content[].text`          | string  | Text items  | Text prompt (max 500 Chinese chars / 1000 English words)                             |
| `content[].image_url.url` | string  | Image items | Image URL, Base64 data URI, or `asset://<ID>`                                        |
| `content[].video_url.url` | string  | Video items | Video URL or `asset://<ID>` (mp4/mov, max 50 MB, 2–15s)                              |
| `content[].audio_url.url` | string  | Audio items | Audio URL, Base64 data URI, or `asset://<ID>` (wav/mp3, max 15 MB)                   |
| `content[].role`          | string  | Conditional | `first_frame`, `last_frame`, `reference_image`, `reference_video`, `reference_audio` |
| `generate_audio`          | boolean | No          | Generate synchronized audio. Default: `true`                                         |
| `resolution`              | string  | No          | `480p`, `720p`, or `1080p`. Default: `720p`                                          |
| `ratio`                   | string  | No          | `16:9`, `4:3`, `1:1`, `3:4`, `9:16`, `21:9`, `adaptive`. Default: `adaptive`         |
| `duration`                | integer | No          | 4–15 seconds. Default: `5`                                                           |
| `tools`                   | array   | No          | `[{"type": "web_search"}]` for web search (text-to-video only)                       |
| `watermark`               | boolean | No          | Add watermark. Default: `false`                                                      |

### Input modes

| Mode                                | Content items                       | `role` values                                           |
| ----------------------------------- | ----------------------------------- | ------------------------------------------------------- |
| Text-to-video                       | 1× text                             | —                                                       |
| Image-to-video (first frame)        | text (optional) + 1× image\_url     | `first_frame` or omit                                   |
| Image-to-video (first + last frame) | text (optional) + 2× image\_url     | `first_frame` + `last_frame`                            |
| Multimodal reference                | text (optional) + image/video/audio | `reference_image`, `reference_video`, `reference_audio` |
| Video editing                       | text + image\_url + video\_url      | `reference_image` + `reference_video`                   |
| Video extension                     | text + video\_url(s)                | `reference_video`                                       |

> **Note:** First frame, first+last frame, and multimodal reference are mutually exclusive — do not mix them in the same request.

### Resolution pixel values

| Resolution | 16:9      | 4:3       | 1:1       | 3:4       | 9:16      | 21:9     |
| ---------- | --------- | --------- | --------- | --------- | --------- | -------- |
| 480p       | 864x496   | 752x560   | 640x640   | 560x752   | 496x864   | 992x432  |
| 720p       | 1280x720  | 1112x834  | 960x960   | 834x1112  | 720x1280  | 1470x630 |
| 1080p      | 1920x1080 | 1664x1248 | 1440x1440 | 1248x1664 | 1080x1920 | 2208x944 |
