ACE-Step v1.5 XL SFT
The full-quality ACE-Step, for the take that matters
- audioSettings
- audio
If you've looked at Runware_ace_step_v1_5_xl_turbo and wondered what the non-turbo version does, this is it. Runware_ace_step_v1_5_xl_sft is ACE-Step's full-quality XL tier - SFT stands for the supervised fine-tuning that made it the careful, high-fidelity version - and the number that tells the whole story is steps: 100 by default against Turbo's 8. Same music-generation family, same AUDIO output, but a completely different trade: you're buying minutes of cloud compute per draft in exchange for the polished take.
The way to think about these two nodes is draft versus master. Turbo finds the idea in seconds. SFT takes the idea and actually renders it - more denoising steps, more refinement, real vocal and arrangement quality. If you're scoring a video, making a jingle, or turning a lyrics sheet into something presentable, this is the node you finish with. Turbo is the one you start with.
How it works
audioInference with the runware:[email protected] AIR. Prompt, optional input audio, and the musicality settings go up; the generated track decodes back into a ComfyUI AUDIO object. SFT's extra control surface reflects the longer diffusion run: CFGScale defaults to 10 (real guidance, unlike Turbo's fast path), there's negativePrompt, and the advanced group adds settings.guidanceType (apg vs cfg) plus settings.cfgIntervalStart/cfgIntervalEnd - the diffusion-ratio window where guidance applies, for fine control over how much of the track the prompt shapes.
The inputs that matter
positivePrompt(required) - the brief: genre, tempo, mood, instrumentation.steps- 100 default, up to 300. This is your cost dial as much as a quality dial; 100 is a strong default, not a floor.CFGScale- 10 default. Lower for a freer interpretation, higher to clamp to the prompt.duration- 30 to 300 seconds, default 60. The biggest cost lever after steps.settings.lyrics- lyrics formatted like a lyrics site; SFT is where they actually land.settings.vocalLanguage- ISO 639-1 code;unknownfor instrumental.settings.repaintingStart/repaintingEnd- regenerate a slice of an existingaudioinput instead of the whole track.
Installing it
Install the 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
Key from runware.ai/api-keys → ComfyUI Settings → Runware API key (or RUNWARE_API_KEY). Keep soundfile installed for clean audio decode.
Where people get burned
- The bill is the product. 100+ steps of music generation is one of the more expensive calls in this pack. Do not iterate here - iterate on Turbo, then render the winner with SFT.
- Long durations plus high steps compound. A 300-second, 300-step run is a "go make tea" wait and a notable charge.
- Guidance settings are advanced for a reason.
cfgIntervalStart/EndandguidanceTypewill confuse more than help until you've heard the defaults; the tooltips describe exactly what they do, so treat them as tunable once you know the sound you want. - Same
audiostring-input caveat. To repaint a local file, upload it via the pack's upload node and feed the UUID.
ACE-Step XL SFT is the "record it properly" node in the audio pair. Use Turbo to find the song, use SFT to release it.
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 | — |