使用 Seedance(字节跳动)AceDataCloud API 生成 AI 舞蹈和运动视频,适用于文字提示生成视频或把图片动画化。
Generate AI dance and motion videos through AceDataCloud's Seedance (ByteDance) API.
clawhub install @acedatacloud/seedance. Check that the ClawHub publisher is @acedatacloud.Bearer ; a platform-... management token is not a service API key./seedance/videos and /seedance/tasks. Advanced workflows below may call additional routes.ACEDATACLOUD_API_TOKEN=your_api_key_here in ~/.openclaw/.env, then restart the Gateway and start a new session. For a direct terminal test, run export ACEDATACLOUD_API_TOKEN="your_api_key_here" in that shell. Never put the key in a prompt or commit an .env file.Illustrated key setup, first run, and troubleshooting · Token details
bash
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:
bash
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>"}'
ModelBest ForLimitsdoubao-seedance-2-5-260628Up to 30 seconds, pure-audio or multimodal reference, video edit/extend480p, 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.
The 2.0 series adds multimodal reference inputs: real-person / character image references, reference audio, and reference video (see the workflows below).
ModelBest ForMax resolutiondoubao-seedance-2-0-260128Highest quality, real-person/character reference, 4k output4k``doubao-seedance-2-0-fast-260128Faster 2.0 generation720p``doubao-seedance-2-0-mini-260615Lightweight / most cost-effective 2.0720p
ModelTypeBest Fordoubao-seedance-1-5-pro-251215Text+Image-to-Video1.5 flagship, audio supportdoubao-seedance-1-0-pro-250528Text+Image-to-VideoGeneral-purpose, reliable qualitydoubao-seedance-1-0-pro-fast-251015Text+Image-to-VideoFaster Pro generationdoubao-seedance-1-0-lite-t2v-250428Text-to-Video onlyLightweight text-to-videodoubao-seedance-1-0-lite-i2v-250428Image-to-Video onlyLightweight image-to-video
Pass a text content item in the content array.
json
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
}
Include an image content item (with an optional role) alongside the text.
json
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 — use role: "reference_audio"video_url — use role: "reference_video"Provide both a start and end frame image:
json
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"}}
]
}
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.
json
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
}
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.
json
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
}
ParameterValuesDescriptionmodelsee Models tableModel to use (required)contentarrayInput 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 -11.0: 2–12 (no auto); 1.5 Pro: 4–12/-1; 2.0: 4–15/-1; 2.5: 4–30/-1frames29–289 (must satisfy 25+4n)Frame count — mutually exclusive with duration``seed-1 to 4294967295Seed for reproducible results (-1 = random)generate_audio``true / falseGenerate audio (supported by doubao-seedance-1-5-pro-251215 and the doubao-seedance-2-0 series; other models ignore it)camerafixed``true / falseFix the camera position during generationwatermark``true / falseAdd a watermark to the generated videoreturn_last_frame``true / falseReturn the last frame of the generated videoomni_reference_task_type``auto, edit, extendSeedance 2.5 task typeoutput_format``mp4, movSeedance 2.5 output formattoolsobject[]Seedance 2.5 web search tool, e.g. [{"type":"web_search"}]``priority0–9Seedance 2.5 queue prioritysafety_identifierstringStable anonymous end-user ID (max 64 chars; do not send PII)execution_expires_afternumberTask timeout threshold in seconds
You can also embed generation parameters directly in the text prompt using the --param value syntax:
text
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).
doubao-* convention (e.g. doubao-seedance-1-0-pro-250528) — old short names like seedance-1.0 are not validcontent array replaces the old prompt + image_url fields; always use contenttext or image_url, not bothfirst_frame and last_frame may be combined in one request, but reference_image is mutually exclusive with first_frame / last_frame — do not mix a reference image with first/last framesgenerate_audio: true is supported by doubao-seedance-1-5-pro-251215 and the doubao-seedance-2-0 series; other models ignore this field*-lite-t2v-* only accepts text, *-lite-i2v-* only accepts image-to-videoaudio_url and video_url reference items are supported by Seedance 2.0 and 2.5; 2.5 also supports pure-audio reference480p, 720p, 1080p, and 4k ( 4k is doubao-seedance-2-0-260128 only; 2-0-fast / 2-0-mini max out at 720p) — there is no 360p or 540p"succeeded" (not "completed") — check for this value when pollingMCP:
pip install mcp-seedance| Hosted:https://seedance.mcp.acedata.cloud/mcp| See all MCP servers