ACE-Step 1.5 Lego Guider β‘π ‘π π £π
Build a song one instrument track at a time
- model
- positive
- negative
- source_latents
- reference_latent
- GUIDER
ACE-Step 1.5 changed the deal on local music generation: instead of the model blasting out a finished song in one pass, you can build it track by track - drums first, then bass, then a vocal line - the way you'd stack Lego bricks. That's literally where the name comes from. This node is the guider that drives one of those bricks: point it at an existing song latent, tell it which instrument you want, give it a time window, and it generates that track to fit.
It's part of a small pack by ryanontheinside, who's better known in the ComfyUI world for real-time video work (ComfyStream, Daydream) than for music - the ACE-Step side is newer, but the pack's older audio/motion-reactive tooling has a solid reputation, and this extension into ACE-Step 1.5 rode in on genuine community enthusiasm for the model itself. People have been calling 1.5 a real alternative to Suno, which is a big claim for something that runs on your own GPU.
How it works
Like Flux's or SD3's guiders, this is a ComfyUI Guider object - it bundles your model, conditioning, and CFG into something a SamplerCustomAdvanced node can drive. You wire its GUIDER output into that sampler alongside a Noise node and a scheduler, and it produces one track's worth of audio latent for the time range you specify, laid on top of whatever's already in source_latents.
The inputs and outputs that matter
model- your loaded ACE-Step 1.5 checkpoint, coming from a loader earlier in the graph. This node doesn't fetch weights itself.positive/negative- standard conditioning for what you want (and don't) in this track.cfg- the tooltip spells out the trap directly: base model default is 7.0, but the Turbo model uses 1.0 because it has no CFG at all. Leaving CFG at 7 on Turbo doesn't sharpen anything, it just doubles your render time and can burn the result - the same guidance-distillation trap that trips people up on image models.track_name- pick from twelve instrument choices (vocals, drums, bass, guitar, keyboard, strings, percussion, synth, fx, brass, woodwinds, backing_vocals). This is the one field that actually decides what you're generating.start_seconds/end_seconds- the window this track occupies in the song.reference_latent(optional) - feed it another track or clip and the new track adopts its timbre/instrument character. Handy for keeping, say, all your synth layers sounding like they came from the same patch.
Output is a single GUIDER, straight into your sampler.
How to install it
Via ComfyUI Manager, search RyanOnTheInside. Manually:
cd ComfyUI/custom_nodes
git clone https://github.com/ryanontheinside/ComfyUI_RyanOnTheInside
then restart ComfyUI. Separately, you need the actual ACE-Step 1.5 model weights loaded into a MODEL somewhere upstream - this node consumes a checkpoint, it doesn't download one.
Common issues & troubleshooting
CFG confusion between base and Turbo. This is the most common way to waste a generation. Match your CFG to whichever ACE-Step 1.5 variant you actually loaded - 1.0 for Turbo, 7.0 as a starting point for base.
Track sounds nothing like the rest of the song. Without a reference_latent, each track is generated somewhat independently within your prompt - if you want cohesive timbre across tracks, feed one in.
Building track by track and losing track of state. Because source_latents is what you're building onto, run this guider once per instrument, always feeding the growing latent forward from the previous track's output rather than starting fresh each time - otherwise you end up with several disconnected tracks instead of one song.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | β | |
| positive | CONDITIONING | β | |
| negative | CONDITIONING | β | |
| cfg | FLOAT | 7.00β100 | Classifier-free guidance scale. Base model default is 7.0. Turbo model uses 1.0 (no CFG). |
| source_latents | LATENT | β | |
| track_name | COMBO | 12 options: vocals, drums, bass, guitar, keyboard, strings, +6 | |
| start_seconds | FLOAT | 0.00β1000 | β |
| end_seconds | FLOAT | 30.00β1000 | β |
| reference_latentopt | LATENT | Optional reference audio latent for timbre conditioning. The generated track will adopt the timbre/instrument character of this reference. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| GUIDER | GUIDER | β |