Fal AI Media
affaan-m/ECC
Unified media generation via fal.ai MCP — image, video, and audio.
A skill your agent uses when generating or editing video with Seedance models on Scenario via MCP: text-to-video, image-to-video, first and last frame anchors, reference-to-video from identity…
$ npx skills add scenario-labs/skills --skill scenario-seedance -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install scenario-labs/skills scenario-seedance --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/scenario-labs/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/scenario-seedance .claude/skills/scenario-seedance && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "scenario-seedance" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/scenario-seedance into .claude/skills/scenario-seedance/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-seedance", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/scenario-labs/skills/tree/main/skills/scenario-seedanceType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add scenario-labs/skills --skill scenario-seedance -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install scenario-labs/skills scenario-seedance --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/scenario-labs/skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/scenario-seedance .agents/skills/scenario-seedance && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "scenario-seedance" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/scenario-seedance into .agents/skills/scenario-seedance/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-seedance", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add scenario-labs/skills --skill scenario-seedance -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install scenario-labs/skills scenario-seedance --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/scenario-labs/skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/scenario-seedance .cursor/skills/scenario-seedance && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "scenario-seedance" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/scenario-seedance into .cursor/skills/scenario-seedance/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-seedance", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/scenario-labs/skills.git --path skills/scenario-seedance--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add scenario-labs/skills --skill scenario-seedance -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install scenario-labs/skills scenario-seedance --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/scenario-labs/skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/scenario-seedance .gemini/skills/scenario-seedance && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "scenario-seedance" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/scenario-seedance into .gemini/skills/scenario-seedance/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-seedance", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install scenario-labs/skills scenario-seedanceInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add scenario-labs/skills --skill scenario-seedance -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/scenario-labs/skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/scenario-seedance .github/skills/scenario-seedance && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "scenario-seedance" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/scenario-seedance into .github/skills/scenario-seedance/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-seedance", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add scenario-labs/skills --skill scenario-seedance -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install scenario-labs/skills scenario-seedance --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/scenario-labs/skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/scenario-seedance .opencode/skills/scenario-seedance && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "scenario-seedance" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/scenario-seedance into .opencode/skills/scenario-seedance/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-seedance", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
scenario-seedanceA skill your agent uses when generating or editing video with Seedance models on Scenario via MCP: text-to-video, image-to-video, first and last frame anchors, reference-to-video from identity…
Scenario Seedance is an agent skill from scenario-labs/skills. Use when generating or editing video with Seedance models on Scenario via MCP: text-to-video, image-to-video, first and last frame anchors, reference-to-video from identity, product, or world references, prompt-based editing, extending a clip, audio-conditioned motion or voice, shot sound without music, first-frame versus reference conditioning, or an output blocked by moderation. Keywords: Seedance 2.5 and 2.0, ByteDance, T2V, I2V, V2V, native audio, OutputVideoSensitiveContentDetected.
Its SKILL.md is about 3.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Media & Creative, covering AI video generation. It works with Seedance and Model Context Protocol. The repository describes itself as: Get production-ready images, video, audio, and 3D from any AI agent: skills that pick the right model, price before spending, and keep characters and brands consistent through… The licence is MIT.
6 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit f6f8ab7. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
npxFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use npx, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Scenario Seedance loads about 3.1k tokens when it runs. Until then it costs about 128 tokens; SKILL.md has 1,416 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from scenario-labs/skills at commit f6f8ab7, republished under its MIT licence (© scenario-labs). 1,416 words, ~3,141 tokens.
.claude/skills/scenario-seedance/SKILL.md (or your agent's skills folder).Seedance, ByteDance's video family on Scenario, folds every mode below into one model that infers which from your inputs, so the conditioning you pass decides more than prompt wording. Discover it with search and treat model_schema_get as the contract: members ship side by side, agreeing on the shape and disagreeing on every number.
Connection and the core loop: see the scenario skill in this repo; model-agnostic video work: the scenario-video skill; choreography held across cuts from a storyboard: the scenario-seedance-storyboard skill. If a sibling skill named here is missing from your available skills, ask the user to install it (npx skills add scenario-labs/skills --skill <name>); unattended, proceed from tool schemas and flag the gap.
Mode follows from the inputs (names from the live schema):
| Mode | Inputs | Behavior |
|---|---|---|
| Text | prompt | aspectRatio honored (21:9 through 9:16) |
| First frame | image (+ prompt) | opens on that frame; aspectRatio ignored, size follows resolution and may land only near the ratio |
| First + last | image + lastFrameImage | lastFrameImage is only valid alongside image |
| Reference | referenceImages | carries identity and world, not the opening state |
| Edit | referenceVideos + edit prompt | requires duration: -1; output follows the source |
| Extend | referenceVideos + extend prompt | inferred from wording: "extend @video1", what holds (character, wardrobe, light), the action that continues, no cut; geometry follows the source; duration is the footage appended and the output holds only that tail (a 10 s source with duration 15 returned 15 s of new footage at authoring time; Auto priced as the source length), so concatenate source and tail and read the delivered length off asset_get |
image and the reference arrays are mutually exclusive. referenceVideos (motion conditioning) and referenceAudio (timing and energy, or a speaker's voice) combine with referenceImages; on the 2.0 line reference audio also requires one image or video reference, where 2.5 takes it alone. Reference parameters are arrays even for one asset. Prompt tags bind by array order: @image1 is referenceImages[0], likewise @video1 and @audio1, and the prompt says what each tag governs and what it leaves alone ("@image1 defines the bottle and label, nothing of the set"), for video and audio tags as much as for images. No seed, mask, or camera parameter exists: camera moves live in the prompt, one dominant move and one action per shot. Several actions go as timecoded beats ("0-2s ... 2-4s ..."), one per beat, the last ending inside duration, the shot named as one continuous take.
A reference track the prompt does not claim is easily ignored, a generated voice line most of all, so bind it to a role in words: "@audio1 is her own voice; she speaks it to camera, lips in sync" for speech, "the camera move and each action land on the beats of @audio1" for music.
duration defaults to Auto, which on 2.5 at authoring time priced a text-to-video job as the full 30 second cap (the same 480p prompt quoted about four times its 8 second price). Set the seconds the shot needs on every run; with referenceVideos, Auto follows the longest reference clip instead.
Caps are per member, so read them off model_schema_get. At authoring time 2.5 took 30 reference images, 10 videos, 10 audio, 4 to 30 seconds, up to 1080p; the 2.0, Fast, and Mini hits took 9, 3, 3, and 4 to 15, with 4k on 2.0 alone and no lastFrameImage on Mini. Price moves further than the caps do, six times across the family for one 4 second 480p job, so dry_run the same job on two members before a batch.
In reference mode, frame one anchors to the base state of the reference world, and no prompt wording overrides it. If the shot must open in a specific state, render a still of it and pass it as image; use referenceImages when only identity, world, and palette matter. Deciding this per shot before generating is worth more than any prompt tuning.
generateAudio (default true) is one switch over the whole track: it scores the shot as well as sounding it. A score written inside a shot survives no cut, since each shot invents its own key and tempo and the next one restarts them.
So run the lanes apart. Keep generateAudio: true for what the picture makes, footsteps, impacts, room tone, dialogue, each landing on frame, and name only those sounds ("diegetic sound only: heels on tile, room tone"). Never name what to leave out: "no music" is what the audio filter reads, and a track blocked with OutputAudioSensitiveContentDetected usually traces to such an exclusion, so re-run on the same model with the sound named positively before any provider switch: the filter read the wording, not the provider (see the scenario-moderation skill). Spoken lines go in quotes, sized to the clip's seconds, with the speaker named and the delivery in two or three words. Score the sequence once with a music model (see the scenario-audio skill) and lay that track over the assembled cut (see the scenario-video-assembly skill, or scenario-seedance-music-video when the song comes first): re-scoring then costs one audio run, not every shot again.
The prompt is the only lever, so listen to what comes back: when music leaks in, re-run that shot with generateAudio: false and add sound from a sound-effects or video-to-audio model.
A failed row whose error names OutputVideoSensitiveContentDetected (often with PolicyViolation, sometimes worded as possible copyright) is the provider screening the finished render. The filter belongs to the family, so a Seedance sibling refuses the same payload and the identical retry renders it again. Handle it the way the scenario-moderation skill teaches: switch to another provider first, prompt unchanged apart from moving the @image tags to the alternative's own reference field per its schema. For recommend, text-to-video is txt2video, first-frame and reference jobs are img2video, edit and extend are video2video. Two observations at authoring time decide what comes after. A character the screen takes for existing intellectual property stays blocked whatever the wording: a studio's own well-known character failed while a lesser-known one from the same studio, prompt unchanged, passed. Weapon and harm vocabulary ("axe", "blade", "eliminated") tripped it even in a cartoon, which is where that skill's one honest rewrite belongs. When the block persists past the switch and that rewrite, on the team's own characters for example, tell the user they can write to support@scenario.com with the failed job id. Unattended, launch the switch only within the spend the task authorized; otherwise stop and report the block with the failed job id.
search with target="models", query="seedance", public=true. Prefer the newest non-deprecated hit, e.g. model_bytedance-seedance-2-5 (a live hit at authoring time: re-discover each session).model_schema_get with that id: fields, caps, and defaults before anything else.upload_asset the product stills (see the scenario skill) to get asset ids.model_run with that model_id, dry_run=true, and the exact parameters={"prompt": "@image1 defines the bottle and label. Slow dolly-in as condensation beads. Diegetic sound only: droplets on glass, soft room tone. No text, no captions.", "referenceImages": ["asset_a", "asset_b"], "duration": 8, "resolution": "720p", "generateAudio": true} for the cost estimate; re-estimate after any change to duration, resolution, or references.model_run with wait=false, then jobs_wait with the returned job id, re-called with pending_job_ids on timeout, never a second model_run.asset_display the output and watch it with sound before the music goes on.image.["asset_x"].image with referenceImages or referenceVideos: mutually exclusive inputs.duration on Auto: on 2.5 a text-to-video job priced as the 30 second cap, not the shot's length.generateAudio off.scenario-moderation skill).© scenario-labs, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/scenario-seedance of scenario-labs/skills.
Open the folder on GitHubat commit f6f8ab7
Scenario Seedance next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Scenario Seedance this skillscenario-labs/skills | 946 | — | ~3.1k | Automated safety check: Pass | MIT | |
| Fal AI Mediaaffaan-m/ECC | 277k | 4 repos | ~1.9k | Automated safety check: Pass | MIT | |
| Fal AI Mediaaffaan-m/ECC | 277k | 2 repos | ~1.2k | Automated safety check: Pass | MIT | |
| Fal AI Mediaaffaan-m/ECC | 276k | — | ~1.4k | Automated safety check: Pass | MIT | |
| Create Video Falgooseworks-ai/goose-skills | 1.2k | — | ~1.3k | Automated safety check: Pass | MIT | |
| Seedance2 APIaiskillstore/marketplace | 433 | — | ~3.7k | Automated safety check: Pass | MIT |
affaan-m/ECC
Unified media generation via fal.ai MCP — image, video, and audio.
affaan-m/ECC
通过 fal.ai MCP 实现统一的媒体生成——图像、视频和音频。涵盖文本到图像(Nano Banana)、文本/图像到视频(Seedance、Kling、Veo 3)、文本到语音(CSM-1B),以及视频到音频(ThinkSound)。当用户想要使用 AI 生成图像、视频或音频时使用。
affaan-m/ECC
fal.ai MCPによる統合メディア生成(画像、動画、音声)。テキストから画像(Nano Banana)、テキスト/画像から動画(Seedance、Kling、Veo 3)、テキストから音声(CSM-1B)、動画から音声(ThinkSound)をカバーします。ユーザーがAIで画像、動画、音声を生成したい場合に使用します。
gooseworks-ai/goose-skills
Image-to-video (or text-to-video) via any FAL video model (Kling, Seedance, Veo), ROUTED THROUGH THE GooseWorks fal-proxy so the call bills the Ads agent.
aiskillstore/marketplace
Out-of-the-box Seedance 2.0 API skill — just one API key to generate AI videos.
calesthio/OpenMontage
Create AI avatar videos with precise control over avatars, voices, scripts, scenes, and backgrounds using HeyGen's v2 API.
scenario-labs/skills
A skill your agent uses when drawing or animating with Grease Pencil in Blender 5.x from Python: 2D or 2.5D illustration, frame-by-frame animation, a cutout or part-based 2D character, strokes with…
scenario-labs/skills
A skill your agent uses when grooming hair or fur in Blender with hair curves, such as a character hairstyle, animal fur, procedural fur in geometry nodes, or hair cards and mesh hair for games.
scenario-labs/skills
A skill your agent uses when lighting, rendering or compositing in Blender: light a character, product or hero shot, interior at dusk or night, three-point or motivated lighting, sun and sky, HDRI…
scenario-labs/skills
A skill your agent uses when creating a ChatGPT pet or Codex pet with Scenario: hatching an animated companion from a text idea, a character, mascot or brand cue, or reference photos and art; making…
scenario-labs/skills
A skill your agent uses when animating characters or scenes in Godot 4.7: AnimationPlayer clips and RESET, AnimationTree state machines and blend spaces built in code, Mixamo or glTF import, loop…
scenario-labs/skills
A skill your agent uses when adding or fixing sound in Godot 4.7: audio buses and effects, volume sliders, 'too many sounds', combat audio with hundreds of enemies, sounds clipping or distorting, 3D…
Works with
Categories
A skill your agent uses when generating or editing video with Seedance models on Scenario via MCP: text-to-video, image-to-video, first and last frame anchors, reference-to-video from identity…. Scenario Seedance is an agent skill from scenario-labs/skills. Use when generating or editing video with Seedance models on Scenario via MCP: text-to-video, image-to-video, first and last frame anchors, reference-to-video from identity, product, or world references, prompt-based editing, extending a clip, audio-conditioned motion or voice, shot sound without music, first-frame versus reference conditioning, or an output blocked by moderation.
Scenario Seedance fits situations like: editing video with Seedance models on Scenario via MCP: text-to-video; first and last frame anchors; reference-to-video from identity; world references.
Run `npx skills add scenario-labs/skills --skill scenario-seedance -a claude-code`. Or copy the skill folder (skills/scenario-seedance in scenario-labs/skills) into .claude/skills/scenario-seedance in your project. Claude Code loads it when a task matches its description.
Run `npx skills add scenario-labs/skills --skill scenario-seedance -a codex`. Or copy the skill folder (skills/scenario-seedance in scenario-labs/skills) into .agents/skills/scenario-seedance in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add scenario-labs/skills --skill scenario-seedance -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/scenario-seedance, .gemini/skills/scenario-seedance, .github/skills/scenario-seedance and .opencode/skills/scenario-seedance in your project.
Going by SKILL.md and its folder, Scenario Seedance needs the command-line tools its instructions call (npx). Our summary lists: Node.js.
SKILL.md contains no URLs. Its commands use npx, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Scenario Seedance is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.1k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Scenario Seedance: Fal AI Media (affaan-m/ECC, 277k stars), Fal AI Media (affaan-m/ECC, 277k stars), Fal AI Media (affaan-m/ECC, 276k stars) and Create Video Fal (gooseworks-ai/goose-skills, 1.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
scenario-labs (a GitHub organization) maintains it in scenario-labs/skills, which has 946 GitHub stars. The repository holds 146 skills in this directory. The repository was last updated on October 10, 2026.
Source: scenario-labs/skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.