DiffusionGemma Music Production Concept
One dial so the music planner and song router can't disagree
- planner_mode
- router_mode
- candidate_count
On the music side of the DiffusionGemma pack, two separate systems both need to know how the song should be made: the SplatStage Planner, which authors the creative blueprint that ACE-Step will compose from, and the Song Blueprint Router, which decides what actually gets generated. Set one to "source passthrough" and the other to "audition" and you've built a workflow that disagrees with itself. DiffusionGemma Music Production Concept exists to make that impossible - it's one shared production choice routed to both consumers, so the planner and the router always read the same instruction.
The name undersells the real value. "Concept" here is not a genre or mood - it's a strategy for how you want the music produced relative to the video, and the pack supports exactly three of them:
- Source passthrough (default) - the already-authored song blueprint passes through unchanged. Note the README's precise wording: this is blueprint passthrough, not file-audio passthrough. Your authored
ace_tags, lyrics, BPM, key, and meter bundle stays as-is. - Joint video-safe plan - asks DiffusionGemma to author lower transient, tonal, and lyric pressure before ACE-Step composes, so the music is less likely to fight the video cut. Pick this when the track and the visuals keep clashing.
- Audition and select - keeps that coherent bundle intact, varies only the deterministic song seed, generates two to four candidates, and judges the waveform that actually exists. This is the mode for when you want choices rather than trust.
How it works
Two widgets in: production_concept and audition_candidate_count (2–4, default 2 - the bounded default). Three outputs: planner_mode, router_mode, and candidate_count. The first two are the same token, aimed at each consumer; candidate_count is the requested audition count when you're in Audition mode and 1 otherwise, so a passthrough run never spawns phantom candidates. The node is pure routing of intent - it doesn't touch a single audio sample.
Wiring
Feed production_concept from the same choice the rest of the graph uses (or drive it from a linked widget). Connect planner_mode into the SplatStage Planner, router_mode into the Song Blueprint Router, and candidate_count into the selector that lazily renders candidate lanes. Use it in concert with DiffusionGemmaSongSeedFanout, which derives the actual audition seeds for the same concept so preview and production agree.
Gotchas
If you change concept here, the mode you see on both downstream nodes changes together - which is exactly the point, but it does mean you should change it in one place and expect the whole branch to respond. And remember that in Source passthrough, candidate_count reports 1 regardless of what audition_candidate_count says; the second widget only bites in Audition mode. Install the pack from ComfyUI Manager (search "DiffusionGemma Prompt Builder") or git clone https://github.com/exportAnything/ComfyUI-DiffusionGemmaPromptBuilder into custom_nodes. It's control-plane code - no DiffusionGemma model call - so it's a safe node to add while you're still deciding whether to commit to the full model download.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| production_concept | COMBO | Source passthrough | 3 options: Source passthrough, Joint video-safe plan, Audition and select |
| audition_candidate_count | INT | 22–4 | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| planner_mode | Source passthrough,Joint video-safe plan,Audition and select | — |
| router_mode | Source passthrough,Joint video-safe plan,Audition and select | — |
| candidate_count | INT | — |