Scenario Ace Step logo

Scenario Ace Step

Organization
scenario-labs
scenario-ace-step

Use when creating or editing music with ACE-Step models on Scenario via MCP: text-to-music songs with sung vocals from a lyric sheet, instrumental tracks, covering or restyling an existing song, repainting one section in place, changing sung lyrics, adding an instrument layer, completing a partial recording into a full arrangement, extracting stems, or choosing between Turbo and Quality lanes. Keywords: ACE-Step 1.5, cover strength, repaint, Vocal2BGM, stem separation, karaoke, BPM.

Overview

Publisherscenario-labs
Repositoryskills
Skill namescenario-ace-step
Stars
970
Forks
114
Bundled files
Instructions only
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by scenario-labs on GitHub. Read the source before you install it.

Installation

Install the Scenario Ace Step AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/scenario-labs/skills/tree/main/skills/scenario-ace-step
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/scenario-labs/skills.git /tmp/skills
mkdir -p .claude/skills
cp -r /tmp/skills/skills/scenario-ace-step .claude/skills/scenario-ace-step
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Scenario Ace Step in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Scenario Ace Step on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Scenario Ace Step is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Scenario ACE-Step Music

Overview

ACE-Step 1.5, a music production family on Scenario, splits every mode into its own model: Text to Music, Cover, and Repaint each in a Turbo and a Quality lane, plus a full-quality edit trio (Add Layer, Complete Track, Stem Extract), nine members at authoring time. Discover them with search, pick the member by mode name, and treat model_schema_get as the contract.

Connection and the core loop: see the scenario skill in this repo; model-agnostic audio work: the scenario-audio 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.

Quick reference

ModeKey inputsBehavior
Text to Musicprompt or lyrics (either suffices)full song; duration 10 to 600 s (empty lets the model pick), bpm, keyscale
CoversrcAudio (+ referenceAudio)restyles a song, or re-sings it with new lyrics; audioCoverStrength sets how much of the original survives
RepaintsrcAudio + windowregenerates repaintingStart to repaintingEnd in place, length preserved
Add LayersrcAudio + trackName + promptadds one stem matched to key, tempo, and groove, optionally windowed
Complete TracksrcAudio + completeTrackClasses + promptarranges stems around a partial recording (Vocal2BGM)
Stem ExtractsrcAudio + trackNameisolates one stem from a mix

Numbers are at authoring time: read caps off model_schema_get. Stem fields take one of twelve fixed values (vocals, backing_vocals, drums, bass, guitar, keyboard, percussion, strings, synth, fx, brass, woodwinds), never free text. srcAudio is a single audio asset: upload_asset first, or reuse a generated asset id. Across members: numOutputs (1 to 4) multiplies cost, thinking (default true, absent on Stem Extract) runs a planning pass, vocalLanguage, where present, defaults to auto-detect. guidanceScale exists on the edit trio alone, audioCoverStrength on Cover alone, and repaintingEnd: -1 runs to the end of the track.

Lane choice

Turbo and Quality siblings take the same parameters, except audioFormat (mp3, wav, flac), at authoring time on Repaint Turbo alone. No member of the family exposed a seed, so two repaints of the same window are two takes, and the singer can change between them. Repaint regenerates the window; do not assume it preserves the source voice. Batch with numOutputs and pick, rather than re-running for a match, and read the next section before repainting to fix a sung line. The asymmetry runs the other way on some section composers in other families, which take a seed and no numOutputs; scenario-audio carries that rule. Quality is the full-size checkpoint tuned for fidelity and prompt adherence; Turbo is distilled for speed and at authoring time costs half as much. Iterate on Turbo (lyrics, structure, windows), then re-run the keeper's parameters on the Quality sibling. The edit trio has no Turbo lane. duration and numOutputs both move the price, so dry_run=true before a long track or a batch.

Writing the song

Keep prompt to a one-line style caption (genre, mood, instruments, production) and put the words in lyrics, shaped with section tags: [Verse], [Chorus], direction inside the tag like [Bridge - whispered], backing vocals in (parentheses), UPPERCASE for belted lines. Vocal-free music is instrumental: true, not "no vocals" in the caption. Tempo and key have dedicated fields (bpm, keyscale, e.g. "C Major"), not caption text.

Editing without regenerating

  • Cover keeps the structure recognizable; audioCoverStrength: near 1 stays faithful to the arrangement, 0.5 to 0.6 transforms the genre while the hook survives, around 0.2 borrows only the mood. referenceAudio optionally donates genre and feel; rewritten words go in lyrics.
  • For a lyric correction where the source voice matters (a flubbed line, a name that must change), try Cover: srcAudio the whole take, lyrics the corrected sheet, audioCoverStrength at the default 1, numOutputs up to 4 for takes to pick from. High strength favors the source, but does not guarantee the corrected words, singer, delivery, or timing. Waveform differences alone prove neither a voice change nor an audible splice. Audition the candidates against the master and locate the replacement boundaries in both recordings before editing. If listening is unavailable or no candidate matches, deliver the candidates for review and leave the master unchanged. After verification, keep only the corrected span: cut it out of the chosen take with model_scenario-audio-cut (a fixed first-party id, Scenario's single deterministic audio trimmer, so discovery would only re-derive it), asset_download it and the master, and splice it in locally. No MCP tool joins two audio files, so the join is editing work on the downloaded files, not a gap to bridge with another run; when the track rides a video, the compositor in scenario-video-assembly lays the span over the clip as an audio layer instead.
  • To change sung lyrics in a Repaint window when a new take of that section is acceptable: start prompt with "Repaint the selected section with new sung lyrics:", pass the full lyric sheet in lyrics with the new section in place, and set thinking: false. Expect the section's voice to be a new take.
  • Complete Track works best on a source with clear melody and rhythm.

Worked example: fix a chorus in a generated song

  1. search with target="models", query="ace-step", public=true. Pick members by mode name, e.g. model_ace-step-1-5-turbo-text-to-music and model_ace-step-1-5-turbo-repaint (live hits at authoring time: re-discover each session).
  2. model_schema_get on each id before running it.
  3. model_run the Text to Music member with dry_run=true and parameters={"prompt": "indie folk, warm, fingerpicked guitar, soft female vocals", "lyrics": "[Verse]\n...\n[Chorus]\n...", "duration": 90, "vocalLanguage": "en"}; re-estimate after changing duration or numOutputs.
  4. Repeat with wait=false, then jobs_wait with the job id, re-called with pending_job_ids on timeout, never a second model_run.
  5. asset_display to listen; note the chorus window, say 24 to 52 seconds.
  6. Decide what the fix must preserve. A new take of the chorus, voice included, is the Repaint member: model_run with parameters={"srcAudio": "<asset id>", "repaintingStart": 24, "repaintingEnd": 52, "thinking": false, "prompt": "Repaint the selected section with new sung lyrics:", "lyrics": "<full sheet with the new chorus in place>"}, allowing the voice to change. When source voice continuity matters, try the Cover member instead: parameters={"srcAudio": "<asset id>", "lyrics": "<full sheet with the new chorus in place>", "audioCoverStrength": 1, "numOutputs": 3}, then audition before cutting and splicing as the Editing section says.
  7. Listen again, then asset_download the keeper (omit format for audio).

Common mistakes

  • Expecting one model to infer the mode: every mode is a separate member; pick it by name from search.
  • The lyric sheet in prompt: it caps at 512 characters and carries style; words go in lyrics.
  • Free-text stems ("kick drum") in trackName or completeTrackClasses: only the twelve fixed values are valid.
  • Repainting new sung lyrics without the recipe: the sentinel prompt, the full sheet with the new section in place, and thinking: false go together.
  • Repainting to fix one sung line and expecting the same singer back: no seed pins a take and the window is regenerated, so the voice may change. Cover at full audioCoverStrength with corrected lyrics supplies candidates to audition, not a guaranteed performance match.
  • Hunting for a seed on these members or numOutputs on a composer that has a seed instead: batch here with numOutputs; where a member has a seed and no batch field, run it several times in parallel with distinct seeds, each run priced on its own.
  • Expecting Repaint to change track length: the window regenerates in place. A longer version of the same track is the extend lane the scenario-audio skill teaches, run by another family's member; a different length from scratch is a new Text to Music run.

Frequently asked questions

What does the Scenario Ace Step AI skill do?

Use when creating or editing music with ACE-Step models on Scenario via MCP: text-to-music songs with sung vocals from a lyric sheet, instrumental tracks, covering or restyling an existing song, repainting one section in place, changing sung lyrics, adding an instrument layer, completing a partial recording into a full arrangement, extracting stems, or choosing between Turbo and Quality lanes. Keywords: ACE-Step 1.5, cover strength, repaint, Vocal2BGM, stem separation, karaoke, BPM.

Why use Scenario Ace Step on TypingMind?

Because you install it once and use it with any model. Scenario Ace Step is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Scenario Ace Step in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/scenario-labs/skills/tree/main/skills/scenario-ace-step. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Scenario Ace Step?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Scenario Ace Step?

As many as you like. As long as a model supports skills, you can use Scenario Ace Step with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Scenario Ace Step AI skill free?

Yes. It is published on GitHub by scenario-labs under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇