Text To Song
ACE-Step 1.5 plans and renders a full song from a style caption and optional lyrics, with reference audio for style, a BPM control and vocals in 48 selectable languages.
Overview
ACE Studio and StepFun built ACE-Step 1.5 as two models working in sequence, released under the MIT license. A language model based on Qwen3 acts as the planner: it expands a short request into a song blueprint, writing metadata, lyrics and captions through chain-of-thought reasoning. A Diffusion Transformer (DiT) then renders the audio from that plan.
This page runs the turbo DiT, which ACE-Step lists at 8 inference steps, together with the 1.7B planner. According to ACE-Step, the training data combined licensed music, royalty-free and public-domain tracks, and synthetic audio made by MIDI-to-audio conversion.
What you can build
- A full song from a two-line style brief, with or without vocals.
- New music in the feel of a track you own, uploaded as a style reference.
- Jingles sung in a chosen language, for example Turkish, Hindi or Cantonese.
- Tracks at a fixed tempo for video edits or workout playlists.
Inputs
- Caption: free text describing the music, prefilled with a punk rock example. A filled caption overrides the tag lists; an empty one is assembled from them.
- Lyrics using [verse], [chorus] and [bridge] markers. They are sung only after you turn off the instrumental switch, which is on by default.
- Reference audio: one song in MP3, WAV, M4A, WEBM or OPUS, used as style inspiration.
- Tags for genre, instrument, mood, vocal type and timbre, all required.
- Duration: 10, 30, 60, 90, 120, 180 or 240 seconds; the default is 60.
- Vocal language: Auto, or one of 48 named languages (Latin, Filipino and Swahili among them).
- BPM from 0 to 300, where 0 leaves the tempo to the model.
- Advanced: steps (1 to 50, default 8, though the turbo checkpoint never runs more than 8), guidance scale (1 to 20, default 7), planner and instrumental switches (both on by default) and a seed (42 by default).
Outputs
A request returns one MP3 file. The three examples on the page are 60-second stereo recordings at 48 kHz.
Recommended settings
Leave the planner switched on, as the page's own parameter note advises; it writes the structure and metadata the DiT follows. Steps and guidance are best left at their defaults: steps above 8 are clamped back to 8 on the turbo checkpoint, and ACE-Step supports the guidance scale only on its non-turbo checkpoints.
The instrumental switch is on when the page loads, and while it is on your lyrics are replaced with an instrumental. Turn it off to get vocals.
Write the caption like a brief for a session player: genre, lead instruments, vocal type and energy in a sentence or two. Set the language when the lyrics are not in English, and fix the BPM only when timing matters.
Limitations
- ACE-Step 1.5 can generate up to 10 minutes of audio, but this page stops at 240 seconds.
- The model also supports covers, repainting and vocal-to-accompaniment conversion. This page offers generation only, with an optional style reference.
- ACE-Step claims more than 50 lyric languages; the menu here names 48.
Safety & compliance
ACE-Step 1.5 is MIT-licensed, and its model card states that generated music can be used for commercial purposes. The project's disclaimer warns that output can unintentionally resemble protected works through stylistic similarity, and asks users to verify originality, disclose AI involvement and obtain permission before adapting protected styles or material. If a reference track contains a real person's voice, have that person's consent before uploading it.
Example prompts
Great starting points for text-to-song-ACE-Step1.5.
API quick start
Run text-to-song-ACE-Step1.5 with a single API call.
{
"prompt": "[verse]\nBright lights flashing in the cit…",
"caption": "A high-energy punk rock anthem with drivi…",
"genre": "pop",
"instrument": "guitar"
}curl -X POST "https://api.wiro.ai/v1/Run/ace-step/text-to-song-ace-step1-5" \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_WIRO_API_KEY" \
--data-binary @- <<'JSON'
{
"prompt": "[verse]\nBright lights flashing in the cit…",
"caption": "A high-energy punk rock anthem with drivi…",
"genre": "pop",
"instrument": "guitar"
}
JSONOther models you might like
Explore similar music generation models.



