# seedance-2.5-image-to-video-1080p > Seedance 2.5 Image-to-Video is the early-access preview build of the Seedance 2.5 family, animating a single image into video. This 1080p variant is natively rendered by Seegen (not upscaled from 720p) and supports clips up to 30 seconds. It is priced above the standard 720p tier. ## Overview - **Endpoint**: `POST https://api.muapi.ai/api/v1/seedance-2.5-image-to-video-1080p` - **Model ID**: `seedance-2.5-image-to-video-1080p` - **Category**: image to video - **Variant**: Image to Video 1080p - **Family**: seedance-2.5 - **Cost**: 4.25 credits per call (some models compute cost dynamically based on params) ## API Usage MuApi uses a **submit-then-poll** pattern: submit a job, get a `request_id`, then poll the predictions endpoint until `status` is `completed`. Optionally pass `?webhook=YOUR_URL` on the submit call to receive a POST callback when the job finishes (skip polling). **Authentication**: send your MuApi key in the `x-api-key` header. Get one at https://muapi.ai/access-keys. ### 1. Submit a job ```http POST https://api.muapi.ai/api/v1/seedance-2.5-image-to-video-1080p Content-Type: application/json x-api-key: YOUR_API_KEY ``` **Minimum (required only):** ```json { "prompt": "", "image_url": "https://example.com/your-image_url" } ``` **Full example (all params):** ```json { "prompt": "", "image_url": "https://example.com/your-image_url", "duration": 5, "aspect_ratio": "16:9", "seed": "", "high_bitrate": false } ``` **Response:** ```json { "request_id": "abc123", "status": "processing" } ``` ### 2. Poll for the result ```http GET https://api.muapi.ai/api/v1/predictions/{request_id}/result x-api-key: YOUR_API_KEY ``` Possible `status` values: `queued`, `pending`, `processing`, `completed`, `failed`, `cancelled`. Poll every 2-5 seconds until terminal. When `completed`, the result URLs are in the `outputs` array. **Example response when `completed`:** ```json { "id": "abc123", "status": "completed", "outputs": [ "https://cdn.muapi.ai/.../output.png" ], "urls": { "get": "https://api.muapi.ai/api/v1/predictions/abc123/result" }, "created_at": "2026-05-08T12:34:56Z", "has_nsfw_contents": [] } ``` ### cURL ```bash # 1. Submit REQUEST_ID=$(curl -s -X POST https://api.muapi.ai/api/v1/seedance-2.5-image-to-video-1080p \ -H "x-api-key: $MUAPI_API_KEY" \ -H "Content-Type: application/json" \ -d '{"prompt":"","image_url":"https://example.com/your-image_url"}' | jq -r .request_id) # 2. Poll until completed while :; do RESP=$(curl -s https://api.muapi.ai/api/v1/predictions/$REQUEST_ID/result -H "x-api-key: $MUAPI_API_KEY") STATUS=$(echo "$RESP" | jq -r .status) [ "$STATUS" = "completed" ] && echo "$RESP" | jq .outputs && break [ "$STATUS" = "failed" ] && echo "$RESP" && exit 1 sleep 3 done ``` ### Python ```python import os, time, requests API = "https://api.muapi.ai/api/v1" headers = {"x-api-key": os.environ["MUAPI_API_KEY"]} r = requests.post(f"{API}/seedance-2.5-image-to-video-1080p", headers=headers, json={"prompt":"","image_url":"https://example.com/your-image_url"}) request_id = r.json()["request_id"] while True: res = requests.get(f"{API}/predictions/{request_id}/result", headers=headers).json() if res["status"] == "completed": print(res["outputs"]); break if res["status"] == "failed": raise RuntimeError(res.get("error")); time.sleep(3) ``` ## Input Schema The API accepts the following input parameters: - **`prompt`** (`string`, _required_): Text prompt describing the desired motion and style. - **`image_url`** (`string`, _required_): URL of the input image to animate into video. - **`duration`** (`int`, _optional_): The duration of the generated video in seconds. - Default: `5` - **`aspect_ratio`** (`string`, _optional_): Aspect ratio of the output video. - Default: `"16:9"` - Options: `"16:9"`, `"9:16"`, `"1:1"`, `"4:3"`, `"3:4"`, `"21:9"`, `"9:21"` - **`seed`** (`int`, _optional_): Random seed for reproducible generation. Use -1 for random. - **`high_bitrate`** (`boolean`, _optional_): Enable high bitrate mode for better visual fidelity. Produces larger files. - Default: `false` ## Output Schema The polling endpoint returns the following fields: - **`id`** (`string`): The request ID. - **`status`** (`string`): One of `queued`, `pending`, `processing`, `completed`, `failed`, `cancelled`. - **`outputs`** (`array`): URLs to generated images/videos/audio. Empty until `status` is `completed`. - **`urls.get`** (`string`): Self-link to re-fetch this prediction. - **`error`** (`string` | `null`): Error message if `status` is `failed`. - **`created_at`** (`string`): ISO-8601 timestamp of when the request was created. - **`has_nsfw_contents`** (`array of boolean`): Per-output NSFW detection flags. ## Webhooks (optional) Append `?webhook=https://your-server/path` to the submit URL. When the job reaches a terminal state, MuApi will POST the same shape as the polling response to your URL — no polling needed. ## Agent Integration MuApi ships an MCP server and CLI so agents (Claude Code, Cursor, custom) can call this endpoint without writing HTTP code: ```bash # Install the CLI npm install -g muapi-cli # Authenticate once muapi auth login # Expose all MuApi models as MCP tools to your agent muapi mcp serve ``` The MCP server exposes tools that wrap submit + poll for every model, including `seedance-2.5-image-to-video-1080p`. See `muapi --help` for category-specific shortcuts (`muapi image generate`, `muapi video from-image`, etc.). ## Related Models - [Spicy Image to Video](https://muapi.ai/playground/seedance-2.5-spicy-image-to-video) - [Spicy Video Edit 480p](https://muapi.ai/playground/seedance-2.5-spicy-video-edit-480p) - [Image to Video](https://muapi.ai/playground/seedance-2.5-image-to-video) - [Text to Video](https://muapi.ai/playground/seedance-2.5-text-to-video) - [Spicy Text to Video](https://muapi.ai/playground/seedance-2.5-spicy-text-to-video) - [Text to Video 4K](https://muapi.ai/playground/seedance-2.5-text-to-video-4k) - [Text to Video 480p](https://muapi.ai/playground/seedance-2.5-text-to-video-480p) - [Video Extend 1080p](https://muapi.ai/playground/seedance-2.5-video-extend-1080p) - [Image to Video 480p](https://muapi.ai/playground/seedance-2.5-image-to-video-480p) - [First & Last Frame](https://muapi.ai/playground/seedance-2.5-first-last-frame) - [First & Last Frame 480p](https://muapi.ai/playground/seedance-2.5-first-last-frame-480p) - [Omni Reference](https://muapi.ai/playground/seedance-2.5-omni-reference) - [Omni Reference 480p](https://muapi.ai/playground/seedance-2.5-omni-reference-480p) - [Video Edit 1080p](https://muapi.ai/playground/seedance-2.5-video-edit-1080p) - [Spicy Video Edit 1080p](https://muapi.ai/playground/seedance-2.5-spicy-video-edit-1080p) - [Spicy Video Extend 480p](https://muapi.ai/playground/seedance-2.5-spicy-video-extend-480p) - [Omni Reference 4K](https://muapi.ai/playground/seedance-2.5-omni-reference-4k) - [Video Edit](https://muapi.ai/playground/seedance-2.5-video-edit) - [Video Edit 480p](https://muapi.ai/playground/seedance-2.5-video-edit-480p) - [Text to Video 1080p](https://muapi.ai/playground/seedance-2.5-text-to-video-1080p) - [Image to Video 1080p](https://muapi.ai/playground/seedance-2.5-image-to-video-1080p) - [Image to Video 4K](https://muapi.ai/playground/seedance-2.5-image-to-video-4k) - [First & Last Frame 1080p](https://muapi.ai/playground/seedance-2.5-first-last-frame-1080p) - [First & Last Frame 4K](https://muapi.ai/playground/seedance-2.5-first-last-frame-4k) - [Omni Reference 1080p](https://muapi.ai/playground/seedance-2.5-omni-reference-1080p) - [Video Extend 4K](https://muapi.ai/playground/seedance-2.5-video-extend-4k) - [Video Edit 4K](https://muapi.ai/playground/seedance-2.5-video-edit-4k) - [Video Extend](https://muapi.ai/playground/seedance-2.5-video-extend) - [Video Extend 480p](https://muapi.ai/playground/seedance-2.5-video-extend-480p) - [Intl Text to Video](https://muapi.ai/playground/seedance-2.5-intl-text-to-video) - [Intl Text to Video 480p](https://muapi.ai/playground/seedance-2.5-intl-text-to-video-480p) - [Spicy Text to Video 480p](https://muapi.ai/playground/seedance-2.5-spicy-text-to-video-480p) - [Intl Text to Video 1080p](https://muapi.ai/playground/seedance-2.5-intl-text-to-video-1080p) - [Spicy Text to Video 1080p](https://muapi.ai/playground/seedance-2.5-spicy-text-to-video-1080p) - [Intl Text to Video 4K](https://muapi.ai/playground/seedance-2.5-intl-text-to-video-4k) - [Spicy Text to Video 4K](https://muapi.ai/playground/seedance-2.5-spicy-text-to-video-4k) - [Intl Image to Video](https://muapi.ai/playground/seedance-2.5-intl-image-to-video) - [Intl Image to Video 480p](https://muapi.ai/playground/seedance-2.5-intl-image-to-video-480p) - [Intl Image to Video 1080p](https://muapi.ai/playground/seedance-2.5-intl-image-to-video-1080p) - [Intl Image to Video 4K](https://muapi.ai/playground/seedance-2.5-intl-image-to-video-4k) - [Spicy Image to Video 4K](https://muapi.ai/playground/seedance-2.5-spicy-image-to-video-4k) - [Spicy First & Last Frame](https://muapi.ai/playground/seedance-2.5-spicy-first-last-frame) - [Intl First & Last Frame 480p](https://muapi.ai/playground/seedance-2.5-intl-first-last-frame-480p) - [Spicy First & Last Frame 1080p](https://muapi.ai/playground/seedance-2.5-spicy-first-last-frame-1080p) - [Spicy First & Last Frame 4K](https://muapi.ai/playground/seedance-2.5-spicy-first-last-frame-4k) - [Intl Omni Reference 480p](https://muapi.ai/playground/seedance-2.5-intl-omni-reference-480p) - [Spicy Image to Video 480p](https://muapi.ai/playground/seedance-2.5-spicy-image-to-video-480p) - [Intl Video Edit](https://muapi.ai/playground/seedance-2.5-intl-video-edit) - [Intl Video Extend](https://muapi.ai/playground/seedance-2.5-intl-video-extend) - [Spicy Image to Video 1080p](https://muapi.ai/playground/seedance-2.5-spicy-image-to-video-1080p) - [Spicy Omni Reference](https://muapi.ai/playground/seedance-2.5-spicy-omni-reference) - [Intl First & Last Frame](https://muapi.ai/playground/seedance-2.5-intl-first-last-frame) - [Spicy First & Last Frame 480p](https://muapi.ai/playground/seedance-2.5-spicy-first-last-frame-480p) - [Intl First & Last Frame 1080p](https://muapi.ai/playground/seedance-2.5-intl-first-last-frame-1080p) - [Intl First & Last Frame 4K](https://muapi.ai/playground/seedance-2.5-intl-first-last-frame-4k) - [Intl Omni Reference](https://muapi.ai/playground/seedance-2.5-intl-omni-reference) - [Spicy Omni Reference 480p](https://muapi.ai/playground/seedance-2.5-spicy-omni-reference-480p) - [Intl Omni Reference 1080p](https://muapi.ai/playground/seedance-2.5-intl-omni-reference-1080p) - [Spicy Omni Reference 1080p](https://muapi.ai/playground/seedance-2.5-spicy-omni-reference-1080p) - [Intl Omni Reference 4K](https://muapi.ai/playground/seedance-2.5-intl-omni-reference-4k) - [Spicy Omni Reference 4K](https://muapi.ai/playground/seedance-2.5-spicy-omni-reference-4k) - [Intl Video Extend 4K](https://muapi.ai/playground/seedance-2.5-intl-video-extend-4k) - [Spicy Video Edit](https://muapi.ai/playground/seedance-2.5-spicy-video-edit) - [Intl Video Edit 480p](https://muapi.ai/playground/seedance-2.5-intl-video-edit-480p) - [Intl Video Edit 1080p](https://muapi.ai/playground/seedance-2.5-intl-video-edit-1080p) - [Intl Video Edit 4K](https://muapi.ai/playground/seedance-2.5-intl-video-edit-4k) - [Spicy Video Edit 4K](https://muapi.ai/playground/seedance-2.5-spicy-video-edit-4k) - [Spicy Video Extend](https://muapi.ai/playground/seedance-2.5-spicy-video-extend) - [Intl Video Extend 480p](https://muapi.ai/playground/seedance-2.5-intl-video-extend-480p) - [Intl Video Extend 1080p](https://muapi.ai/playground/seedance-2.5-intl-video-extend-1080p) - [Spicy Video Extend 1080p](https://muapi.ai/playground/seedance-2.5-spicy-video-extend-1080p) - [Spicy Video Extend 4K](https://muapi.ai/playground/seedance-2.5-spicy-video-extend-4k) ## Resources - [Playground Page](https://muapi.ai/playground/seedance-2.5-image-to-video-1080p) - [API Reference](https://muapi.ai/playground/seedance-2.5-image-to-video-1080p?tab=2) - [Global llms.txt](https://muapi.ai/llms.txt)