atlascloudai/seedance-2-5-skill
>- Plan and generate controllable Seedance video using Seedream 5.0 Pro storyboards and Seedance 2.0 today, with a Seedance 2.5 route when available. Use for consistent people, products, objects, food, or scenes; storyboard-to- video; reference-to-video; first-and-last-frame image-to-video; extensions; and Atlas Cloud media generation.
npx skills add https://github.com/AtlasCloudAI/awesome-seedance-2.5-prompts-skills --skill seedance-2-5-skill
*.md references.first, then use the matching *.zh-CN.md reference files.
symbols exactly as code. Do not translate them.
Do not force every request through one image-grid pipeline. Choose the video
route first, then enable only the preparation modules the job needs.
| Need | Route | Inputs | Result |
|---|---|---|---|
| One short, simple scene | T2V | Text prompt | One self-contained shot |
| A multi-shot sequence with readable panels | R2V storyboard | One complete storyboard image | One request turns panel order into a continuous video |
| A clip controlled by people, product, scene, or style assets | R2V asset references | A small role-specific asset pack | One clip built from those references |
| A shot with an exact beginning and ending | I2V shot pair | Start and end keyframes | One independently reviewable shot |
| An uninterrupted action exceeding the supported duration | Extend / chain | Previous generated tail frame and next prompt | Continuation of the same shot |
| One continuous piece carrying several events | Staged whole-short | Text plus optional references | One request covering ordered stages, each landing on a stated end state |
| A scoped change to an existing video | Editing | Source video plus target references | The source with only the named region or element changed |
| A bridge between two finished clips | Seamless transition | Two videos | Generated bridge content between them |
| Motion, blocking, and camera taken from a 3D preview | Blockout reference | Coarse or fine blockout video plus look references | Final render following the blockout's timing and staging |
Use Seedance 2.0 as the executable default. Offer a Seedance 2.5 whole-short
route only when the selected provider exposes that model and its actual limits.
The last four routes depend on capabilities that differ per model and per
provider. Verify availability before offering one; see
capabilities for the 2.0/2.5 comparison and for
which published capabilities are platform features rather than API parameters.
individual panels remain visually readable. Do not crop it first. Seedance
can interpret the ordered panels as one continuous multi-shot video.
states matter more than the transition quality of one R2V generation.
R2V images only when each has a distinct role, such as subject, product,
setting, style, or motion reference.
Use this only for a person, product, prop, hand, vehicle, or scene that must
recur. Record 3–5 invariants: silhouette or proportion, signature material or
wardrobe, key colour, and any must-preserve marking. Skip it for a one-off
atmosphere shot.
For a recurring person, make a clean face close-up and a separate full-body
reference. Do not use a front/side/back composite as the identity input; it can
be interpreted as multiple people. Multi-angle product references remain useful
when the object itself must be shown from several sides.
Create a start keyframe for every I2V shot. Add an end keyframe only when the
shot must land on a specific action, composition, product pose, or hand
position. Use one clean scene per keyframe.
Use an existing storyboard directly as the R2V reference. Seedance normally
understands panel order and does not require panel numbers, dividers, arrows, or
notes to be removed in advance. Make a clean copy only after a test generation
actually renders an unwanted divider, number, caption, or multi-panel layout.
When a multi-shot request has no storyboard, use the Seedream template in
prompt templates to create one board.
**Display that board in the host UI, inspect it yourself, then continue to
Seedance R2V when it passes review.** Showing the board is a progress update,
not a user-approval gate.
For a supplied storyboard, display it unless it is already visible in the
conversation. Check planned order, readable key beats, recurring-subject
consistency, and content-specific constraints such as anatomy, product form, or
critical text. Refine a visibly failed board before video generation. Ask the
user only when a creative choice cannot be inferred.
If the route deliberately changes to I2V shot pairs, crop panels only then.
Inspect the layout first: automatic crops can verify position, not whether the
image model drew the intended panel layout.
First-and-last frames control one shot; they do not mean every shot must
inherit the prior clip's tail.
| Transition | Use prior tail as next start? | Design rule |
|---|---:|---|
| One uninterrupted action | Yes | Generate in sequence and inspect the seam |
| Hard cut to a new angle, place, product, or time | No | Design each shot independently |
| Match cut | Usually no | Match movement direction, shape, colour, or composition |
| Occlusion or whip transition | No | End with the occluding action; start the next shot inside or after it |
| Insert or cutaway | No | Use an object, environment, or product detail as a bridge |
Put important cuts, matches, and occlusions in the storyboard and prompt. Do
not rely on a cross-dissolve to repair unrelated shots.
Before writing blocks, sort what you know by what it governs. Instructions in
the wrong place are the most common cause of drift — a global rule written inside
beat 1 stops applying at beat 4.
| Scope | Governs | Contents |
|---|---|---|
| Global | The whole piece | Film type, scene, style, one-sentence premise, camera principle |
| Locks | Anything that must not drift | Identity, reference roles, audio source, continuity, negatives |
| Time | One beat or stage | Stage events and their end states |
Restate the two or three most expensive locks at the physical end of the
prompt; recency helps. That is a placement convention, not a fourth scope — the
content still belongs to Locks and appears there first.
This mirrors the model-agnostic spec format in
the Universal Video Prompt Skill. Use
that skill when one brief has to run on more than one model; use this file for
Seedance-specific writing.
Use only the blocks that affect the shot:
[subject/reference binding]
+ [one observable action]
+ [space and important object relationships]
+ [one primary camera move, coherent composite move, or a cut]
+ [light/style when it matters]
+ [audio or dialogue when enabled]
+ [end state, for any stage that must land somewhere specific]
+ [must-preserve constraints]
For anything with more than one event, state what is visibly true when each
stage ends. This is the highest-leverage single addition to a multi-stage prompt:
it converts "keep it consistent" into something the model can target and you can
check.
weak: the two of them keep working on the bouquet
strong: end state: the florist holds the bouquet in the left hand;
the scissors are back on the right side of the bench
An end state must be visible. "She feels relieved" is not one; "her shoulders
drop and the frown clears" is. Read long video for the
staged structure in full.
Granularity is a prior decision. Writing beats at second precision and then
downgrading means rewriting them.
| Granularity | Use when |
|---|---|
| None — event order only | One continuous action, mood pieces, single shots. Timestamps here fragment the shot |
| Stages + end states | Most narrative work. Default |
| Second-level | Only under an external hard constraint: music, lip sync, reference handoff, a beat that must land at a fixed time |
Infer it when the input settles it — a supplied music or voiceover track means
second-level, a stated mood piece means none, an explicit fixed beat means
second-level. When the request is a multi-event narrative with no external
constraint, ask, and recommend with a reason rather than presenting a bare
menu.
Timestamps allocate a time budget; they are not frame-accurate edit points, and
actions may land slightly before or after a boundary. Do not demand impossible
density such as three distinct actions inside one second.
Image 1: person, `Image 2:product, Image 3: kitchen setting`.
Shot 1, Shot 2, and Shot 3 in event order.Set duration in provider controls rather than forcing exact seconds in text.
direction, relation to the subject, and speed express one synchronized intent.
() for music, <> for sound effects,{} for dialogue, and 【】 for on-screen captions.
Read the reference matching the job:
| File | Read it for |
|---|---|
| prompt templates | Route-specific templates |
| prompt blocks | Reusable camera, audio, constraint patterns |
| long video | Staged structure, end states, timestamp rules |
| multi reference | Binding many assets without confusing them |
| real person | Believable human subjects, and when to omit the detail |
| transitions | Which transitions to generate and which to edit |
| editing and extension | Changing or continuing existing video |
| capabilities | 2.0 vs 2.5 limits; platform features vs API parameters |
| model profile | Measured per-model behaviour and compile notes |
| cinematography | Detailed visual decisions |
| troubleshooting | Fault-specific fixes |
| execution adapters | Runner and adapter configuration |
conversation, and inspect it before any video request.
then verify it fits the chosen route.
waiting for approval. Otherwise refine or regenerate the board first.
in that order, and stop at the first failure — later checks are wasted effort
on a wrong identity. Regenerate only the failed shot or segment.
Generate cut-based clips independently and edit the planned transition.
The bundled script is a draft assembler, not a colour-grading or music-mixing
system.
Keep creative route selection independent from how a job is submitted. The
default models are Seedream 5.0 Pro for stills and Seedance 2.0 for video;
users may override them only after verifying route support.
In an agent conversation, use the Atlas Cloud Skill as the default direct
generation route. It can discover a model, upload local media, submit an image
or video request, poll, and retrieve outputs. Report Execution: atlas-skill
only when it actually submitted the generation.
Use atlas-mcp only when the user explicitly selects MCP and its generation
tools are exposed. Use atlas-cli only when the user explicitly selects a
terminal, script, CI, or batch run. If the Atlas Cloud Skill is missing, help
install AtlasCloudAI/atlas-cloud-skills before selecting a fallback.
Before reporting that an Atlas Cloud API key is missing, check the credentials
in the selected execution process. For the REST runner, check
ATLASCLOUD_API_KEY first and ATLAS_CLOUD_API_KEY as a compatibility alias.
Do not infer credential availability from a different provider, plugin, or
process; each execution channel can have an independent credential scope.
If neither key exists, direct the user to
https://www.atlascloud.ai/console/api-keys?utm_source=github&utm_campaign=awesome-seedance-2.5-prompts-skills.
Never ask them to paste the key in
chat. Tell them to set ATLASCLOUD_API_KEY in the submitting process or the
host's secure environment settings, then refresh or restart the execution
session if needed. If the key exists in a parent or host configuration but is
absent from the submitting process, report an environment-scope mismatch
instead of saying the user has no key.
Apply these rules to every image and video generation:
starting, queued, pending, and processing as active. Poll thesame ID every 2 seconds; never submit another task for that stage.
completed and succeeded as successful terminal states. Download andinspect the output before starting a dependent stage.
failed, timeout, and canceled as terminal failures. A new taskrequires an explicit retry decision; report the old ID and possible extra
cost first.
timeout, a stopped turn, or a temporary status-query error is not proof
of failure. Preserve the ID and resume polling.
continue as “resume the existing task,” never as permission toretry. Do not submit video while its required storyboard is still active.
The 2-second interval applies to every Atlas execution route in this workflow.
For atlas-skill, repeat its prediction-result step with the same ID. For
atlas-mcp, call atlas_get_prediction with the same ID every 2 seconds. The
MCP server performs a single status lookup per tool call; the agent owns the
loop. The bundled REST and CLI adapters enforce the interval in code. A status
lookup is read-only and must never be replaced with another generation call.
When the runner must resume, set execution.resumePredictionIds.<stage> to the
existing ID. Supported stage keys include grid, ref1, ref2, seg1,
shot1, and clip1. Never create a replacement merely because a prior polling
process ended.
scripts/generate.mjs cannot invoke an agent Skill or MCP server. It is a
separate batch runner: it defaults to atlas-rest, and can use atlas-cli
only when explicitly set in execution.adapter. It never selects CLI
automatically. See execution adapters.
# Generate a storyboard only. The runner prints [storyboard-preview] with an
# absolute path; display and inspect that image before starting video work.
GRID_ONLY=1 node scripts/generate.mjs scripts/myjob.json
# Run only the first independent clip or segment as a quality gate.
CLIPS_MAX=1 node scripts/generate.mjs scripts/myjob.json
SEGS_MAX=1 node scripts/generate.mjs scripts/myjob.json
{ "execution": { "adapter": "atlas-cli" } }
Available runner modes:
grid: crop a model storyboard and make one independent I2V clip per panel;suitable for a hard-cut montage.
shot-pairs: make independent I2V shots from segments[], with a firstand optional last keyframe index.
reference: send a small role-specific set of R2V references. A referencemay be generated from a prompt or read from a local file.
chain: continue one action by feeding the generated tail frame to the nextsegment. It is an alignment aid, not a guarantee of an invisible seam.
For fault-specific fixes, read troubleshooting.
Take atlascloudai/seedance-2-5-skill from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.