Nodes/DiffusionGemma Prompt Builder/DiffusionGemma Song Audition Seed Fanout
ComfyUI Node

DiffusionGemma Song Audition Seed Fanout

Same root seed, same song — reproducible auditions every time

By exportAnything·Created 2 months ago·Updated a day ago· 44
DiffusionGemma Song Audition Seed Fanout
    • candidate_1_seed
    • candidate_2_seed
    • candidate_3_seed
    • candidate_4_seed
    • seed_report_json
    root_seed26073001
    production_conceptSource passthrough

    Reproducibility is the whole point of the DiffusionGemma music-video pipeline. You audition two to four ACE-Step song candidates, listen, lock one, and render - and the last thing you want is for a video-only tweak to silently hand you a different song on the next run. DiffusionGemma Song Seed Fanout exists so the song candidates are a pure function of one number: the root_seed.

    It takes that single integer plus your production_concept, and derives the deterministic ACE song seeds - but importantly, not with some private hash only it understands. The derivation (splatstage-autodirect@1|... family of strings in seed_report_json) exactly matches the one the SplatStage Router uses, so the seeds the fanout produces and the seeds the router actually generates with are the same numbers. Preview with this node, run with the router, and you get the same candidates. That shared derivation is the feature.

    What the two concepts mean for the outputs

    • Audition and select: you get four zero-based audition seeds on candidate_1_seed through candidate_4_seed. Change the root seed, get four different candidates - deliberately.
    • Source passthrough and Joint video-safe plan: one production music seed. The node still fills all four output sockets with copies of that single seed, which reads weird until you realize it's guarding against a downstream node implying that four candidates were secretly authored. Only lane 1 is real.

    In audition mode the effective count is controlled elsewhere (the shared DiffusionGemmaMusicProductionConcept sets how many candidates get generated); this node just guarantees the seeds.

    Inputs and outputs

    Set root_seed (default 26073001) - keep it independent of the LTX/H3 sampling seed, because music and video seeds intentionally don't share a lineage - and mirror the same production_concept the rest of the workflow uses. Outputs are the four INT seeds plus seed_report_json, which records the derivation, the root, and which audition indices were live. If you ever suspect the fanout and the router disagree, that report is where you'd see it.

    Wiring and gotchas

    Give the candidate seeds to the ACE-Step candidate lanes via the selector/QC path. The one beginner trap: in the non-audition concepts, don't expect outputs 2–4 to yield different songs - they're echoes by design. And don't feed the LTX sampler seed into this expecting "one seed to rule them all"; that conflation is how you end up debugging why your song changed when only your video changed. Install the pack from ComfyUI Manager (search "DiffusionGemma Prompt Builder") or git clone the repo into custom_nodes; this is lightweight control-plane code, not a model-calling node.

    Categoryprompt/diffusiongemma/audio-production

    Inputs (2)

    NameTypeDefaultDescription
    root_seedINT260730010–9223372036854776000
    production_conceptCOMBOSource passthrough3 options: Source passthrough, Joint video-safe plan, Audition and select

    Outputs (5)

    NameTypeDescription
    candidate_1_seedINT
    candidate_2_seedINT
    candidate_3_seedINT
    candidate_4_seedINT
    seed_report_jsonSTRING