ComfyUI Node

ACE-Step Cover

Turn any song into a new genre with ACE-Step Cover — no stem splitting required

By kana112233·Created 7 months ago·Updated 6 months ago· 29
ACE-Step Cover
  • src_audio
  • lora_info
  • audio
  • audio_path
  • metadata
caption
checkpoint_dirAce-Step1.5
config_pathacestep-v15-turbo
lm_model_pathacestep-5Hz-lm-1.7B
audio_cover_strength0.50
batch_size1
seed-1
inference_steps8
guidance_scale7.00
deviceauto
lyrics
vocal_languageunknown
instrumentalfalse
bpm0
keyscale
timesignature
use_adgfalse
thinkingtrue
audio_formatflac
instruction

This is the node people come for. Drop in a song, type "jazz piano arrangement with a swing feel," and get a full cover version that keeps the melody and rhythm but changes everything else about the sound. No stem splitting, no midi transcription, no two-hour breakdown video required. If you've ever wanted to hear your favorite pop song as a bossa nova, ACE-Step Cover is the closest thing to a magic button.

The one honest caveat up front: this pack is one of several competing wrappers around ACE-Step 1.5, the music generation model from ACE-Step (the other well-known one is RyanOnTheInside's). This Kaola pack is the one that exposed Cover and the other audio-to-audio tasks early, and for a free, local, GPU-native music generator it's genuinely good. Just set expectations - it's a diffusion model, not a recording studio.

How it works

ACE-Step is a diffusion transformer trained on audio, with a language model (the "lm" in lm_model_path) handling lyrics and metadata. Cover works roughly like img2img does for images: your source audio gets encoded into semantic "codes," then the DiT regenerates the audio conditioned on your caption, using the original as structure reference. audio_cover_strength is your dial between "keep the original arrangement" (toward 1.0) and "let the new style really take over" (toward 0.1-0.3). The tooltip tells you the same thing: lower for more style change.

The language model writes the cover's metadata and lyrics in the new style - that's why the thinking toggle exists. Leave it on unless you're supplying your own lyrics and want to skip the LLM pass.

The inputs that matter

You set three things most of the time: src_audio, the caption (be specific: mood, genre, instrumentation), and audio_cover_strength. Then leave checkpoint_dir at "Ace-Step1.5", config_path at acestep-v15-turbo for fast results, and inference_steps at 8. On the base model (acestep-v15-base) you'd want 50+ steps - that's the quality/speed fork.

Worth knowing: batch_size generates variations of the same cover, vocal_language and lyrics let you pin down vocals, bpm/keyscale force tempo and key (0/empty = keep original), and use_adg (Adaptive Dual Guidance) is a "maybe improves quality, costs time" checkbox. lora_info accepts the output of the pack's LoRA Loader if you have a style LoRA.

Outputs are audio (wire into ComfyUI's Save Audio), audio_path (a string for later use), and metadata (a JSON string with what actually got generated, including the real seed).

Install

The pack doesn't install itself - Manager can grab ComfyUI-kaola-ace-step, but you still need the ACE-Step dependency and the model files:

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

Restart ComfyUI after that. checkpoint_dir scans every folder directly under ComfyUI/models/, so your "Ace-Step1.5" folder just has to contain the acestep-v15-turbo/ and acestep-5Hz-lm-1.7B/ subdirectories.

Where people get burned

Two real complaints from the community on this pack specifically. First, early builds of Cover (and Repaint) had a bug where output came out speed-shifted - a 3-minute song compressed into seconds of chipmunk audio. The fix landed in a community pull request, so if you hit that, update the pack before doing anything else. Second, even with that fixed, don't expect the model to recreate your exact lyrics - people report the new voice can sing something close but not identical. It's a cover, not a karaoke track.

CategoryAudio/ACE-Step

Inputs (22)

NameTypeDefaultDescription
src_audioAUDIOSource audio to be covered (remade in new style).
captionSTRINGDescription of the target musical style (e.g., 'A jazz version of this song').
checkpoint_dirCOMBOAce-Step1.5Directory containing ACE-Step model weights.
config_pathCOMBOacestep-v15-turboModel configuration (turbo is faster).
lm_model_pathCOMBOacestep-5Hz-lm-1.7BLanguage model for metadata/lyrics.
audio_cover_strengthFLOAT0.500–1Strength of preserving original audio structure. Use LOWER (0.1-0.3) for more style change.
batch_sizeINT11–4Number of variations.
seedINT-1-1–18446744073709550000Random seed.
inference_stepsINT81–100Steps. Turbo: 8, Base: 50+.
guidance_scaleFLOAT7.001–15CFG strength.
deviceCOMBOautoProcessing platform.
lyricsoptSTRINGOptional lyrics.
vocal_languageoptCOMBOunknownTarget language.
instrumentaloptBOOLEANfalseInstrumental mode.
bpmoptINT00–300Target BPM (0 for keep original).
keyscaleoptSTRINGMusical key.
timesignatureoptSTRINGTime signature.
use_adgoptBOOLEANfalseAdaptive Dual Guidance.
thinkingoptBOOLEANtrueShow LLM reasoning.
audio_formatoptCOMBOflacOutput format.
lora_infooptACE_STEP_LORA_INFOOptional LoRA style model.
instructionoptSTRINGCustom instruction (overrides default cover instruction).

Outputs (3)

NameTypeDescription
audioAUDIO
audio_pathSTRING
metadataSTRING