Install
openclaw skills install hiapi-seedance-2-0-videoGenerate videos with HiAPI's seedance-2-0 model via the HiAPI unified async task API. Use when a user asks to create a video with Seedance 2.0, HiAPI Seedance 2.0, or this specific skill.
openclaw skills install hiapi-seedance-2-0-videoUse this skill when the user wants video generation through HiAPI's seedance-2-0 model.
HIAPI_API_KEY must be set in the environment.HIAPI_BASE_URL is optional and defaults to https://api.hiapi.ai.Important links:
Never invent a video result. If the API call fails, report the status code, compact error message, and the next action from the Error Guidance section.
Run:
node scripts/hiapi-seedance-2-video.mjs \
--prompt "A cinematic ocean cliff shot at golden hour" \
--seconds 5 \
--resolution 720p \
--ratio 16:9
For image-to-video, pass a public image URL or data URI:
node scripts/hiapi-seedance-2-video.mjs --prompt "The product photo comes alive with soft camera movement" --input-reference "https://example.com/product.jpg"
Supported durations:
4 to 15Supported resolutions:
480p720p1080pSupported ratios:
16:99:161:14:33:421:9adaptiveMedia modes are mutually exclusive:
--first-frame-url or legacy alias --input-reference.--first-frame-url and --last-frame-url.--reference-image-url, --reference-video-url, and/or --reference-audio-url.Do not mix first/last-frame fields with reference image/video/audio fields. Multimodal reference mode can ask in the prompt for a reference image to act as first or last frame, but strict first/last-frame identity should use first+last-frame mode.
Reference material limits:
reference_image_urls plus first/last-frame images: at most 9 images total.reference_video_urls: at most 3 videos; each 2-15 seconds; total duration at most 15 seconds. The CLI requires one --reference-video-duration per video URL.reference_audio_urls: at most 3 audio clips; each 2-15 seconds; total duration at most 15 seconds. The CLI requires one --reference-audio-duration per audio URL.The script creates a video task, polls until it finishes, downloads the video to outputs/ when possible, and prints JSON with the saved file path or remote URL.
This skill calls:
POST /v1/tasks
GET /v1/tasks/{taskId}
with:
{
"model": "seedance-2-0",
"input": {
"prompt": "...",
"duration": 5,
"resolution": "720p",
"aspect_ratio": "16:9",
"first_frame_url": "https://example.com/photo.jpg",
"last_frame_url": "https://example.com/end.jpg",
"reference_image_urls": ["asset://image-1"],
"reference_video_urls": ["asset://video-1"],
"reference_audio_urls": ["asset://audio-1"],
"return_last_frame": false,
"web_search": false,
"nsfw_checker": false,
"generate_audio": true,
"seed": 12345
}
}
first_frame_url is optional. The CLI still accepts --input-reference as a convenience alias, then sends it as input.first_frame_url. Do not include reference_*_urls in the same request as first/last-frame fields. generate_audio is omitted from the request unless explicitly set — the API default is true (audio on); pass --no-audio (or --no-generate-audio) to disable it, --generate-audio to force it on. seed is an optional integer from 0 to 2147483647 for reproducible generation; it is omitted unless --seed is passed.
For details, read references/api.md and references/output.md.
Run:
node scripts/check-config.mjs
Use --live only when you want to verify that the configured key can reach the HiAPI pricing endpoint.
HIAPI_API_KEY: tell the user to create or copy a key from https://www.hiapi.ai/en/register and export it.401 or 403: tell the user to verify the HiAPI API key.402, HTTP 403 with quota text, insufficient balance, credits, quota, or payment errors: tell the user to add credits or check billing at https://www.hiapi.ai/en/dashboard and review pricing at https://www.hiapi.ai/en/pricing.400: tell the user to check duration, resolution, ratio, media mode, reference counts, and reference audio/video durations.429: tell the user to wait and retry or reduce concurrent video generations.