ACE-Step v1.5 XL Base
The music node for people who actually want to steer the sampler
- audioSettings
- audio
ACE-Step v1.5 XL Base is the bigger sibling of the plain ACE-Step node in this pack, and the difference is in the name: "XL" and the extra scheduler controls. Where the base node hides its diffusion internals, this one hands you the sampler interval and a modular-scheduler escape hatch via JSON. It's the same music-generation family - prompt, lyrics, key, BPM, time signature - but built for people who've decided the defaults aren't good enough and want knobs to turn.
The model itself is from the ACE-Step project (the family behind the 3.5B checkpoint that impressed people in 2025 for being roughly 15x faster than LLM-based music generators). The v1.5 XL tier is the API's bigger-capacity offering, so as with everything in this pack there are no weights on your disk - you're renting a cloud generation.
What you set
positivePrompt is required. Everything from the base node carries over: settings.lyrics, settings.keyScale, settings.bpm, settings.timeSignature, settings.vocalLanguage, settings.guidanceType (apg/cfg), steps (100), CFGScale (10), duration (30–300s), plus the audio + repaintingStart/repaintingEnd editing path and strength.
The XL-specific extras:
settings.cfgIntervalStart/settings.cfgIntervalEnd- where in the denoising schedule guidance kicks in and stops, as a fraction (0.0 = first step, 1.0 = last). Shortening the interval is a legit trick to avoid overcooked high-frequency detail at the end of a track.advancedFeatures- a gated toggle whoseadvanced_jsonaccepts JSON foradvancedFeatures.modularScheduler. That's the power-user path: a modular scheduler lets you mix scheduler behavior across the diffusion schedule. If you don't know what you'd put there, leave it off - the field exists precisely so power users can shove custom config in without a node update.
Everything else is shared with the base node: outputFormat MP3/WAV/FLAC/OGG, ttl, and the output audio (AUDIO dict, waveform + sample rate) → Save Audio.
Installing
This is one node in the Runware/ComfyUI-Runware pack.
ComfyUI Manager: search Runware, install, restart.
Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/Runware/ComfyUI-Runware
pip install -r ComfyUI-Runware/requirements.txt
No models to download (runware-sdk, pillow, soundfile). API key from runware.ai/api-keys, set in Settings or as RUNWARE_API_KEY.
Where people get burned
The trap here is over-tuning. With cfgInterval and modular scheduler exposed, it's tempting to treat music generation like a K-sampler and burn $10 chasing a perfect track. Start with the defaults, change one thing at a time, and treat advanced_json as a last resort - malformed JSON gets merged into the request and can fail the whole run. And the same ground rule as the base node: structured lyrics beat prose every time.
Inputs (29)
| Name | Type | Default | Description |
|---|---|---|---|
| positivePrompt | STRING | Text prompt describing elements to include in the generated output. | |
| audioSettingsopt | RUNWARE_AUDIOSETTINGS | — | |
| audioopt | STRING | Audio input (UUID or URL). | |
| negativePromptopt | STRING | Prompt to guide what to exclude from generation. Ignored when guidance is disabled (CFGScale ≤ 1). | |
| seedopt | INT | 00–2147483647 | Random seed for reproducible generation. When not provided, a random seed is generated in the unsigned 32-bit range. |
| stepsopt | INT | 1001–300 | Total number of denoising steps. Higher values generally produce more detailed results but take longer. |
| CFGScaleopt | FLOAT | 10.001–30 | Guidance scale representing how closely the output will resemble the prompt. Higher values produce results more aligned with the prompt. |
| strengthopt | BOOLEAN | false | Enable to set strength. This setting has usage rules in this model, so it is off unless you enable it. |
| strength_valueopt | FLOAT | 0.500–1 | Fraction of steps using the input source instead of generated output. |
| durationopt | FLOAT | 60.030–300 | Length of the generated audio track in seconds. |
| numberResultsopt | INT | 11–4 | Number of results to generate. Each result uses a different seed, producing variations of the same parameters. |
| advancedFeaturesopt | BOOLEAN | false | Enable to set advancedFeatures. Off uses the model's default. |
| settings.bpmopt | BOOLEAN | false | Enable to set settings.bpm. Off uses the model's default. |
| settings.bpm_valueopt | INT | 3030–300 | Beats per minute. If not set, the model decides automatically. |
| settings.cfgIntervalStartopt | FLOAT | 0.000–1 | Diffusion ratio where CFG begins (0.0 = first step). |
| settings.cfgIntervalEndopt | FLOAT | 1.000–1 | Diffusion ratio where CFG ends (1.0 = last step). |
| settings.guidanceTypeopt | COMBO | apg | Controls how guidance is applied during generation. |
| settings.keyScaleopt | STRING | Musical key and scale in '{Note}{Accidental} {Mode}' format (e.g. 'C major', 'F# minor', 'Bb major'). | |
| settings.lyricsopt | STRING | Song lyrics, typically formatted like a lyrics website. | |
| settings.repaintingStartopt | BOOLEAN | false | Enable to set settings.repaintingStart. Off uses the model's default. |
| settings.repaintingStart_valueopt | FLOAT | -300.00-300–300 | Start time in seconds for repaint region. Requires input audio. Negative values prepend audio before the start. |
| settings.repaintingEndopt | BOOLEAN | false | Enable to set settings.repaintingEnd. Off uses the model's default. |
| settings.repaintingEnd_valueopt | FLOAT | 0.000–300 | End time in seconds for repaint region. Requires input audio. Values beyond audio duration append new audio. |
| settings.timeSignatureopt | COMBO | (default) | Beats per measure. If not set, the model decides automatically. |
| settings.vocalLanguageopt | COMBO | en | ISO 639-1 language code for vocals. `unknown` for instrumental or auto detection. |
| ttlopt | BOOLEAN | false | Enable to set ttl. Off uses the model's default. |
| ttl_valueopt | INT | 60 | Time-to-live (TTL) in seconds for generated content. Only applies when `outputType` is `URL`. |
| outputFormatopt | COMBO | MP3 | File format for the generated audio. |
| advanced_jsonopt | STRING | Optional JSON merged into the request. For: advancedFeatures.modularScheduler |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| audio | AUDIO | — |