# Seedance 2.5 This file is the focused AI-readable context for one UniAll documentation page. URL: https://docs.uniall.ai/models/video/seedance-2-5 Locale: en Markdown: https://docs.uniall.ai/ai/pages/models/video/seedance-2-5.md Description: Create text, image, multimodal-reference, editing, and extension video tasks with Seedance 2.5 through UniAll. Agent guidance: - Use this page when the user is asking about this specific route or model capability. - Preserve endpoint paths, JSON keys, model IDs, and placeholder values exactly. - `{BASE_URL}` means `https://api.uniall.ai`; treat `sk-***` and `task_xxx` as safe placeholders, not real secrets. ## Page Markdown `{BASE_URL}` is `https://api.uniall.ai` throughout this page. Updated: 2026-08-12 ## Overview UniAll exposes Seedance 2.5 through one stable public model ID: `seedance2.5`. It supports text-to-video, first-frame and first-and-last-frame generation, multimodal references, video editing, video extension, reusable `asset://` media, and optional web search. | Capability | Required input | Key rule | | --- | --- | --- | | Text-to-video | Prompt | Set `resolution` and `duration`. | | First-frame video | One first-frame image | Omit `aspect_ratio` or use `auto`. | | First-and-last-frame video | One first-frame and one last-frame image | Omit `aspect_ratio` or use `auto`. | | Multimodal reference | Images, videos, or audio | Text is optional; audio-only reference requests are allowed. | | Video editing | Prompt and one video | Set `operation: "edit_video"` and `duration: "auto"`. | | Video extension | Prompt and one video | Set `operation: "extend_video"` explicitly. | ## Endpoints And Authentication | Action | Method | Path | | --- | --- | --- | | Create task | `POST` | `/v1/videos` | | Query task | `GET` | `/v1/videos/{task_id}` | | Download completed video | `GET` | `/v1/videos/{task_id}/content` | Compatible creation and query aliases remain available to existing clients: ```http POST /v1/videos/generations POST /v1/video/generations GET /v1/videos/generations/{task_id} GET /v1/video/generations/{task_id} ``` New integrations should use `/v1/videos` and `/v1/videos/{task_id}`. ```http Authorization: Bearer sk-*** Content-Type: application/json ``` ## Request Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `model` | string | Yes | Must be `seedance2.5`. | | `resolution` | string | Yes | `480p` or `720p`. | | `size` | string | No | Compatibility alias for `resolution`. If both are present, they must match. | | `duration` | integer/string | Yes | Integer from `4` through `30`, or `auto`. Operation-specific rules apply. | | `prompt` | string | Conditional | Text instruction. Required for text generation, editing, and extension; optional for media-only reference requests. | | `aspect_ratio` | string | No | `auto`, `21:9`, `16:9`, `4:3`, `1:1`, `3:4`, or `9:16`. | | `ratio` | string | No | Compatibility alias for `aspect_ratio`; `adaptive` is normalized to `auto`. | | `output_format` | string | No | `mp4` or `mov`; default `mp4`. Compatible clients may use `extra_body.output_format`. | | `content` | object[] | No | Multimodal image, video, and audio items with explicit roles. | | `operation` | string | Conditional | Explicitly required for `edit_video` and `extend_video`; use `reference_to_video` for multimodal reference generation when an operation is sent. | | `generate_audio` | boolean | No | Whether the task should generate audio. | | `seed` | integer | No | Random seed for reproducible variation where supported. | | `watermark` | boolean | No | Whether to add a watermark. | | `return_last_frame` | boolean | No | Whether to return the final generated frame when available. | | `tools` | object[] | No | Only `[{"type":"web_search"}]` is accepted. | The following fields are not part of the public Seedance 2.5 contract and are rejected: `draft`, `frames`, `camera_fixed`, and `service_tier: "flex"`. ## Minimal Text-To-Video Request ```bash curl -X POST "{BASE_URL}/v1/videos" \ -H "Authorization: Bearer sk-***" \ -H "Content-Type: application/json" \ -d '{ "model": "seedance2.5", "prompt": "A cinematic city street after rain", "resolution": "720p", "duration": 8, "aspect_ratio": "16:9", "output_format": "mp4" }' ``` ## Media Inputs Use `content[]` for new multimodal integrations. Each item carries one media type and an explicit role. | Item type | URL field | Supported roles | | --- | --- | --- | | `image_url` | `image_url.url` | `first_frame`, `last_frame`, `reference_image` | | `video_url` | `video_url.url` | `reference_video` | | `audio_url` | `audio_url.url` | `reference_audio` | Media URLs may be public HTTP(S) URLs or valid `asset://` references. HTTP(S) media must remain reachable by the UniAll service without cookies or custom request headers. See the [Seedance Material Library](/models/video/seedance-2-0/material-library) for creating reusable `asset://` inputs. The compatibility fields `image`, `images`, `video`, `videos`, `audios`, and `last_image` remain accepted. Do not send conflicting values through both `content[]` and compatibility fields. ### Media Limits - Up to `30` images. - Up to `10` videos. - Up to `10` audio files. - Up to `50` media items in total. - A multimodal request may omit text. - An audio-only reference request is valid. ## Operation Rules | Mode | `operation` | `duration` | `aspect_ratio` | | --- | --- | --- | --- | | Text-to-video | Omit | `auto` or integer `4..30` | Any supported value | | First-frame video | Omit | `auto` or integer `4..30` | Omit or `auto` | | First-and-last-frame video | Omit | `auto` or integer `4..30` | Omit or `auto` | | Multimodal reference | `reference_to_video` when specified | `auto` or integer `4..30` | Follow the media mode; frame inputs require `auto` | | Video editing | `edit_video` required | `auto` only | Omit or `auto` | | Video extension | `extend_video` required | `auto` or integer `4..30` | Omit or `auto` | Do not rely on prompt keywords to select editing or extension. Those requests must carry an explicit `operation`. ## Request Examples ### First-And-Last-Frame Video ```json { "model": "seedance2.5", "prompt": "Move naturally from the first composition to the last while preserving the subject.", "resolution": "720p", "duration": 10, "aspect_ratio": "auto", "content": [ { "type": "image_url", "image_url": { "url": "https://example.com/first.png" }, "role": "first_frame" }, { "type": "image_url", "image_url": { "url": "https://example.com/last.png" }, "role": "last_frame" } ] } ``` For a single first frame, send only the `first_frame` item. In both frame modes, fixed aspect ratios are rejected because the source frame determines the composition. ### Multimodal Reference ```json { "model": "seedance2.5", "operation": "reference_to_video", "resolution": "720p", "duration": 12, "content": [ { "type": "image_url", "image_url": { "url": "https://example.com/product.png" }, "role": "reference_image" }, { "type": "video_url", "video_url": { "url": "https://example.com/motion.mp4" }, "role": "reference_video" }, { "type": "audio_url", "audio_url": { "url": "https://example.com/music.mp3" }, "role": "reference_audio" } ] } ``` ### Video Editing ```json { "model": "seedance2.5", "prompt": "Replace the sky and preserve the subject", "video": "https://example.com/source.mp4", "operation": "edit_video", "resolution": "720p", "duration": "auto", "aspect_ratio": "auto" } ``` ### Video Extension ```json { "model": "seedance2.5", "prompt": "Continue the camera movement into the illuminated square.", "video": "asset://mat_xxxxxxxxxxxxx", "operation": "extend_video", "resolution": "720p", "duration": 8, "aspect_ratio": "auto", "output_format": "mov" } ``` ### Web Search ```json { "model": "seedance2.5", "prompt": "Create a concise visual recap of the latest public spaceflight milestone.", "resolution": "720p", "duration": 8, "tools": [ { "type": "web_search" } ] } ``` Web search can be combined with media inputs. No other `tools` shape is accepted. ## Create Response And Task Lifecycle ```json { "id": "task_xxxxxxxxxxxxx", "task_id": "task_xxxxxxxxxxxxx", "object": "video.generation.job", "model": "seedance2.5", "status": "queued", "progress": 0, "created_at": 1786492800 } ``` Store the public `id` or `task_id`. Poll `GET /v1/videos/{task_id}` every 2 to 5 seconds and stop when `status` is `completed` or `failed`. A completed task returns a public result URL; you can also retrieve the file through the authenticated `/v1/videos/{task_id}/content` endpoint. See [Video Generation Overview](/models/video/overview#video-task-lifecycle) for public status fields, completed and failed response examples, and download handling. Client applications should use only the public task ID, status, result, usage, and error fields documented by UniAll. ## Billing Notes Seedance 2.5 is settled by valid completion Token usage after the task finishes. Any pre-deduction is an estimate; use the completed task's effective `usage` and settlement record as the final amount. | Input type | Reference base rate per 1 million completion Tokens | | --- | --- | | Request without video input | About `$10.294117647` (`70 CNY / 6.8`) | | Request containing video input | About `$6.176470588` (`42 CNY / 6.8`) | - `480p` and `720p` use the same Token unit rate. - These values are completion-Token reference rates, not fixed per-second prices. - Account and pricing-group rules can change the final user price. Use the current UniAll pricing page and task settlement record as the authoritative source. ## Common Errors | Error | Cause | Fix | | --- | --- | --- | | Missing parameter | `resolution` or `duration` is absent | Send both required fields. | | Invalid resolution | `1080p`, `4k`, or another unsupported value was sent | Use `480p` or `720p`. | | Conflicting aliases | `resolution` and `size` contain different values | Remove `size` or make the values identical. | | Invalid edit duration | `edit_video` uses an integer duration | Set `duration` to `auto`. | | Invalid aspect ratio | A frame, edit, or extension request uses a fixed ratio | Omit `aspect_ratio` or set it to `auto`. | | Media limit exceeded | Per-type or total media limits were exceeded | Reduce media to the documented limits. | | Media unavailable | A URL is private, expired, or unreachable from the public internet | Use a stable public URL or an available `asset://` material. | | Invalid tools | `tools` is not exactly the supported web-search structure | Send `[{"type":"web_search"}]` or omit `tools`. | | Unsupported field | `draft`, `frames`, `camera_fixed`, or `service_tier: "flex"` was sent | Remove the unsupported field. | ## Related Pages - [Video Generation Overview](/models/video/overview) - [Seedance 2.0](/models/video/seedance-2-0) - [Seedance Material Library](/models/video/seedance-2-0/material-library) - [Models](/models)