Install
openclaw skills install @jiangsier-xyz/seedanceGenerate videos with the doubao-seedance-2.0 model (text-to-video, image-to-video, first/last-frame-to-video). Use when the user asks to "generate a video", mentions "seedance", or wants AI video generation from text and/or images. Wraps the asynchronous Volcengine Ark / OpenAI-style video API behind one synchronous call.
openclaw skills install @jiangsier-xyz/seedanceThis skill generates a video with the doubao-seedance-2.0 model by running
scripts/seedance.py (paths below are relative to this skill's directory, i.e.
the folder containing this SKILL.md). The script is synchronous: it creates a
task, polls until completion, and prints the result (including the video URL).
Trigger this skill when the user's request mentions "seedance" or asks to
"generate a video" / produce AI video from text, an image, or first/last
frames. Also trigger on explicit /seedance.
Do not trigger for image-only generation, audio, or general chat.
scripts/seedance) auto-selects
python3.11/python3.12 when available (some proxies' TLS cert chain is
rejected by Python 3.14; python3 is fine for the raw Ark API), so you do not
pick the interpreter by hand.<skill_dir>/.venv on
first run and installs requirements.txt there automatically. The only Python
dependency is alibabacloud_oss_v2 — pulled in only when the user supplies
local image files (uploaded to Alibaba OSS as a signed URL), but harmless
to install regardless. No manual pip install is needed.ARK_API_KEY is required. It may be a real env var or stored in a .env
file (in the skill dir or the user's cwd). If absent, ask the user for it and
offer to write it to <skill_dir>/.env (never print the value back).ARK_API_TYPE (ark/openai-video/openai),
ARK_MODEL (model id), ARK_ENDPOINT. All are lower priority than their CLI
flags (--api-type, -m, --endpoint). For local images also:
OSS_ACCESS_KEY_ID, OSS_ACCESS_KEY_SECRET (required), and optionally
OSS_ENDPOINT, OSS_BUCKET (default jiangsier), OSS_KEY_PREFIX (default dev/).Map the user's natural-language request to these CLI options:
| User intent | CLI option |
|---|---|
| The video prompt / description | -t / --text (required) |
| A local reference image file | -i / --image |
| An online reference image URL | --image-url |
| A local first-frame image | -f / --first-frame |
| An online first-frame URL | --first-frame-url |
| A local last-frame image | -l / --last-frame |
| An online last-frame URL | --last-frame-url |
| "5 seconds", "10s", duration | --duration (default 5) |
| "16:9", "vertical/9:16", "square/1:1", "follow the image" | --ratio (default 16:9; use adaptive when an image is provided and the user wants the output to match it) |
| "720p", "1080p", "4k" | --resolution (default 720p) |
| A specific model id | -m / --model (or ARK_MODEL env) |
| Which backend protocol | --api-type (default ark; or ARK_API_TYPE env). ark = raw Volcengine Ark (audio). openai-video = openai-video endpoint, doubao-seedance-2.0-mini (silent). openai = openai chat-mirror entry, doubao-seedance-2.0 full (silent). |
| Reproducible result | --seed (ark/openai only; openai-video ignores it) |
| Save the mp4 locally | --save <path> |
Rules (enforced by the script; surface them to the user when relevant):
--image and --image-url are mutually exclusive (same for first/last frame).--image/--image-url) cannot be combined with explicit
first/last frames.--last-frame requires --first-frame.--ratio adaptive requires an image input.ARK_API_KEY is not in the environment or a .env, ask the
user for it (offer to store it in <skill_dir>/.env).AskUserQuestion (or just ask) to get
explicit confirmation, including: prompt, image inputs, duration, ratio,
resolution, model, api-type. Proceed only after the user confirms.Resolve <skill_dir> (this directory). Load secrets from <skill_dir>/.env if
present via --env-file. Run the skill through the scripts/seedance wrapper
— it provisions an isolated venv (with requirements.txt installed) and forwards
every argument to scripts/seedance.py, picking python3.11/python3.12 for the
proxy-TLS-safe interpreter automatically. The same wrapper serves all three
--api-type values; no interpreter switch is needed between them.
# Ark (default) — also covers openai-video / openai; just pass --api-type
<skill_dir>/scripts/seedance --env-file <skill_dir>/.env \
-t "<prompt>" [-i ./local.png | --image-url <url>] [-f ./first.png -l ./last.png] \
[--duration 5] [--ratio 16:9] [--resolution 720p] [-m <model>] [--save out.mp4]
<skill_dir>/scripts/seedance --api-type openai-video --env-file <skill_dir>/.env -t "<prompt>" ...
<skill_dir>/scripts/seedance --api-type openai --env-file <skill_dir>/.env -t "<prompt>" ...
The script prints the full task result as JSON on stdout and the video_url on
stderr. On success, report the video URL to the user; if --save was given,
confirm the saved path.
To run the test suite (offline, no key needed): <skill_dir>/scripts/seedance test_seedance.py.
The wrapper reuses the same venv for any script in scripts/ — pass its filename
as the first argument.
scripts/seedance -t "a daisy field under a blue sky, camera pushing in" --duration 5scripts/seedance -t "camera slowly pulls out, hair blowing in the wind" -i ./fox.png --ratio adaptivescripts/seedance -t "360 degree orbit" -f ./first.jpeg -l ./last.jpeg --ratio adaptivescripts/seedance -t "waves at sunset" --ratio 9:16 --resolution 1080p --duration 10generate_audio=true, watermark=false
(not exposed). The openai-video body omits these. Both openai-video and
openai yield silent video on this backend — only ark produces audio.--api-type, or ARK_API_TYPE env): ark (default;
Volcengine Ark, POST /contents/generations/tasks, audio), openai-video
(POST /video/generations, OpenAI-video body seconds/size/input_reference,
model doubao-seedance-2.0-mini, silent), and openai (POST /video/generations,
Ark-shaped body, model doubao-seedance-2.0 full, silent — the proxy's chat-mirror
entry; /v1/chat/completions returns unsupported_model_endpoint here). The script
normalizes all three into {id, status, video_url, error, raw}.doubao-seedance-2-0-260128 (ark) / doubao-seedance-2.0-mini
(openai-video) / doubao-seedance-2.0 (openai). Override with -m or ARK_MODEL.reference.md (in this skill's directory) is the upstream Volcengine Ark
video-generation doc; consult it for advanced/parameter details.