A model that sings reads two things: a description of the sound, and the lyrics with labels that say where each part goes. Most bad results come from those two disagreeing, or from lines that were never meant to be sung.
ACE-Step 1.5 is open source. On a computer with a recent NVIDIA card and Python, its own app gives you every checkpoint, adapters and batch generation. Install it from the ACE-Step 1.5 repository and follow its README. We have not run that install on our own machine, so we link to it rather than repeat commands we have not checked.
Write lines a model can sing
Lyrics written for a page often fail when sung. The model has to fit every syllable into the melody it writes, so give it lines that fit.
- One sung phrase per line. A line break is where the singer breathes.
- 6 to 10 syllables a line works best. Keep the first line of each verse about as long as the first line of the others.
- A blank line between parts, and a tag above each part.
- Parentheses for backing vocals:
(ooh, ooh)is treated as harmony, not the lead line. - Capitals for intensity, used sparingly: a shouted last line of a chorus, not a whole verse.
The tags are the song's structure. These are the ones the model was trained on:
| Tag | What it does |
|---|---|
[Intro], [Outro] |
Opening and ending, usually without vocals |
[Verse], [Pre-Chorus], [Chorus], [Bridge] |
The sung parts |
[Build], [Drop], [Breakdown] |
Energy rising, released, pulled back |
[Instrumental], [Guitar Solo], [Piano Interlude] |
Parts with no vocals |
[Fade Out], [Silence] |
Endings and stops |
A tag can carry one short description: [Chorus - anthemic]. Stack several and
the model may sing them.
[Verse]
Morning light across the floor
Coffee cold beside the door
[Chorus - anthemic]
Sing it out, sing it slow
(sing it slow)
Let the quiet city know
Describe the sound, not the lyrics
The prompt says what it should sound like: genre, mood, instruments, the kind of voice and how it is produced. "Warm acoustic pop, gentle male vocals, fingerpicked guitar, close and intimate" gives the model four things to hold on to. "A nice song" gives it none.
Two rules save most retries:
- Keep tempo and key out of the prompt. Set them in the tempo and key fields instead. A number in the prompt and a different one in the fields is a conflict the model resolves badly.
- Make the prompt and the lyrics agree. A prompt that says "instrumental ambient" over four verses of lyrics gets you neither.
Match the length to the lyrics
The model decides how long each part lasts, but the total length is yours. A useful rule of thumb is about two bars per sung line. At 120 BPM in 4/4 a bar is two seconds, so eight lines of verse and chorus need about 32 seconds, before the intro and outro. Too short and lines get rushed or dropped; too long and the model fills the gap with repeats.
- Open Generate AI Music. Song with vocals (ACE-Step 1.5 Turbo) is the default where your browser can run it.
- Type the description in the prompt bar.
- Open Lyrics, paste the tagged lyrics, and set the lyrics language.
- Set Length to fit the lyrics, and a tempo under Advanced if you have one in mind.
- Press Generate. The first song also downloads the parts of the model it needs, so it takes longest.
- Listen. Keep the seed if you like the voice and only want to change the words.
When one part comes out wrong
You do not have to start again. Switch to the Studio, select the stretch that is wrong on the waveform (anything from 3 to 90 seconds), and regenerate just that part. The rest of the song stays as it was, and the edit is saved as a new take next to the old one, so you can compare.
If the words themselves need to change, edit the lyrics of that section first: the model reads the whole song's lyrics when it fills in a part.