Nodes/DiffusionGemma Prompt Builder/DiffusionGemma ACE Compose / Cover Mode
ComfyUI Node

DiffusionGemma ACE Compose / Cover Mode

One Toggle That Flips ACE-Step Between Writing a Song and Covers a Track

By exportAnything·Created 2 months ago·Updated a day ago· 44
DiffusionGemma ACE Compose / Cover Mode
    • generate_audio_codes
    • mode_token
    modeCompose new

    DiffusionGemmaACEReferenceMode is the smallest honest node in the DiffusionGemma Prompt Builder pack, and one of the easiest to misread. Despite the mouthful of a name it's just a switch: it tells the rest of the audio-production graph whether ACE-Step should write a brand-new song ("Compose new") or re-render against a reference track's timbre ("Cover reference"). It loads no models, touches no audio, and does no validation of its own. You put it in the graph because the downstream ACE conditioning gate needs to know which world it's living in.

    Why bother having a dedicated node for a two-option dropdown? Because in this pack's synchronized ACE-Step + LTX music-video workflow, that one choice fans out to several consumers, and they need to agree. The node converts your menu pick into two things on its outputs: generate_audio_codes, a BOOLEAN that's true only when you chose Compose, and mode_token, a STRING that the cover-conditioning gate downstream reads to decide whether it may use a reference latent. Fan that token to the gate and the whole branch is consistent - no drifting widgets, no two nodes silently disagreeing about whether ACE semantic audio-code generation is on. If you've spent time in big ComfyUI graphs chasing "why is this branch doing something different from that branch," you've felt the problem this node exists to prevent.

    Wire it like this: DiffusionGemmaACEReferenceMode.mode_token feeds DiffusionGemmaACECoverConditioning.mode_token (that input is a forced string, so it's meant to be connected, not typed), and generate_audio_codes can drive a switch or gate further up the ACE path. Its only manual input is the mode enum, defaulted to "Compose new". If you leave it alone, nothing about your saved workflow changes - Compose is the backward-compatible behavior, which is why the default is safe to ship.

    Here's the honest framing you want going in: Cover mode is an experiment even by this pack's own documentation, it fails closed until a valid reference-audio latent is actually connected, and it requires ACE semantic-code generation to be disabled. ACE-Step is ComfyUI's default local music generator - great on instrumentals, famously weaker on vocals - and the Compose/Cover split maps onto its reference-audio feature. Don't expect the Cover toggle to do anything on its own. All it does is set the intent; the heavy lifting happens downstream, and only if the rest of the branch is actually built to receive a reference.

    Installing the pack is the same for every node in it. In ComfyUI Manager, search "DiffusionGemma Prompt Builder", or from a terminal:

    cd ComfyUI/custom_nodes
    git clone https://github.com/exportAnything/ComfyUI-DiffusionGemmaPromptBuilder
    

    then restart ComfyUI. The Manager route pulls the pip dependencies (transformers, comfy-kitchen, and friends) for you; if you clone by hand, install requirements.txt yourself. One caveat so you're not surprised: the full music-video graph needs the DiffusionGemma Director model in models/LLM/, which is a big download, and running the whole thing end-to-end wants roughly 24–26 GB of VRAM. The mode switch itself is free; the workflow around it is not.

    The main way people get confused with this node is expecting the dropdown to be the entire feature. Pick your mode, wire the token, then go read the cover gate's status text - that's where the real signal lives.

    Categoryprompt/diffusiongemma/audio-production

    Inputs (1)

    NameTypeDefaultDescription
    modeCOMBOCompose new2 options: Compose new, Cover reference

    Outputs (2)

    NameTypeDescription
    generate_audio_codesBOOLEAN
    mode_tokenSTRING