Nodes/duckcomfy personal nodes/Duck Seed Selector
ComfyUI Node

Duck Seed Selector

One checkbox that flips between your global seed and a local one

By duckcomfy·Created about a year ago·Updated 10 months ago· 0
Duck Seed Selector
    • seed
    use_global_seedtrue
    global_seed0
    seed0

    Duck Seed Selector is the "one seed to rule them all" node with an escape hatch. You give it a global_seed and a per-node seed, and a checkbox decides which one flows out. Tick it, and every sampler wired to this node runs on the global seed - change it once, the whole run changes. Untick it, and this particular chain uses its own seed instead, so you can experiment with one sampler without disturbing the others.

    The whole point of a shared seed is reproducibility and control: you find a composition you like, lock the seed, and iterate on prompts or parameters while the base stays stable. The problem is that a single global seed everywhere gets you clones - the classic detailing gotcha where an automatic detail pass re-inpaints every face with the same base seed and you end up with a crowd of twins. A selector that can break one branch out of the global seed is the clean fix: keep the base render on the global seed, and let the detail pass run its own.

    Inputs and output

    • use_global_seed - BOOLEAN, default on. On: the node outputs global_seed. Off: it outputs seed.
    • global_seed - INT, the shared value.
    • seed - INT, the local override.
    • Output seed - an INT, wired to any sampler's seed input (right-click → Convert to input if it's a widget).

    The three inputs map cleanly onto a real workflow: global_seed can come from the pack's context bus (the FromDuckComfyGlobals output), so one value propagates everywhere; seed is the local fiddle knob.

    Why reach for it

    If you've ever spent ten minutes editing a workflow to swap one sampler's seed out of the global chain, this is the node that makes it a checkbox. It also keeps your seed logic visible in the graph instead of scattered across sampler widgets, and it gives a single point where "reproduce this exact run" is decided. On the flip side, it's a thin convenience - a pair of primitive ints and a boolean switch can do the same thing, just less readably.

    Install

    Part of duckcomfy personal nodes. ComfyUI Manager → search "duckcomfy personal nodes", or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/duckcomfy/duckcomfy_personal_nodes
    

    Restart ComfyUI. Zero pip dependencies, no downloads - the pack is a personal grab-bag, mostly copied from other suites to minimize dependency surface, so installing it for one small node is low-cost.

    Gotchas

    The seed range matters: valid seeds go up to 2^64-1, and ComfyUI treats 0 as a perfectly valid seed, not "unset." So if you're using the local seed input and it's 0, that's not the node being broken - you genuinely generated with seed 0. Also note the node only decides which number goes out; it does not randomize on its own. If you want a fresh seed each run, that's still the control_after_generate dropdown on the sampler (and the "widget control mode: Before" setting is worth setting once), not this node.

    Categoryduckcomfy

    Inputs (3)

    NameTypeDefaultDescription
    use_global_seedBOOLEANtrue
    global_seedINT00–18446744073709550000
    seedINT00–18446744073709550000

    Outputs (1)

    NameTypeDescription
    seedINT