DiffusionGemma ACE Cover Conditioning Gate
The ACE Cover Gate That Refuses to Fake a Timbre Match
- conditioning
- reference_latent
- conditioning
- status
- ready
DiffusionGemmaACECoverConditioning is where this pack's ACE Compose/Cover experiment actually does its work - and where it refuses to silently do the wrong thing. Read the display name carefully: it's a Cover Conditioning Gate, not a music generator. It takes an existing ACE conditioning stream, checks which mode the graph is in, and either lets that conditioning pass through untouched or bolts a reference-audio timbre latent onto it. If you're in Cover mode and the reference isn't actually there, it stops the branch instead of guessing.
The mechanism is worth understanding because it's the pattern this whole pack runs on. mode_token (a STRING you wire from DiffusionGemmaACEReferenceMode) decides the path. In "Compose new" it's a pure pass-through: your conditioning comes out the other side byte-identical and ACE semantic audio-code generation stays enabled. In "Cover reference" the node wants reference_latent - a LATENT input marked lazy, meaning ComfyUI won't bother evaluating it unless the branch is actually in Cover mode. When a valid latent is connected, the node appends it as reference_audio_timbre_latents on the conditioning via ComfyUI's own conditioning_set_values helper, and tells you semantic code generation should now be off. When Cover is selected but no valid reference latent exists, you get an ExecutionBlocker and a status string explaining why. No reference, no silent substitution - the node would rather kill the run than make a song that merely resembles your reference.
Its three outputs are conditioning (the routed stream), status (a STRING you can read in a text viewer to see what the gate decided), and ready (a BOOLEAN downstream logic can consume). For a beginner the useful mental model is: conditioning is the payload, ready is the traffic light, status is the explanation when the light is red. If you're Compose mode, ready is true and status reads something like "ACE Compose mode: semantic audio-code generation remains enabled."
The honest caveat, straight from the pack's own docs: this whole Compose/Cover path is an experiment, and Cover only behaves if the rest of your ACE-Step graph can actually produce a reference-audio latent and feed it here. ACE-Step is the community's standard local music generator (the "local Suno"), and its reference re-render is a real feature - but bolting the reference onto conditioning only matters if your sampler is built to honor reference_audio_timbre_latents. Don't add this gate expecting magic on top of a plain text-to-music setup.
Install is pack-level: ComfyUI Manager, search "DiffusionGemma Prompt Builder", or
cd ComfyUI/custom_nodes
git clone https://github.com/exportAnything/ComfyUI-DiffusionGemmaPromptBuilder
then restart. The genuinely fiddly part of this pack isn't the clone, it's the runtime: the Director model in models/LLM/ is a heavy download and the full music-video workflow wants real VRAM headroom. The gate itself is light - it only wakes up in Cover mode, which is exactly why the lazy input exists.
Watch for two failure modes. First, forgetting to wire the reference latent and flipping to Cover: expect the blocker, it's doing its job. Second, wiring a token that doesn't parse as one of the two known modes - that raises immediately rather than picking a side for you. If you ever wonder whether a branch actually ran, glance at status before blaming the sampler.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| conditioning | CONDITIONING | — | |
| mode_token | STRING | — | |
| reference_latentopt | LATENT | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| conditioning | CONDITIONING | — |
| status | STRING | — |
| ready | BOOLEAN | — |