Claude
Skills
Sign in
Back

ace-step

Included with Lifetime
$97 forever

Generate, inpaint, and outpaint music with ACE Step on RunComfy via the `runcomfy` CLI. ACE Step is StepFun-AI's open-weights music foundation model — tag-driven composition (genre, mood, instruments), multilingual lyrics with section markers, 5 s to 4 min stereo output, $0.0002–0.0003 per second (≈ 27× cheaper than ElevenLabs Music). Four endpoints: ACE Step text-to-audio (the default), ACE Step 1.5 text-to-audio (50+ language lyrics, refined structured-lyric handling), ACE Step audio-inpaint (regenerate a time range inside an existing track), ACE Step audio-outpaint (extend an existing track before or after). Triggers on "ace step", "ace-step", "acestep", "ACE music", "open music model", "cheap AI music", "inpaint audio", "audio inpaint", "extend music", "audio outpaint", "lengthen track", "music with tags", or any explicit ask to generate or edit music with ACE Step.

Image & Video

What this skill does


# ACE Step — Pro Pack on RunComfy

Tag-driven music generation, inpainting, and outpainting with StepFun-AI's **ACE Step** open-weights model. Four CLI-reachable endpoints, $0.0002–0.0003 per second of audio, up to 4 minutes per call.

[runcomfy.com](https://www.runcomfy.com/?utm_source=skills.sh&utm_medium=skill&utm_campaign=ace-step) · [ACE Step base](https://www.runcomfy.com/models/acestep-ai/ace-step/text-to-audio?utm_source=skills.sh&utm_medium=skill&utm_campaign=ace-step) · [ACE Step 1.5](https://www.runcomfy.com/models/acestep-ai/ace-step-1.5/text-to-audio?utm_source=skills.sh&utm_medium=skill&utm_campaign=ace-step) · [CLI docs](https://docs.runcomfy.com/cli/introduction?utm_source=skills.sh&utm_medium=skill&utm_campaign=ace-step)

## Install this skill

```bash
npx skills add agentspace-so/runcomfy-agent-skills --skill ace-step -g
```

## Powered by the RunComfy CLI

**Step 1 — install** (one of, see the `runcomfy-cli` skill for details):

```bash
npm i -g @runcomfy/cli         # global install
npx -y @runcomfy/cli --version # zero-install
```

**Step 2 — sign in** (or set `RUNCOMFY_TOKEN` env var in CI / containers):

```bash
runcomfy login
```

**Step 3 — generate**:

```bash
runcomfy run acestep-ai/ace-step/text-to-audio \
  --input '{"tags": "..."}' \
  --output-dir ./out
```

CLI deep dive: [`runcomfy-cli`](https://www.skills.sh/agentspace-so/runcomfy-agent-skills/runcomfy-cli) skill.

---

## Pick the right endpoint

Listed newest first.

**ACE Step 1.5 (text-to-audio)** — `acestep-ai/ace-step-1.5/text-to-audio`
> Latest ACE Step generation. **50+ language vocal support**, refined structured-lyric handling, otherwise same shape as base. Slightly higher cost ($0.0003/s vs $0.0002/s).
> Pick for: multilingual lyrics, hero-quality vocal tracks, vocal songs that need clean section structure.
> Avoid for: cost-sensitive batches where the base model is good enough.

**ACE Step (text-to-audio)** — `acestep-ai/ace-step/text-to-audio` *(default — cheap & fast)*
> Original ACE Step. Tag-driven composition, optional lyrics, 5–240 s stereo. $0.0002/s — ~27× cheaper than ElevenLabs Music.
> Pick for: high-volume drafts, background music, jingles, game loops, cost-sensitive iteration.
> Avoid for: maximally polished commercial vocal hooks — try **ACE Step 1.5** or **ElevenLabs Music** for those.

**ACE Step (audio-inpaint)** — `acestep-ai/ace-step/audio-inpaint`
> Regenerate a **time range** inside an existing track (not mask-based; uses `start_time` / `end_time` in seconds, each anchored to track start or end).
> Pick for: fix a bad chorus in the middle, swap the bridge, replace a 20 s section without re-rendering the whole song.
> Avoid for: edits that aren't time-bounded — those don't fit the schema.

**ACE Step (audio-outpaint)** — `acestep-ai/ace-step/audio-outpaint`
> Extend an existing track **bidirectionally** — add intro before, outro after, or both.
> Pick for: lengthening a 30 s draft into a 2 min cut, adding a fade-in, building a longer arrangement around an existing hook.
> Avoid for: extending a track past 4 min total — chain calls instead.

---

## Route 1: ACE Step text-to-audio (default)

**Model**: `acestep-ai/ace-step/text-to-audio` (or `acestep-ai/ace-step-1.5/text-to-audio` for the 1.5 variant)

### Schema (both variants — same shape)

| Field | Type | Required | Default | Notes |
|---|---|---|---|---|
| `tags` | string | yes | — | **Comma-separated** genre / mood / instrument tags. Drives composition |
| `lyrics` | string | no | — | Vocal content. Use section markers `[Verse]`, `[Chorus]`, `[Bridge]`. Use `[inst]` or `[instrumental]` for no vocals |
| `duration` | int | no | `60` | Audio length in seconds. **5–240** (max 4 min per call) |
| `seed` | int | no | `-1` | Reproducibility; `-1` randomizes |

**Pricing**: ACE Step $0.0002/s · ACE Step 1.5 $0.0003/s. 60 s ≈ $0.012 / $0.018; 240 s ≈ $0.048 / $0.072.

### Invoke

**Tag-driven instrumental:**

```bash
runcomfy run acestep-ai/ace-step/text-to-audio \
  --input '{
    "tags": "lo-fi hip-hop, mellow, vinyl crackle, rhodes piano, soft drums, 75 BPM",
    "lyrics": "[inst]",
    "duration": 90
  }' \
  --output-dir ./out
```

**Full vocal song with structure (use 1.5 for multilingual):**

```bash
runcomfy run acestep-ai/ace-step-1.5/text-to-audio \
  --input '{
    "tags": "indie pop, anthemic, electric guitar, driving drums, female vocal, 120 BPM",
    "lyrics": "[Verse]\nChalk on the palms, laces double-knotted\nMorning on the ridge, the sun is rising\n[Chorus]\nWe rise, we strike, we never fade out\nWe rise, we strike, we sing it loud\n[Bridge]\nSoft piano breakdown\n[Outro]\nFull band, fade",
    "duration": 60
  }' \
  --output-dir ./out
```

### Prompting tips

- **Tags do the heavy lifting** — be specific: `"lo-fi hip-hop, mellow, vinyl crackle, rhodes piano, soft drums, 75 BPM"` beats `"chill music"`.
- **Include BPM** in tags when it matters — ACE respects tempo language.
- **Lyrics with section markers**: `[Verse]`, `[Chorus]`, `[Bridge]`, `[Outro]`. Keep meter consistent across lines.
- **Instrumental shortcut**: `"lyrics": "[inst]"` or `"[instrumental]"`. Belt-and-suspenders: also say "no vocals" in tags.
- **Multilingual vocals**: ACE Step 1.5 covers 50+ languages. Write lyrics directly in the target language; tag the language too (`"japanese vocal, j-pop"`).
- **Fix the seed** for reproducibility (`"seed": 42`); use `-1` to explore variations.
- **Cheap draft → polish**: ACE Step at 5–10× lower cost is great for iterating tags before committing to a long render.

---

## Route 2: ACE Step audio-inpaint

**Model**: `acestep-ai/ace-step/audio-inpaint`
**Catalog**: [audio-inpaint](https://www.runcomfy.com/models/acestep-ai/ace-step/audio-inpaint?utm_source=skills.sh&utm_medium=skill&utm_campaign=ace-step)

### Schema

| Field | Type | Required | Default | Notes |
|---|---|---|---|---|
| `audio` | string | yes | — | HTTPS URL to MP3 / WAV / FLAC. Up to 60 min |
| `tags` | string | yes | — | Comma-separated tags steering the regenerated segment |
| `start_time` | float | no | — | Start of editable segment, in seconds (0–240) |
| `start_time_relative_to` | enum | no | `start` | `start` or `end` — anchor for `start_time` |
| `end_time` | float | no | `30` | End of editable segment, in seconds (0–240) |
| `end_time_relative_to` | enum | no | `start` | `start` or `end` — anchor for `end_time` |
| `lyrics` | string | no | — | Lyrics for the regenerated segment. Blank = model writes; `[inst]` = no vocals |
| `seed` | int | no | `-1` | Reproducibility |

**No mask** — region is defined purely by `start_time` / `end_time` (each anchorable to track start or end).

### Invoke

**Replace 20–40 s of a track with a new bridge:**

```bash
runcomfy run acestep-ai/ace-step/audio-inpaint \
  --input '{
    "audio": "https://your-cdn.example/original-track.mp3",
    "tags": "indie pop, breakdown, piano only, soft, no drums",
    "start_time": 20,
    "end_time": 40,
    "lyrics": "[inst]"
  }' \
  --output-dir ./out
```

**Anchor end relative to track end (rewrite the last 15 s):**

```bash
runcomfy run acestep-ai/ace-step/audio-inpaint \
  --input '{
    "audio": "https://your-cdn.example/song.mp3",
    "tags": "indie pop, fade, soft, ambient pad",
    "start_time": 15,
    "start_time_relative_to": "end",
    "end_time": 0,
    "end_time_relative_to": "end"
  }' \
  --output-dir ./out
```

### Tips

- **Match the surrounding tags** — if the original is "indie pop, electric guitar, 120 BPM", the inpaint segment should share enough of the tags to blend, not contrast.
- **Inpaint window is up to ~4 min** even on a 60-min source — pick a focused range, not the whole track.
- **Use `_relative_to: "end"`** to target the outro/last seconds without computing exact timestamps.

---

## Route 3: ACE Step audio-outpaint

**Model**: `acestep-ai/ace-step/audio-outpaint`
**Catalog**: [audio-outpaint](https://www.runcomfy.com/models/acestep-ai/ace-step/audio-outpaint?utm_source=skills.sh&utm_medi

Related in Image & Video