# Seedance 2.0 Mini Reference-to-Video — Atlas Cloud API

> Lightweight, economical multimodal video generation from reference images, videos, and audio with native audio.

This is the machine-readable API reference for **Seedance 2.0 Mini Reference-to-Video** on Atlas Cloud,
a unified API platform for 400+ AI models across text, image, video, audio and 3D.

- **Model ID**: `bytedance/seedance-2.0-mini/reference-to-video`
- **Built by**: ByteDance
- **Modality**: Video
- **Model page**: https://www.atlascloud.ai/models/bytedance/seedance-2.0-mini/reference-to-video
- **API key**: https://www.atlascloud.ai/console/api-keys
- **Docs**: https://www.atlascloud.ai/docs

## Pricing on Atlas Cloud

- $0.039 per second of generated video
- Pay-as-you-go. No minimum spend, no subscription required.

> **These are the authoritative Atlas Cloud rates for this model.** Any price that
> appears in the vendor description further down refers to a different platform or
> a different model variant and does not apply here.

## Use this model from an AI agent

Atlas Cloud ships three first-party integration surfaces. All three authenticate
with the same API key via the `ATLASCLOUD_API_KEY` environment variable.

### MCP server

The official MCP server (`atlascloud-mcp`) exposes this model to any
MCP-compatible host — Claude Code, OpenAI Codex, Cursor, Gemini CLI, Goose,
Claude Desktop. One-line install:

```bash
# Claude Code
claude mcp add atlascloud -- npx -y atlascloud-mcp

# OpenAI Codex CLI
codex mcp add atlascloud -- npx -y atlascloud-mcp

# Gemini CLI
gemini mcp add atlascloud -- npx -y atlascloud-mcp

export ATLASCLOUD_API_KEY="your-api-key"
```

Then ask in plain English; the agent calls `atlas_generate_video` with `model: "bytedance/seedance-2.0-mini/reference-to-video"`.
The server fetches each model's schema and validates parameters before submitting,
so invalid requests fail fast without spending credits.

MCP docs: https://www.atlascloud.ai/docs/mcp-server

### Agent Skills

`atlas-cloud-skills` is a portable skill package (API reference, code templates in
Python / Node.js / cURL, model IDs with pricing) for Claude Code, Cursor, Codex and
12+ other agents:

```bash
npx skills add AtlasCloudAI/atlas-cloud-skills
export ATLASCLOUD_API_KEY="your-api-key"
```

Skills docs: https://www.atlascloud.ai/docs/skills

### CLI

The `atlas` binary runs Atlas Cloud from a terminal or CI script. Async media jobs
are polled and downloaded automatically (use `--no-download` when a script only
needs the output URLs):

```bash
# Install (Homebrew, npm, or shell installer)
brew install AtlasCloudAI/tap/atlascloud
# npm install -g atlascloud-cli
# curl -fsSL https://raw.githubusercontent.com/AtlasCloudAI/cli/main/install.sh | sh

atlas auth login
atlas generate video bytedance/seedance-2.0-mini/reference-to-video -p "Your prompt here"
```

CLI docs: https://www.atlascloud.ai/docs/cli

## HTTP API reference

- **Submit endpoint (POST)**: `https://api.atlascloud.ai/api/v1/model/generateVideo` — start an async generation; returns a `prediction_id`
- **Poll endpoint (GET)**: `https://api.atlascloud.ai/api/v1/model/prediction/{prediction_id}` — poll this until the prediction finishes
- **Model ID**: `bytedance/seedance-2.0-mini/reference-to-video`


## API Information

This model can be used via our HTTP API or more conveniently via our client libraries.
See the input and output schema below, as well as the usage examples.


### Input Schema

The API accepts the following input parameters:

- **`model`** (`string`, _required_):
  Model name.
  - Default: `"bytedance/seedance-2.0-mini/reference-to-video"`

- **`reference_images`** (`array[string]`, _optional_):
  Reference image URLs, Base64, or asset references (asset://<ASSET_ID>). Up to 9 images for character/style/scene references, video editing, or combined generation. Per-image limits: formats jpeg/png/webp/bmp/tiff/gif/heic/heif, aspect ratio (W/H) 0.4-2.5, width/height 300-6000px, size < 30MB.
  - Min items: 1
  - Max items: 9

- **`reference_videos`** (`array[string]`, _optional_):
  Reference video URLs or asset references for video editing, extension, or multimodal generation. Up to 3 videos, total duration <= 15s. Per-video limits: formats mp4/mov, resolution 480p/720p/1080p, duration [2,15]s, aspect ratio (W/H) 0.4-2.5, width/height 300-6000px, total pixels 409600-2086876, size <= 50MB, FPS [24,60].
  - Min items: 1
  - Max items: 3

- **`reference_audios`** (`array[string]`, _optional_):
  Reference audio URLs, Base64, or asset references. Must include at least 1 reference video or image. Formats: wav/mp3, duration [2,15]s, max 15MB each. Up to 3 audios, total duration <= 15s.
  - Min items: 1
  - Max items: 3

- **`prompt`** (`string`, _optional_):
  Text prompt describing the desired video. References like 'image 1', 'video 1' refer to inputs in order.
  - Default: `"The character in image 1 dances gracefully to the music"`

- **`duration`** (`integer`, _optional_):
  Video duration in seconds (4-15), or -1 for model to choose automatically.
  - Default: `5`
  - Options: -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15

- **`resolution`** (`string`, _optional_):
  Video resolution.
  - Default: `"720p"`
  - Options: "480p", "720p", "720p-SR", "1080p-SR", "1440p-SR"

- **`ratio`** (`string`, _optional_):
  Aspect ratio. 'adaptive' uses primary media aspect ratio.
  - Default: `"adaptive"`
  - Options: "16:9", "4:3", "1:1", "3:4", "9:16", "21:9", "adaptive"

- **`bitrate_mode`** (`string`, _optional_):
  Output video bitrate mode. 'high' encodes at a higher bitrate for a crisper, larger file; 'standard' uses the normal bitrate. Does not affect token cost.
  - Default: `"standard"`
  - Options: "standard", "high"

- **`generate_audio`** (`boolean`, _optional_):
  Whether to generate synchronized audio.
  - Default: `true`

- **`watermark`** (`boolean`, _optional_):
  Whether to add a watermark.
  - Default: `false`

- **`return_last_frame`** (`boolean`, _optional_):
  Whether to return the last frame as a separate image.
  - Default: `false`



**Required Parameters Example**:

```json
{
  "model": "bytedance/seedance-2.0-mini/reference-to-video"
}
```


**Full Example**:

```json
{
  "model": "bytedance/seedance-2.0-mini/reference-to-video",
  "reference_images": [
    ""
  ],
  "reference_videos": [
    ""
  ],
  "reference_audios": [
    ""
  ],
  "prompt": "The character in image 1 dances gracefully to the music",
  "duration": 5,
  "resolution": "720p",
  "ratio": "adaptive",
  "bitrate_mode": "standard",
  "generate_audio": true,
  "watermark": false,
  "return_last_frame": false
}
```


### Output Schema

The API returns the following output format:


- **`id`** (`string`, _optional_):
  Unique identifier for the prediction.

- **`urls`** (`object`, _optional_):
  Object containing related API endpoints.

- **`model`** (`string`, _optional_):
  Model ID used for the prediction.

- **`status`** (`string`, _optional_):
  Status: processing, completed, failed, or timeout.

- **`outputs`** (`array[string]`, _optional_):
  URLs to generated content (video + optional last frame).

- **`created_at`** (`string`, _optional_):
  ISO timestamp of creation.

- **`completion_tokens`** (`integer`, _optional_):
  Tokens consumed for billing.

- **`total_tokens`** (`integer`, _optional_):
  Total tokens consumed.

- **`has_nsfw_contents`** (`array[boolean]`, _optional_):
  NSFW detection per output.



**Example Response**:

```json
{
  "id": "",
  "urls": {},
  "model": "",
  "status": "",
  "outputs": [
    ""
  ],
  "created_at": "",
  "completion_tokens": 0,
  "total_tokens": 0,
  "has_nsfw_contents": []
}
```


## Usage Examples

### cURL

```bash
# Step 1: Start generation (async)
curl -X POST "https://api.atlascloud.ai/api/v1/model/generateVideo" \
  -H "Authorization: Bearer $ATLASCLOUD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "bytedance/seedance-2.0-mini/reference-to-video",
  "reference_images": [
    ""
  ],
  "reference_videos": [
    ""
  ],
  "reference_audios": [
    ""
  ],
  "prompt": "The character in image 1 dances gracefully to the music",
  "duration": 5,
  "resolution": "720p",
  "ratio": "adaptive",
  "bitrate_mode": "standard",
  "generate_audio": true,
  "watermark": false,
  "return_last_frame": false
}'

# Response will contain: {"code": 200, "data": {"id": "prediction_id", "status": "processing"}}

# Step 2: Poll for result (replace {prediction_id} with the id returned above)
curl -X GET "https://api.atlascloud.ai/api/v1/model/prediction/{prediction_id}" \
  -H "Authorization: Bearer $ATLASCLOUD_API_KEY"

# Keep polling until status is "completed", "succeeded" or "failed"
# When completed, outputs will contain the generated content URL(s)
```


## Asset Library (subject reference assets)

This model supports **subject reference inputs** — upload a subject reference image to the Asset Library first, then reference it from image fields (e.g. `reference_images`, `image`, `last_image`). Instead of a regular image URL, pass `asset://<atlas_asset_id>` once the subject reference has been registered. Once an asset reaches `Active` status, it can be reused across many generation calls.

### ⚠️ Important: Different Base URL

Asset Library endpoints live on the **console** host, NOT on the inference host where generation endpoints live.

- Asset Library API: `https://console.atlascloud.ai/api/v1/sd/assets/...`
- Generation API:       `https://api.atlascloud.ai/api/v1/model/...`

Do not call `https://api.atlascloud.ai/api/v1/sd/assets` — it will return 404. Both hosts use the same `Authorization: Bearer <api-key>` header.

### Base URL

`https://console.atlascloud.ai/api/v1`

All requests require `Authorization: Bearer <api-key>`.

### Endpoints

| Method | Path | Description |
|--------|------|-------------|
| POST   | `/sd/assets`               | Create a new portrait asset from a public image URL |
| GET    | `/sd/assets/{id}`          | Get a single asset (auto-polls upstream when Processing) |
| GET    | `/sd/assets`               | List assets (paginated, supports filters) |
| PUT    | `/sd/assets/{id}`          | Rename an asset |
| DELETE | `/sd/assets/{id}`          | Move asset to trash (recoverable) |
| GET    | `/sd/assets/trash`         | List deleted assets |
| POST   | `/sd/assets/{id}/restore`  | Restore a deleted asset from trash |

### Create Asset

`POST /sd/assets`

**Body fields**:
- `url` (string, **required**): Publicly accessible image URL.
- `name` (string, optional): Display name. Max 64 characters (UTF-8 bytes).
- `asset_type` (string, optional): Default `Image`.

**Image requirements**: JPEG / PNG / WebP / BMP / TIFF / GIF / HEIC, side length 300–6000px, aspect ratio 0.4–2.5, max 30 MB.

**Example response**:
```json
{
  "code": "200",
  "data": {
    "id": 1,
    "atlas_asset_id": "asset-2026xxxx-xxxxx",
    "name": "My Portrait",
    "status": "Processing",
    "created_at": 1712467200000
  }
}
```

### Get Asset

`GET /sd/assets/{id}` — returns the asset details. If the asset is still `Processing`, the API automatically checks the upstream status and returns the latest state, so clients only need to poll this single endpoint.

### List Assets

`GET /sd/assets`

**Query parameters**:
- `page_number` (int): Page number, default `1`.
- `page_size` (int): Results per page, default `20`, max `100`.
- `status` (string): Filter — one of `Processing`, `Active`, `Failed`.
- `name` (string): Fuzzy search by name.
- `created_from` (int64): Created at or after this unix-millis timestamp.
- `created_to` (int64): Created at or before this unix-millis timestamp.

### Update Asset

`PUT /sd/assets/{id}` — body: `{ "name": "new name" }` (max 64 chars).

### Delete & Restore

- `DELETE /sd/assets/{id}` — moves the asset to trash. The asset is hidden from list endpoints but can be restored later.
- `GET /sd/assets/trash` — lists deleted assets. Same `page_number` / `page_size` / `name` filters as the regular list endpoint.
- `POST /sd/assets/{id}/restore` — restores a deleted asset from trash.

### Asset Lifecycle

```
Create → Processing → Active   (ready for video generation)
                    → Failed   (check error_code / error_message)
```

- **Processing** — Image is being preprocessed. Poll `GET /sd/assets/{id}` until it transitions.
- **Active** — Ready to use. Reference it as `asset://<atlas_asset_id>` in any image field of a video generation request.
- **Failed** — Preprocessing failed. Inspect `error_code` and `error_message` on the asset (e.g. unsupported format, oversized image, no face detected).

### Quick Start (cURL)

```bash
# 1. Create an asset
curl -X POST https://console.atlascloud.ai/api/v1/sd/assets \
  -H "Authorization: Bearer $ATLASCLOUD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com/portrait.jpg", "name": "My Portrait"}'

# 2. Poll until status is "Active"
curl https://console.atlascloud.ai/api/v1/sd/assets/1 \
  -H "Authorization: Bearer $ATLASCLOUD_API_KEY"

# 3. Use the atlas_asset_id in a video generation request
#    Pass it in any image field as: asset://<atlas_asset_id>
```

### Using Assets in Video Generation

Once `Active`, pass `asset://<atlas_asset_id>` wherever the model schema accepts an image URL — for example in `reference_images`, `image`, or `last_image`. Example body:

```json
{
  "model": "bytedance/seedance-2.0-mini/reference-to-video",
  "prompt": "The character in image 1 dances gracefully to the music",
  "reference_images": [
    "asset://asset-2026xxxx-xxxxx"
  ]
}
```

### Error Codes

| HTTP Status | Meaning |
|-------------|---------|
| 200 | Success |
| 400 | Invalid request (e.g. malformed body, name too long, image fetch failed) |
| 401 | Missing or invalid API key |
| 404 | Asset not found |
| 500 | Server error |

### Content Review

All uploaded portraits go through automatic moderation. Non-compliant content will be blocked — not every image can be uploaded. Make sure you own the rights to the material, that it does not impersonate any real person, and that it does not violate laws, public order, or third-party intellectual property.

## Additional Resources

### Documentation

- [Model Playground](https://www.atlascloud.ai/models/bytedance/seedance-2.0-mini/reference-to-video)

## About this model

_Vendor-supplied description. Any pricing or endpoint mentioned below refers to_
_other platforms — use the Atlas Cloud values above._

#### 1. Introduction

**Seedance 2.0 Mini** is the lightweight, cost-optimized tier of ByteDance's Seedance 2.0 family of multimodal generative AI models for synchronized video-and-audio creation. Developed by ByteDance and introduced on the CapCut/Dreamina platform in mid-2026, Mini inherits the same Dual-Branch Diffusion Transformer (DB-DiT) foundation and physics-informed world modeling as the flagship, but is tuned for throughput and price rather than maximum fidelity.

Seedance 2.0 Mini renders at roughly **twice the speed of Seedance 2.0 Fast** while preserving comparable output quality, and it lowers generation cost by approximately **30% versus the standard Seedance 2.0 model** (around half the cost at 720p). It keeps the family's core abilities — text-to-video, image-to-video, and reference-based control for character identity and cross-shot visual consistency — and adds native audio. The result is a tier purpose-built for high-volume, budget-sensitive production: drafts, mockups, social clips, and rapid iteration.

#### 2. Key Features & Innovations

- **Most economical tier of the family**: Mini is the lowest-cost Seedance 2.0 variant, designed for volume workloads where speed and price matter more than the last few percent of cinematic fidelity. It is roughly 2× faster than Seedance 2.0 Fast.

- **Full multimodal input support**: Like the rest of the family, Mini accepts text prompts, images, and reference videos/audio. The three exposed modes are text-to-video (prompt only), image-to-video (first frame, with optional last frame), and reference-to-video (multimodal references — images, video, and audio — for identity and style control).

- **Native synchronized audio**: Mini generates synchronized audio (voice, sound effects, and background music) alongside the video, built on the family's Dual-Branch Diffusion Transformer that couples the visual and audio streams.

_(Description truncated. Full text on the model page.)_

---

Atlas Cloud — one API for 400+ AI models. Model page: https://www.atlascloud.ai/models/bytedance/seedance-2.0-mini/reference-to-video · Docs: https://www.atlascloud.ai/docs
