Nodes/Kaola ACE-Step Music/ACE-Step Text to Music
ComfyUI Node

ACE-Step Text to Music

Type 'cinematic trailer music' and get a real track — ACE-Step Text to Music

By kana112233·Created 7 months ago·Updated 6 months ago· 29
ACE-Step Text to Music
  • lora_info
  • audio
  • audio_path
  • metadata
caption
checkpoint_dirAce-Step1.5
config_pathacestep-v15-turbo
lm_model_pathacestep-5Hz-lm-1.7B
duration30.00
batch_size2
seed-1
inference_steps8
deviceauto
lyrics
bpm0
keyscale
timesignature
vocal_languageunknown
instrumentalfalse
guidance_scale7.00
shift1.00
thinkingtrue
lm_temperature0.00
quantizationNone
compile_modelfalse
audio_formatflac

This is the flagship node of the Kaola ACE-Step pack and the one you'll reach for first. You type a description, it generates a full song - vocals, instruments, structure - as an audio file on your disk. No API, no key, no cloud round-trip: the whole thing runs on your GPU. People are already posting 10-song test runs of ACE-Step 1.5 on r/StableDiffusion and it holds up for a local generator. If you've been waiting for a serious local alternative to the hosted music services, this is it.

ACE-Step 1.5 is a diffusion-transformer music model with an attached language model. The DiT renders the audio; the language model (lm_model_path) writes the lyrics and metadata. Keep thinking on and the LLM invents the lyrics for you; turn it off when you're supplying your own and want a faster, more deterministic pass. On the default acestep-v15-turbo config it runs in about 8 diffusion steps - that's the distilled/few-step variant, and it's the same "turbo = fast but slightly less refined than the 50-step base" tradeoff you already know from image models.

The inputs that matter

The only thing you actually must type is caption - and specificity is the whole game. "Upbeat electronic dance music with heavy bass and synthesizer leads" gets you somewhere; "good music" gets you a generic blob. Then the useful knobs:

  • duration - seconds, 10 to 600. Start at 30.
  • inference_steps - 8 for turbo. That's the sweet spot, not a suggestion.
  • lyrics - leave empty for auto-generation, or paste your own (use [Verse 1]/[Chorus] style section markers).
  • bpm, keyscale, timesignature - 0/empty means auto-detect.
  • vocal_language - auto/unknown for the model to guess, or force en, zh, ja, ko, etc.
  • instrumental - true for no vocals.
  • batch_size - generate 2-8 variations in one go; each comes back with its real seed in metadata.
  • guidance_scale and shift - prompt adherence and sequence-length scaling. Defaults are fine until you're tuning.

Outputs: audio (into ComfyUI's Save Audio), audio_path, and metadata - a JSON string showing what was actually used (caption, bpm, duration, seed). Read it once; it teaches you how the model interpreted your prompt.

Install

The pack wraps ACE-Step 1.5, so there are two installs plus a model download:

git clone https://github.com/ACE-Step/ACE-Step-1.5.git
cd ACE-Step-1.5 && pip install -e .
cd ComfyUI/custom_nodes
git clone https://github.com/kana112233/ComfyUI-kaola-ace-step.git
cd ComfyUI-kaola-ace-step && pip install -r requirements.txt
huggingface-cli download ACE-Step/Ace-Step1.5 --local-dir ComfyUI/models/Ace-Step1.5

ComfyUI Manager installs just the node pack ("ComfyUI-kaola-ace-step"); the ACE-Step package and the ~8GB of models are manual. The checkpoint_dir dropdown lists folders under ComfyUI/models/, so keep the acestep-v15-turbo/ and acestep-5Hz-lm-1.7B/ subfolders inside Ace-Step1.5/. Then restart ComfyUI.

Where people get burned

  • "Model path not found" - the models aren't in ComfyUI/models/Ace-Step1.5/ with the right subfolder names. That error is almost always a download/layout problem, not a code problem.
  • OOM - drop batch_size to 1 and use the smaller acestep-5Hz-lm-0.6B language model. README's own advice for <8GB VRAM: batch 1, small LM, thinking off.
  • Doesn't match your prompt - get more specific, and remember the turbo model is a fast impression, not a faithful rendering. Switch to acestep-v15-base with 32-64 steps when a track matters.

A last note on quantization/compile_model: int8_weight_only cuts VRAM but needs torchao installed, compile_model on, and it won't work with LoRA. Only reach for it when you're actually bumping the VRAM ceiling.

CategoryAudio/ACE-Step

Inputs (23)

NameTypeDefaultDescription
captionSTRINGText prompt or natural language description for music generation.
checkpoint_dirCOMBOAce-Step1.5Directory containing ACE-Step model weights (DiT model).
config_pathCOMBOacestep-v15-turboSpecific model configuration to use (e.g., v1.5 turbo).
lm_model_pathCOMBOacestep-5Hz-lm-1.7BPath to the language model used for generating lyrics and metadata.
durationFLOAT30.0010–600Target duration of the generated music in seconds.
batch_sizeINT21–8Number of audio samples to generate in a single batch.
seedINT-1-1–18446744073709550000Random seed for reproducibility. Set to -1 for random generation.
inference_stepsINT81–64Number of diffusion steps. Higher values (e.g., 25-50) improve quality but are slower.
deviceCOMBOautoComputing platform to run the model on.
lora_infooptACE_STEP_LORA_INFOOptional LoRA model information for style fine-tuning.
lyricsoptSTRINGSong lyrics. Leave empty for automatic generation by the language model.
bpmoptINT00–300Beats per minute. 0 for automatic detection.
keyscaleoptSTRINGMusical key and scale (e.g., C Major).
timesignatureoptSTRINGMusical time signature (e.g., 4/4).
vocal_languageoptSTRINGunknownVocal language (e.g., zh, en, ja, auto, unknown). Accepts string input from CreateSample node.
instrumentaloptBOOLEANfalseWhether to generate instrumental music only (no vocals).
guidance_scaleoptFLOAT7.001–15Strength of prompt following.
shiftoptFLOAT1.001–5Sequence length scaling factor, default is 1.0.
thinkingoptBOOLEANtrueWhether to show the language model's Chain-of-Thought reasoning.
lm_temperatureoptFLOAT0.000–2Sampling temperature for the language model. 0.0 is most stable (recommended).
quantizationoptCOMBONoneModel quantization (e.g., int8). Reduces VRAM usage but requires torchao and compile_model=True. Incompatible with LoRA.
compile_modeloptBOOLEANfalseWhether to use torch.compile to optimize the model. Required for quantization. Slow on first run but faster afterwards.
audio_formatoptCOMBOflacOutput audio file format.

Outputs (3)

NameTypeDescription
audioAUDIO
audio_pathSTRING
metadataSTRING