Nodes/ComfyUI-ACEStep/🎵 ACE-Step 1.5XL TTS-like Voice Prompt
ComfyUI Node

🎵 ACE-Step 1.5XL TTS-like Voice Prompt

Turn a plain script into ACE-Step lyrics without the formatting fight

By starsFriday·Created 4 months ago·Updated 4 months ago· 4
🎵 ACE-Step 1.5XL TTS-like Voice Prompt
    • tags
    • lyrics
    • bpm
    • duration
    • timesignature
    • language
    • keyscale
    script月色落在窗前 我把想念轻轻念给你听 风穿过安静的长街 像你的声音靠近我心里 请用温柔的声音唱出这些字 每一句都清楚 每一次停顿都像呼吸 让我听见熟悉的你
    voice_tagsMandarin Chinese solo vocal, voice clone reference, clear lead vocal, intimate close-mic vocal, natural pronunciation, expressive singing, minimal accompaniment, soft piano bed, no instrumental intro, lyrics forward, clean vocal mix, gentle emotional delivery
    section_labelverse
    lines_per_section4
    bpm80
    duration30.0
    timesignature4
    languagezh
    keyscaleG minor

    If you've ever stared at ACE-Step's lyrics format - the [verse] / [chorus] section markers, the line-by-line structure - and wished you could just paste a paragraph of narration and be done, this node is for you. TTS-like Voice Prompt takes a plain script and a couple of musical settings, and outputs a fully-formed set of tags and lyrics plus all the musical parameters the text encoder wants. It's the "make this sound like someone talking/singing a script" workflow's brain.

    The honest name matters here: this is TTS-like, not TTS. ACE-Step won't read your script back with a strict voice - it reinterprets timing, melody, pronunciation and phrasing, which is exactly what you want for voice-guided narration or spoken-word tracks, and exactly wrong if you need word-perfect speech. Pair it with a reference voice sample (Reference Audio) and it behaves like a loose, musical voice-clone pipeline.

    How it works

    The node formats, it doesn't generate. It splits your script into lines (on newlines; a single paragraph gets split on sentence-ending punctuation), groups them into blocks of lines_per_section, and wraps each block in a [section_label] marker - [verse], [chorus], [spoken] or [narration]. If your script already has [section] markers, it passes it through untouched, which is the polite thing to do. The default script is a Mandarin Chinese monologue, and the default voice_tags are tuned for "clean lead vocal, lyrics forward, minimal accompaniment" - the exact profile that works with a reference voice.

    The inputs and outputs that matter

    The few you actually touch:

    • script - your raw text. No section markers needed; it formats them for you.
    • voice_tags - the style prompt. Swap the Mandarin defaults if you're not doing Chinese.
    • section_label and lines_per_section - how the script gets chunked.
    • bpm, duration, timesignature, language, keyscale - the musical frame, passed through untouched.

    Outputs are tags, lyrics, bpm, duration, timesignature, language, keyscale - and the whole point is that they plug directly into ACE-Step 1.5XL Text Encode's matching inputs. No retyping, no transcription errors between your plan and the encoder.

    Install

    ComfyUI Manager ("ComfyUI-ACEStep") or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/starsFriday/ComfyUI-ACEStep.git
    

    then restart. No pip deps of its own; the heavy lifting is the ACE-Step 1.5 XL models (acestep_v1.5_xl_turbo_bf16.safetensors, qwen_0.6b_ace15/qwen_4b_ace15 CLIP, ace_1.5_vae.safetensors) from the ACE-Step repo, and XL wants ~12GB+ VRAM.

    Gotchas

    Temper your expectations on the vocals themselves. The community consensus on ACE-Step is blunt: instrumentals are genuinely good, vocals and lyrics are the weak suit - so this node gets you a singable script, not a polished singer. Keep your reference clip to a clean vocal (10–30 seconds beats a full mix), keep generate_audio_codes off on the text encoder when the reference voice should lead, and expect to iterate. The other trap is forgetting that duration here just flows through - if it disagrees with the latent length in your sampler, you'll hear the mismatch as truncated output. Let this node's duration output be the single source of truth.

    Categoryaudio/ACE-Step 1.5 XL

    Inputs (9)

    NameTypeDefaultDescription
    scriptSTRING月色落在窗前 我把想念轻轻念给你听 风穿过安静的长街 像你的声音靠近我心里 请用温柔的声音唱出这些字 每一句都清楚 每一次停顿都像呼吸 让我听见熟悉的你
    voice_tagsSTRINGMandarin Chinese solo vocal, voice clone reference, clear lead vocal, intimate close-mic vocal, natural pronunciation, expressive singing, minimal accompaniment, soft piano bed, no instrumental intro, lyrics forward, clean vocal mix, gentle emotional delivery
    section_labelCOMBOverse4 options: verse, chorus, spoken, narration
    lines_per_sectionINT41–16
    bpmINT8010–300
    durationFLOAT30.01–2000
    timesignatureCOMBO44 options: 2, 3, 4, 6
    languageCOMBOzh23 options: en, ja, zh, es, de, fr, +17
    keyscaleCOMBOG minor34 options: C major, C# major, Db major, D major, D# major, Eb major, +28

    Outputs (7)

    NameTypeDescription
    tagsSTRING
    lyricsSTRING
    bpmINT
    durationFLOAT
    timesignature2,3,4,6
    languageen,ja,zh,es,de,fr,pt,ru,it,nl,pl,tr,vi,cs,fa,id,ko,uk,hu,ar,sv,ro,el
    keyscaleC major,C# major,Db major,D major,D# major,Eb major,E major,F major,F# major,Gb major,G major,G# major,Ab major,A major,A# major,Bb major,B major,C minor,C# minor,Db minor,D minor,D# minor,Eb minor,E minor,F minor,F# minor,Gb minor,G minor,G# minor,Ab minor,A minor,A# minor,Bb minor,B minor