{"id":15669,"plugin_id":"plugin_asdk_app_6aa8f97285d08191bc987b06277134b9","kind":"skill","collection_source":null,"comparison_source":null,"observed_at":"2026-09-30T23:11:49.421Z","digest":"653c29481a99b386f15ef3222c792e20f10652353d957622a31d0e4a2f8b6522","against":null,"payload":{"name":"seedance-skill","description":"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.","included_files":[{"relative_path":"references/capabilities.md","size_in_bytes":5173},{"relative_path":"references/capabilities.zh-CN.md","size_in_bytes":5016},{"relative_path":"references/cinematography.md","size_in_bytes":7062},{"relative_path":"references/cinematography.zh-CN.md","size_in_bytes":6123},{"relative_path":"references/editing-and-extension.md","size_in_bytes":5755},{"relative_path":"references/editing-and-extension.zh-CN.md","size_in_bytes":5099},{"relative_path":"references/execution-adapters.md","size_in_bytes":6563},{"relative_path":"references/execution-adapters.zh-CN.md","size_in_bytes":5841},{"relative_path":"references/long-video.md","size_in_bytes":5181},{"relative_path":"references/long-video.zh-CN.md","size_in_bytes":4592},{"relative_path":"references/model-profile.md","size_in_bytes":7360},{"relative_path":"references/model-profile.zh-CN.md","size_in_bytes":6795},{"relative_path":"references/multi-reference.md","size_in_bytes":5748},{"relative_path":"references/multi-reference.zh-CN.md","size_in_bytes":5218},{"relative_path":"references/prompt-blocks.md","size_in_bytes":4489},{"relative_path":"references/prompt-blocks.zh-CN.md","size_in_bytes":4138},{"relative_path":"references/prompt-templates.md","size_in_bytes":5420},{"relative_path":"references/prompt-templates.zh-CN.md","size_in_bytes":5179},{"relative_path":"references/real-person.md","size_in_bytes":5531},{"relative_path":"references/real-person.zh-CN.md","size_in_bytes":4898},{"relative_path":"references/transitions.md","size_in_bytes":4619},{"relative_path":"references/transitions.zh-CN.md","size_in_bytes":4238},{"relative_path":"references/troubleshooting.md","size_in_bytes":4893},{"relative_path":"references/troubleshooting.zh-CN.md","size_in_bytes":4573},{"relative_path":"references/workflow.zh-CN.md","size_in_bytes":13958},{"relative_path":"scripts/config.chain.en.example.json","size_in_bytes":1751},{"relative_path":"scripts/config.chain.zh-CN.example.json","size_in_bytes":2381},{"relative_path":"scripts/config.grid.en.example.json","size_in_bytes":2025},{"relative_path":"scripts/config.grid.zh-CN.example.json","size_in_bytes":2887},{"relative_path":"scripts/config.reference.en.example.json","size_in_bytes":2463},{"relative_path":"scripts/config.reference.zh-CN.example.json","size_in_bytes":2842},{"relative_path":"scripts/config.shot-pairs.en.example.json","size_in_bytes":1827},{"relative_path":"scripts/config.shot-pairs.zh-CN.example.json","size_in_bytes":2189},{"relative_path":"scripts/config.storyboard-reference.en.example.json","size_in_bytes":1118},{"relative_path":"scripts/config.storyboard-reference.zh-CN.example.json","size_in_bytes":1087},{"relative_path":"scripts/config.t2v-chain.en.example.json","size_in_bytes":1522},{"relative_path":"scripts/config.t2v-chain.zh-CN.example.json","size_in_bytes":1683},{"relative_path":"scripts/generate.mjs","size_in_bytes":21664},{"relative_path":"scripts/providers/atlas-cli.mjs","size_in_bytes":8456},{"relative_path":"scripts/providers/atlas-rest.mjs","size_in_bytes":6788},{"relative_path":"scripts/providers/index.mjs","size_in_bytes":1667},{"relative_path":"scripts/split_grid.py","size_in_bytes":2595}],"skill_md_contents":"---\nname: seedance-skill\ndescription: >-\n  Plan and generate controllable Seedance video using Seedream 5.0 Pro\n  storyboards and Seedance 2.0 today, with a Seedance 2.5 route when available.\n  Use for consistent people, products, objects, food, or scenes; storyboard-to-\n  video; reference-to-video; first-and-last-frame image-to-video; extensions;\n  and Atlas Cloud media generation.\n---\n\n# Seedance 2.5 Skill\n\n## Language route\n\n- For an English request, follow this file and the `*.md` references.\n- For a Chinese request, read [the Chinese workflow](references/workflow.zh-CN.md)\n  first, then use the matching `*.zh-CN.md` reference files.\n- Keep model IDs, JSON keys, commands, media placeholders, and native-audio\n  symbols exactly as code. Do not translate them.\n\nDo not force every request through one image-grid pipeline. Choose the video\nroute first, then enable only the preparation modules the job needs.\n\n## 1. Choose the creative route\n\n| Need | Route | Inputs | Result |\n|---|---|---|---|\n| One short, simple scene | T2V | Text prompt | One self-contained shot |\n| A multi-shot sequence with readable panels | R2V storyboard | One complete storyboard image | One request turns panel order into a continuous video |\n| 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 |\n| A shot with an exact beginning and ending | I2V shot pair | Start and end keyframes | One independently reviewable shot |\n| An uninterrupted action exceeding the supported duration | Extend / chain | Previous generated tail frame and next prompt | Continuation of the same shot |\n| 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 |\n| A scoped change to an existing video | Editing | Source video plus target references | The source with only the named region or element changed |\n| A bridge between two finished clips | Seamless transition | Two videos | Generated bridge content between them |\n| 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 |\n\nUse Seedance 2.0 as the executable default. Offer a Seedance 2.5 whole-short\nroute only when the selected provider exposes that model and its actual limits.\n\nThe last four routes depend on capabilities that differ per model and per\nprovider. Verify availability before offering one; see\n[capabilities](references/capabilities.md) for the 2.0/2.5 comparison and for\nwhich published capabilities are platform features rather than API parameters.\n\n### Storyboard or individual keyframes\n\n- Use the **whole storyboard image in one R2V request** by default whenever\n  individual panels remain visually readable. Do not crop it first. Seedance\n  can interpret the ordered panels as one continuous multi-shot video.\n- Use **I2V shot pairs** only when independent reshoots or precise start/end\n  states matter more than the transition quality of one R2V generation.\n- Do not upload every storyboard cell as a default R2V asset pack. Use several\n  R2V images only when each has a distinct role, such as subject, product,\n  setting, style, or motion reference.\n\n## 2. Enable only needed preparation\n\n### Subject brief\n\nUse this only for a person, product, prop, hand, vehicle, or scene that must\nrecur. Record 3–5 invariants: silhouette or proportion, signature material or\nwardrobe, key colour, and any must-preserve marking. Skip it for a one-off\natmosphere shot.\n\nFor a recurring person, make a clean face close-up and a separate full-body\nreference. Do not use a front/side/back composite as the identity input; it can\nbe interpreted as multiple people. Multi-angle product references remain useful\nwhen the object itself must be shown from several sides.\n\n### Keyframes\n\nCreate a start keyframe for every I2V shot. Add an end keyframe only when the\nshot must land on a specific action, composition, product pose, or hand\nposition. Use one clean scene per keyframe.\n\n### Storyboard\n\nUse an existing storyboard directly as the R2V reference. Seedance normally\nunderstands panel order and does not require panel numbers, dividers, arrows, or\nnotes to be removed in advance. Make a clean copy only after a test generation\nactually renders an unwanted divider, number, caption, or multi-panel layout.\n\nWhen a multi-shot request has no storyboard, use the Seedream template in\n[prompt templates](references/prompt-templates.md) to create one board.\n**Display that board in the host UI, inspect it yourself, then continue to\nSeedance R2V when it passes review.** Showing the board is a progress update,\nnot a user-approval gate.\n\nFor a supplied storyboard, display it unless it is already visible in the\nconversation. Check planned order, readable key beats, recurring-subject\nconsistency, and content-specific constraints such as anatomy, product form, or\ncritical text. Refine a visibly failed board before video generation. Ask the\nuser only when a creative choice cannot be inferred.\n\nIf the route deliberately changes to I2V shot pairs, crop panels only then.\nInspect the layout first: automatic crops can verify position, not whether the\nimage model drew the intended panel layout.\n\n## 3. Design continuity and cuts\n\nFirst-and-last frames control **one shot**; they do not mean every shot must\ninherit the prior clip's tail.\n\n| Transition | Use prior tail as next start? | Design rule |\n|---|---:|---|\n| One uninterrupted action | Yes | Generate in sequence and inspect the seam |\n| Hard cut to a new angle, place, product, or time | No | Design each shot independently |\n| Match cut | Usually no | Match movement direction, shape, colour, or composition |\n| Occlusion or whip transition | No | End with the occluding action; start the next shot inside or after it |\n| Insert or cutaway | No | Use an object, environment, or product detail as a bridge |\n\nPut important cuts, matches, and occlusions in the storyboard and prompt. Do\nnot rely on a cross-dissolve to repair unrelated shots.\n\n## 4. Write the video prompt\n\n### Scope: put each instruction where it applies\n\nBefore writing blocks, sort what you know by **what it governs**. Instructions in\nthe wrong place are the most common cause of drift — a global rule written inside\nbeat 1 stops applying at beat 4.\n\n| Scope | Governs | Contents |\n|---|---|---|\n| Global | The whole piece | Film type, scene, style, one-sentence premise, camera principle |\n| Locks | Anything that must not drift | Identity, reference roles, audio source, continuity, negatives |\n| Time | One beat or stage | Stage events and their end states |\n\nRestate the two or three most expensive locks at the **physical end** of the\nprompt; recency helps. That is a placement convention, not a fourth scope — the\ncontent still belongs to Locks and appears there first.\n\nThis mirrors the model-agnostic spec format in\n[the Universal Video Prompt Skill](../universal-video-prompt-skill/SKILL.md). Use\nthat skill when one brief has to run on more than one model; use this file for\nSeedance-specific writing. This is a required companion for a complete Seedance 2.5\nSkill setup. If the link does not resolve, help the user install\n`universal-video-prompt-skill` before continuing; do not invent the missing shared\nspecification.\n\n### Blocks\n\nUse only the blocks that affect the shot:\n\n```text\n[subject/reference binding]\n+ [one observable action]\n+ [space and important object relationships]\n+ [one primary camera move, coherent composite move, or a cut]\n+ [light/style when it matters]\n+ [audio or dialogue when enabled]\n+ [end state, for any stage that must land somewhere specific]\n+ [must-preserve constraints]\n```\n\n### End states carry multi-event work\n\nFor anything with more than one event, state what is **visibly true** when each\nstage ends. This is the highest-leverage single addition to a multi-stage prompt:\nit converts \"keep it consistent\" into something the model can target and you can\ncheck.\n\n```text\nweak:   the two of them keep working on the bouquet\nstrong: end state: the florist holds the bouquet in the left hand;\n        the scissors are back on the right side of the bench\n```\n\nAn end state must be visible. \"She feels relieved\" is not one; \"her shoulders\ndrop and the frown clears\" is. Read [long video](references/long-video.md) for the\nstaged structure in full.\n\n### Time granularity: decide before writing beats\n\nGranularity is a prior decision. Writing beats at second precision and then\ndowngrading means rewriting them.\n\n| Granularity | Use when |\n|---|---|\n| None — event order only | One continuous action, mood pieces, single shots. Timestamps here fragment the shot |\n| **Stages + end states** | Most narrative work. **Default** |\n| Second-level | Only under an external hard constraint: music, lip sync, reference handoff, a beat that must land at a fixed time |\n\nInfer it when the input settles it — a supplied music or voiceover track means\nsecond-level, a stated mood piece means none, an explicit fixed beat means\nsecond-level. When the request is a multi-event narrative with no external\nconstraint, **ask, and recommend with a reason** rather than presenting a bare\nmenu.\n\nTimestamps allocate a time budget; they are not frame-accurate edit points, and\nactions may land slightly before or after a boundary. Do not demand impossible\ndensity such as three distinct actions inside one second.\n\n- Name reference roles explicitly, for example `Image 1: person`, `Image 2:\n  product`, `Image 3: kitchen setting`.\n- For multi-shot R2V, list `Shot 1`, `Shot 2`, and `Shot 3` in event order.\n  Set duration in provider controls rather than forcing exact seconds in text.\n- Prefer one primary movement per shot. A composite movement is valid when its\n  direction, relation to the subject, and speed express one synchronized intent.\n- When native audio is enabled, use `（）` for music, `<>` for sound effects,\n  `{}` for dialogue, and `【】` for on-screen captions.\n- State only constraints that are costly to redo.\n\nRead the reference matching the job:\n\n| File | Read it for |\n|---|---|\n| [prompt templates](references/prompt-templates.md) | Route-specific templates |\n| [prompt blocks](references/prompt-blocks.md) | Reusable camera, audio, constraint patterns |\n| [long video](references/long-video.md) | Staged structure, end states, timestamp rules |\n| [multi reference](references/multi-reference.md) | Binding many assets without confusing them |\n| [real person](references/real-person.md) | Believable human subjects, and when to omit the detail |\n| [transitions](references/transitions.md) | Which transitions to generate and which to edit |\n| [editing and extension](references/editing-and-extension.md) | Changing or continuing existing video |\n| [capabilities](references/capabilities.md) | 2.0 vs 2.5 limits; platform features vs API parameters |\n| [model profile](references/model-profile.md) | Measured per-model behaviour and compile notes |\n| [cinematography](references/cinematography.md) | Detailed visual decisions |\n| [troubleshooting](references/troubleshooting.md) | Fault-specific fixes |\n| [execution adapters](references/execution-adapters.md) | Runner and adapter configuration |\n\n## 5. Generate, review, and finish\n\n1. For a generated storyboard, create only the still first, display it in the\n   conversation, and inspect it before any video request.\n2. For a supplied storyboard, display the input unless it is already visible,\n   then verify it fits the chosen route.\n3. If the board passes review, generate one representative video pass without\n   waiting for approval. Otherwise refine or regenerate the board first.\n4. Review identity, locks, stage end states, composition, motion, seam, and audio\n   in that order, and stop at the first failure — later checks are wasted effort\n   on a wrong identity. Regenerate only the failed shot or segment.\n5. Generate chains in order because the next segment needs the real prior tail.\n   Generate cut-based clips independently and edit the planned transition.\n\nThe bundled script is a draft assembler, not a colour-grading or music-mixing\nsystem.\n\n## Atlas execution layer\n\nKeep creative route selection independent from how a job is submitted. The\ndefault models are Seedream 5.0 Pro for stills and Seedance 2.0 for video;\nusers may override them only after verifying route support.\n\nIn an agent conversation, use the **Atlas Cloud Skill** as the default direct\ngeneration route. It can discover a model, upload local media, submit an image\nor video request, poll, and retrieve outputs. Report `Execution: atlas-skill`\nonly when it actually submitted the generation.\n\nUse `atlas-mcp` only when the user explicitly selects MCP and its generation\ntools are exposed. Use `atlas-cli` only when the user explicitly selects a\nterminal, script, CI, or batch run. If the Atlas Cloud Skill is missing, help\ninstall `AtlasCloudAI/atlas-cloud-skills` before selecting a fallback.\n\nBefore reporting that an Atlas Cloud API key is missing, check the credentials\nin the **selected execution process**. For the REST runner, check\n`ATLASCLOUD_API_KEY` first and `ATLAS_CLOUD_API_KEY` as a compatibility alias.\nDo not infer credential availability from a different provider, plugin, or\nprocess; each execution channel can have an independent credential scope.\n\nIf neither key exists, direct the user to\n`https://www.atlascloud.ai/console/api-keys?utm_source=github&utm_campaign=awesome-seedance-2.5-prompts-skills`.\nNever ask them to paste the key in\nchat. Tell them to set `ATLASCLOUD_API_KEY` in the submitting process or the\nhost's secure environment settings, then refresh or restart the execution\nsession if needed. If the key exists in a parent or host configuration but is\nabsent from the submitting process, report an environment-scope mismatch\ninstead of saying the user has no key.\n\n### Billable task state machine\n\nApply these rules to every image and video generation:\n\n1. After submission, record the prediction ID and logical stage immediately.\n2. Treat `starting`, `queued`, `pending`, and `processing` as active. Poll the\n   same ID every 2 seconds; never submit another task for that stage.\n3. Treat `completed` and `succeeded` as successful terminal states. Download and\n   inspect the output before starting a dependent stage.\n4. Treat `failed`, `timeout`, and `canceled` as terminal failures. A new task\n   requires an explicit retry decision; report the old ID and possible extra\n   cost first.\n5. A zero or missing processing-time field, delayed output, a local polling\n   timeout, a stopped turn, or a temporary status-query error is **not** proof\n   of failure. Preserve the ID and resume polling.\n6. Interpret `continue` as “resume the existing task,” never as permission to\n   retry. Do not submit video while its required storyboard is still active.\n\nThe 2-second interval applies to every Atlas execution route in this workflow.\nFor `atlas-skill`, repeat its prediction-result step with the same ID. For\n`atlas-mcp`, call `atlas_get_prediction` with the same ID every 2 seconds. The\nMCP server performs a single status lookup per tool call; the agent owns the\nloop. The bundled REST and CLI adapters enforce the interval in code. A status\nlookup is read-only and must never be replaced with another generation call.\n\nWhen the runner must resume, set `execution.resumePredictionIds.<stage>` to the\nexisting ID. Supported stage keys include `grid`, `ref1`, `ref2`, `seg1`,\n`shot1`, and `clip1`. Never create a replacement merely because a prior polling\nprocess ended.\n\n`scripts/generate.mjs` cannot invoke an agent Skill or MCP server. It is a\nseparate batch runner: it defaults to `atlas-rest`, and can use `atlas-cli`\nonly when explicitly set in `execution.adapter`. It never selects CLI\nautomatically. See [execution adapters](references/execution-adapters.md).\n\n```bash\n# Generate a storyboard only. The runner prints [storyboard-preview] with an\n# absolute path; display and inspect that image before starting video work.\nGRID_ONLY=1 node scripts/generate.mjs scripts/myjob.json\n\n# Run only the first independent clip or segment as a quality gate.\nCLIPS_MAX=1 node scripts/generate.mjs scripts/myjob.json\nSEGS_MAX=1 node scripts/generate.mjs scripts/myjob.json\n```\n\n```json\n{ \"execution\": { \"adapter\": \"atlas-cli\" } }\n```\n\nAvailable runner modes:\n\n- `grid`: crop a model storyboard and make one independent I2V clip per panel;\n  suitable for a hard-cut montage.\n- `shot-pairs`: make independent I2V shots from `segments[]`, with a `first`\n  and optional `last` keyframe index.\n- `reference`: send a small role-specific set of R2V references. A reference\n  may be generated from a prompt or read from a local file.\n- `chain`: continue one action by feeding the generated tail frame to the next\n  segment. It is an alignment aid, not a guarantee of an invisible seam.\n\nFor fault-specific fixes, read [troubleshooting](references/troubleshooting.md).\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}