# Seedance 2.5

> Our strongest video model: up to 30 seconds and 1080p, with photos, videos and audio as references.

Source: https://docs.nocamclub.com/models/seedance-2.5

- **Model id:** `seedance-2.5`
- **Makes:** videos
- **From:** 30 credits ($0.30)
- **Routes:** 2

## Writing prompts

- Name every file and say what it's for: "img1 walks through the city from img2, moving like the dancer in video1, to the rhythm of audio1." See [Files in prompts](https://docs.nocamclub.com/api/files-in-prompts.md).
- With `reference_mode: "frames"` you set the first and last frame. With `ingredients`, the default, the model uses the files freely.
- Sound is generated with the picture, and you can steer it in the prompt.

## Good to know

- **Video among the files costs much more.** Those prices have `with_video: true`, because the seconds of your video are billed too. All videos together: up to 30 s. Photos and audio files don't change the price.
- Reference videos showing a person may be refused as a real person, even when they're AI-made. Video without people, or a photo, is safer.
- Long clips take minutes: 5 to 10 is normal. Poll.


## Call it

**cURL**

```bash
# A new Idempotency-Key for each new thing you want made, the same one when you retry it.
curl https://api.nocamclub.com/v1/generations \
  -H "Authorization: Bearer $NOCAM_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: seedance-2.5-$(date +%s)" \
  -d '{
  "model": "seedance-2.5",
  "input": {
    "prompt": "img1 walks along a rainy street at night, neon signs, slow camera move",
    "duration": 5,
    "resolution": "720p",
    "aspect_ratio": "9:16",
    "images": [
      "https://docs.nocamclub.com/examples/mascot.jpg"
    ]
  }
}'
```

**JavaScript**

```js
const res = await fetch("https://api.nocamclub.com/v1/generations", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.NOCAM_API_KEY}`,
    "Content-Type": "application/json",
    "Idempotency-Key": crypto.randomUUID(),
  },
  body: JSON.stringify({
    "model": "seedance-2.5",
    "input": {
      "prompt": "img1 walks along a rainy street at night, neon signs, slow camera move",
      "duration": 5,
      "resolution": "720p",
      "aspect_ratio": "9:16",
      "images": [
        "https://docs.nocamclub.com/examples/mascot.jpg"
      ]
    }
  }),
});
const generation = await res.json();
```

**Python**

```python
import os, uuid, requests

res = requests.post(
    "https://api.nocamclub.com/v1/generations",
    headers={"Authorization": f"Bearer {os.environ['NOCAM_API_KEY']}", "Idempotency-Key": str(uuid.uuid4())},
    json={
        "model": "seedance-2.5",
        "input": {
            "prompt": "img1 walks along a rainy street at night, neon signs, slow camera move",
            "duration": 5,
            "resolution": "720p",
            "aspect_ratio": "9:16",
            "images": [
                "https://docs.nocamclub.com/examples/mascot.jpg"
            ]
        }
    },
    timeout=90,
)
generation = res.json()
```

**MCP tool**

```json
{
  "name": "generate",
  "arguments": {
    "model": "seedance-2.5",
    "prompt": "img1 walks along a rainy street at night, neon signs, slow camera move",
    "duration": 5,
    "resolution": "720p",
    "aspect_ratio": "9:16",
    "images": [
      "https://docs.nocamclub.com/examples/mascot.jpg"
    ]
  }
}
```

Then poll `GET /v1/generations/{id}` until it finishes. See [Generations](https://docs.nocamclub.com/api/generations.md).

## Options

| Field | Takes | Default | What it is |
|---|---|---|---|
| `prompt` (required) | Up to 10000 characters |  | What to make. Refer to files by order: img1, img2, video1, audio1. |
| `aspect_ratio` | `9:16`, `16:9`, `1:1`, `3:4`, `4:3`, `21:9` | `9:16` |  |
| `resolution` | `720p`, `1080p`, `480p` | `720p` |  |
| `duration` | `5`, `4`, `6`, `8`, `10`, `12`, `15`, `20`, `25`, `30` | `5` | Clip length, seconds. |
| `reference_mode` | `ingredients`, `frames` | `ingredients` | How the photos are used. |
| `images` | Up to 30 |  | Photos: file ids from /v1/uploads, or https addresses. |
| `videos` | Up to 10 |  | Videos, up to 30 s in total: file ids from /v1/uploads, or https addresses. |
| `audios` | Up to 10 |  | Audio files, up to 15 s each: file ids from /v1/uploads, or https addresses. |

Any other field is refused. How files work: [Uploads](https://docs.nocamclub.com/api/uploads.md) and [Files in prompts](https://docs.nocamclub.com/api/files-in-prompts.md).

## Prices

In credits (1 credit = $0.01), as of 2026-11-07. For the current list: `GET /v1/models/seedance-2.5`.

| Length | 720p | 1080p | 480p |
|---|---|---|---|
| 4 s | 60 | 74 | 30 |
| 5 s | 60 | 200 | 37 |
| 6 s | 90 | 200 | 44 |
| 8 s | 90 | 260 | 59 |
| 10 s | 90 | 300 | 73 |
| 12 s | 130 | 350 | 88 |
| 15 s | 130 | 430 | 110 |
| 20 s | 200 | 430 | 146 |
| 25 s | 200 | 460 | 183 |
| 30 s | 200 | 640 | 219 |

With a video among the files (`with_video`):

| Length | 720p | 1080p | 480p |
|---|---|---|---|
| 4 s | 600 | 408 | 340 |
| 5 s | 650 | 420 | 350 |
| 6 s | 700 | 432 | 360 |
| 8 s | 810 | 456 | 380 |
| 10 s | 910 | 480 | 400 |
| 12 s | 1010 | 504 | 420 |
| 15 s | 1170 | 540 | 450 |
| 20 s | 1430 | 600 | 500 |
| 25 s | 1680 | 660 | 550 |
| 30 s | 1940 | 720 | 600 |
