About seedance-video
seedance-video is a skill for creating dance and motion videos through AceDataCloud’s Seedance API. Its workflows combine text with image, audio, or video references, with model options spanning Seedance 1.x, 2.0, and 2.5.
Key features
- 01Text-to-video and image-to-video
- 02Image, audio, and video references
- 03First- and last-frame guidance
- 04Subject consistency from reference images
- 05Model-specific resolution and duration settings
Use cases
- 01Generate a dance clip from a text prompt
- 02Animate a person or character from a reference image
- 03Match motion or sound using reference media
- 04Create a transition between supplied start and end frames
MCP support
The README lists an MCP package, `mcp-seedance`, and a hosted MCP endpoint at `https://seedance.mcp.acedata.cloud/mcp`.
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ acedatacloud/ skills --skill seedance-videoAfter installing, type/seedance-videoin Claude Code to confirm it loaded.
Bundled filesREADME.mdreadme.zh-CN.md
Details
From the project READMESeedance by Ace Data Cloud
Generate AI dance and motion videos through AceDataCloud's Seedance (ByteDance) API.
Install and connect from skills.sh
This integration is maintained by Ace Data Cloud; it is not an official Seedance publisher listing. Install only this Skill with npx skills add acedatacloud/skills --skill seedance-video --yes, or use the public skills.sh page. Keep the slug seedance-video when selecting it.
Read the illustrated first-run guide (简体中文) for registration, Applications → General application, API key access and price checks, and the environment variable location for your coding agent. For skills.sh installations, use this guide; any ClawHub-specific setup applies only to OpenClaw. The shared references linked here are online because focused installs do not include sibling _shared/ folders.
ClawHub / OpenClaw setup
- Install the official Skill with
clawhub install @acedatacloud/seedance. Check that the ClawHub publisher is @acedatacloud. - Sign in at AceDataCloud → Applications, open General application, and check Seedance access, balance, and current pricing. Copy its API key, or select Manage Keys → Create for a separate key. Copy the key value without
Bearer; aplatform-...management token is not a service API key. - If you enable Allowed APIs restrictions, include
/seedance/videosand/seedance/tasks. Advanced workflows below may call additional routes. - On the OpenClaw Gateway host, put
ACEDATACLOUD_API_TOKEN=your_api_key_herein~/.openclaw/.env, then restart the Gateway and start a new session. For a direct terminal test, runexport ACEDATACLOUD_API_TOKEN="your_api_key_here"in that shell. Never put the key in a prompt or commit an.envfile. - Run the Quick Start below. If this workflow returns a task ID, query that same task until it finishes; do not submit the same billable request again just to check progress.
Illustrated key setup, first run, and troubleshooting · Token details
Quick Start
curl -X POST https://api.acedata.cloud/seedance/videos \
-H "Authorization: Bearer $ACEDATACLOUD_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"model": "doubao-seedance-2-0-260128", "content": [{"type": "text", "text": "a dancer performing contemporary ballet in a misty forest"}], "async": true}'
Async: See async task polling. Poll via
POST /seedance/taskswith{"id": "..."}. This returns a task ID immediately. Poll for the result:
curl -X POST https://api.acedata.cloud/seedance/tasks \
-H "Authorization: Bearer $ACEDATACLOUD_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"id": "<task_id from above>"}'
Models
Seedance 2.5 (latest flagship)
| Model | Best For | Limits |
|---|---|---|
doubao-seedance-2-5-260628 | Up to 30 seconds, pure-audio or multimodal reference, video edit/extend | 480p, 720p, 1080p; 30 images / 10 videos / 10 audios / 50 total |
Use omni_reference_task_type: "auto", "edit", or "extend". Edit and extend require reference_video and ratio: "adaptive"; edit also requires duration: -1. Optional output_format is mp4 or mov.
Seedance 2.0 (multimodal reference, up to 4k)
The 2.0 series adds multimodal reference inputs: real-person / character image references, reference audio, and reference video (see the workflows below).
| Model | Best For | Max resolution |
|---|---|---|
doubao-seedance-2-0-260128 | Highest quality, real-person/character reference, 4k output | 4k |
doubao-seedance-2-0-fast-260128 | Faster 2.0 generation | 720p |
doubao-seedance-2-0-mini-260615 | Lightweight / most cost-effective 2.0 | 720p |
Seedance 1.x
| Model | Type | Best For |
|---|---|---|
doubao-seedance-1-5-pro-251215 | Text+Image-to-Video | 1.5 flagship, audio support |
doubao-seedance-1-0-pro-250528 | Text+Image-to-Video | General-purpose, reliable quality |
doubao-seedance-1-0-pro-fast-251015 | Text+Image-to-Video | Faster Pro generation |
doubao-seedance-1-0-lite-t2v-250428 | Text-to-Video only | Lightweight text-to-video |
doubao-seedance-1-0-lite-i2v-250428 | Image-to-Video only | Lightweight image-to-video |
Workflows
1. Text-to-Video
Pass a text content item in the content array.
POST /seedance/videos
{
"model": "doubao-seedance-1-0-pro-250528",
"content": [
{"type": "text", "text": "a street dancer doing breakdancing moves in an urban setting"}
],
"resolution": "1080p",
"ratio": "16:9",
"duration": 5
}
2. Image-to-Video
Include an image content item (with an optional role) alongside the text.
POST /seedance/videos
{
"model": "doubao-seedance-1-5-pro-251215",
"content": [
{"type": "text", "text": "the person starts dancing gracefully"},
{
"type": "image_url",
"role": "first_frame",
"image_url": {"url": "https://example.com/dancer.jpg"}
}
],
"resolution": "720p",
"duration": 5
}
Image roles:
first_frame— image is used as the opening framelast_frame— image is used as the closing framereference_image— image is used as a style / subject / real-person reference (Seedance 2.0 keeps the referenced person or character consistent)
Reference media (Seedance 2.x):
audio_url— userole: "reference_audio"video_url— userole: "reference_video"- 2.5 accepts pure-audio reference; 2.0 requires an image or video alongside audio
3. First-frame + Last-frame
Provide both a start and end frame image:
POST /seedance/videos
{
"model": "doubao-seedance-2-0-260128",
"content": [
{"type": "text", "text": "smooth transition between two scenes"},
{"type": "image_url", "role": "first_frame", "image_url": {"url": "https://example.com/start.jpg"}},
{"type": "image_url", "role": "last_frame", "image_url": {"url": "https://example.com/end.jpg"}}
]
}
4. Real-person / character reference (Seedance 2.0)
Seedance 2.0 models (doubao-seedance-2-0-260128, doubao-seedance-2-0-fast-260128, doubao-seedance-2-0-mini-260615) can keep a specific person or character consistent across a brand-new scene. Pass one or more photos as image_url items with role: "reference_image" — the model preserves that subject's appearance. Up to 9 reference images are accepted.
POST /seedance/videos
{
"model": "doubao-seedance-2-0-260128",
"content": [
{"type": "text", "text": "the same person walking through a neon-lit night market, cinematic"},
{"type": "image_url", "role": "reference_image", "image_url": {"url": "https://example.com/person.jpg"}}
],
"resolution": "1080p",
"duration": 8
}
5. Reference audio / video (Seedance 2.0)
2.0 models also accept reference audio (voice timbre, background music) and reference video (subject content, camera movement, motion, overall style). Add audio_url and/or video_url content items. Limits: up to 3 audio and 3 video references per request.
POST /seedance/videos
{
"model": "doubao-seedance-2-0-260128",
"content": [
{"type": "text", "text": "a singer performing on stage, matching the reference voice and motion"},
{"type": "image_url", "role": "reference_image", "image_url": {"url": "https://example.com/person.jpg"}},
{"type": "audio_url", "role": "reference_audio", "audio_url": {"url": "https://example.com/voice.mp3"}},
{"type": "video_url", "role": "reference_video", "video_url": {"url": "https://example.com/motion.mp4"}}
],
"generate_audio": true
}
Parameters
| Parameter | Values | Description |
|---|---|---|
model | see Models table | Model to use (required) |
content | array | Input items: text, image_url, audio_url (2.0), video_url (2.0) (required) |
resolution | "480p", "720p", "1080p", "4k" | Output resolution. 4k is doubao-seedance-2-0-260128 (standard) only; 2-0-fast / 2-0-mini max out at 720p (default: 720p for pro/2.0, 480p for lite) |
ratio | "16:9", "4:3", "1:1", "3:4", "9:16", "21:9", "adaptive" | Aspect ratio (default: 16:9) |
duration | 2 – 30, or -1 | 1.0: 2–12 (no auto); 1.5 Pro: 4–12/-1; 2.0: 4–15/-1; 2.5: 4–30/-1 |
frames | 29–289 (must satisfy 25+4n) | Frame count — mutually exclusive with duration |
seed | -1 to 4294967295 | Seed for reproducible results (-1 = random) |
generate_audio | true / false | Generate audio (supported by doubao-seedance-1-5-pro-251215 and the doubao-seedance-2-0 series; other models ignore it) |
camerafixed | true / false | Fix the camera position during generation |
watermark | true / false | Add a watermark to the generated video |
return_last_frame | true / false | Return the last frame of the generated video |
omni_reference_task_type | auto, edit, extend | Seedance 2.5 task type |
output_format | mp4, mov | Seedance 2.5 output format |
tools | object[] | Seedance 2.5 web search tool, e.g. [{"type":"web_search"}] |
priority | 0–9 | Seedance 2.5 queue priority |
safety_identifier | string | Stable anonymous end-user ID (max 64 chars; do not send PII) |
execution_expires_after | number | Task timeout threshold in seconds |
Inline Parameter Syntax
You can also embed generation parameters directly in the text prompt using the --param value syntax:
A kitten yawning at the camera. --rs 720p --rt 16:9 --dur 5 --fps 24 --seed 42
Supported inline params: --rs (resolution), --rt (ratio), --dur (duration), --frames, --fps (24 only), --seed, --cf (camera_fixed), --wm (watermark).
Gotchas
- Model names use the
doubao-*convention (e.g.doubao-seedance-1-0-pro-250528) — old short names likeseedance-1.0are not valid - The
contentarray replaces the oldprompt+image_urlfields; always usecontent - Image and text scenarios are mutually exclusive per content item — each item has either
textorimage_url, not both first_frameandlast_framemay be combined in one request, butreference_imageis mutually exclusive withfirst_frame/last_frame— do not mix a reference image with first/last framesgenerate_audio: trueis supported bydoubao-seedance-1-5-pro-251215and thedoubao-seedance-2-0series; other models ignore this field- Lite models are split:
*-lite-t2v-*only accepts text,*-lite-i2v-*only accepts image-to-video audio_urlandvideo_urlreference items are supported by Seedance 2.0 and 2.5; 2.5 also supports pure-audio reference- Resolution options are
480p,720p,1080p, and4k(4kisdoubao-seedance-2-0-260128only;2-0-fast/2-0-minimax out at720p) — there is no 360p or 540p - Duration is model-specific: 1.0 supports 2–12; 1.5 Pro supports 4–12/-1; 2.0 supports 4–15/-1; 2.5 supports 4–30/-1
- Task states use
"succeeded"(not "completed") — check for this value when polling
MCP:
pip install mcp-seedance| Hosted:https://seedance.mcp.acedata.cloud/mcp| See all MCP servers