Nodes/Kaola ACE-Step Music/ACE-Step Create Sample
ComfyUI Node

ACE-Step Create Sample

Plan your song before you spend GPU time on it — ACE-Step Create Sample

By kana112233·Created 7 months ago·Updated 6 months ago· 29
ACE-Step Create Sample
    • caption
    • lyrics
    • duration
    • bpm
    • keyscale
    • vocal_language
    query
    checkpoint_dirAce-Step1.5
    lm_model_pathacestep-5Hz-lm-1.7B
    deviceauto
    instrumentalfalse
    vocal_languageauto
    top_k50
    top_p0.95
    temperature0.00

    Create Sample is the node that turns a vague idea into a concrete generation plan - and it does it almost for free. You type "a soft Bengali love song for a quiet evening" and instead of a song it gives you six useful things: a polished caption, the lyrics, a duration, a bpm, a keyscale, and a vocal_language. That's the spec. Then you feed that spec into ACE-Step Text to Music and let the diffusion model do the expensive part.

    Why bother with the extra hop? Because of how the pack is wired: the language model (ACE-Step's acestep-5Hz-lm-* series) is what turns your words into lyrics and metadata, and it's far cheaper to run than the DiT. Running it first means you can read, edit, and re-roll the plan before committing GPU minutes to audio. You get reproducibility, too - the plan becomes explicit inputs to the generation node, so the "thinking" pass doesn't have to guess.

    How it works

    Under the hood it calls ACE-Step's create_sample with your query and returns the structured result. It still needs the ACE-Step environment and a language model loaded - that's what checkpoint_dir and lm_model_path are for - but no diffusion happens here. The config_path is pinned to a dummy value in the code, which is a giveaway that the DiT never runs in this node. Outputs are six STRING/FLOAT/INT wires you can drag straight into Text to Music's caption, lyrics, duration, bpm, keyscale, and vocal_language inputs.

    The inputs that matter

    • query - your natural-language request. Include mood, genre, language, tempo.
    • instrumental - force instrumental; the node then skips lyrics.
    • vocal_language - constrain (en, zh, ja, ko, bn, …) or leave auto.
    • temperature - the tooltip says it plainly: 0.0 is most stable and recommended. The top_k/top_p defaults (50 / 0.95) are fine.

    Install

    Identical to the rest of the Kaola pack - you won't install anything new for this node:

    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 can install the node pack itself; the ACE-Step dependency and models are manual either way. Restart after install.

    Where people get burned

    Not much to trip on here - this is the simplest node in the pack. The main confusion is expecting an audio output; there is none, and that's the point. If you just want one node that does query → song in a single step, use ACE-Step Simple Mode instead, which chains this planning pass and the generation together. If you want to inspect and edit the plan, Create Sample is your node.

    One practical tip: since temperature 0 is recommended, you'll get the same plan for the same query until you change it. If you want variety in the plan itself, nudge the temperature up - it's the only creativity lever here.

    CategoryAudio/ACE-Step

    Inputs (9)

    NameTypeDefaultDescription
    querySTRINGNatural language query describing the music you want to generate.
    checkpoint_dirCOMBOAce-Step1.5Directory containing ACE-Step model weights (DiT model).
    lm_model_pathCOMBOacestep-5Hz-lm-1.7BPath to the language model used for generating lyrics and metadata.
    deviceCOMBOautoComputing platform to run the model on.
    instrumentaloptBOOLEANfalseWhether to generate instrumental music only (no vocals).
    vocal_languageoptCOMBOautoVocal language (e.g., zh, en, ja).
    top_koptINT500–1000Top-K filtering parameter for sampling.
    top_poptFLOAT0.950–1Top-P (nucleus sampling) filtering parameter.
    temperatureoptFLOAT0.000–2Sampling temperature for the language model. 0.0 is most stable (recommended).

    Outputs (6)

    NameTypeDescription
    captionSTRING
    lyricsSTRING
    durationFLOAT
    bpmINT
    keyscaleSTRING
    vocal_languageSTRING