Nodes/BV Node Pack/πŸŒ€ BV Seed
ComfyUI Node

πŸŒ€ BV Seed

A seed node that remembers what it last ran, minus the randomize roulette

By BlackVortexAIΒ·Created 9 months agoΒ·Updated 3 days agoΒ· 7
πŸŒ€ BV Seed
    • seed
    β—„seed_bv-1β–Ί

    The built-in seed control has a workflow-killing habit: hit queue and it silently rolls a new seed unless you remember to lock it, and when it does lock you're stuck with one number until you manually type another. BV Seed is the pack's answer - a fixed, repeatable seed source with a randomize-each-queue mode and, the part people actually miss, a memory of the last seed it generated.

    It's a deliberately boring node, and that's the compliment. Like rgthree's seed handling, it exists to make reproducibility not-an-argument while you're iterating. You pick your number, it stays your number, and the queue's other nodes all read the same value.

    How it works

    One input, seed_bv (default -1), one output, seed (INT). The trick is what -1 means: it's a sentinel for randomize each queue run. Leave it at -1 and every execution gets a fresh random seed, but unlike the core widget, the node remembers that resolved value and reports it back in its UI output - so when you get an image you like, you can read off the actual seed that produced it and pin it, instead of re-rolling the dice and losing the number. Set it to any non-negative value and it's fully fixed.

    That "what did it actually use" feedback is the whole point. In the standard ComfyUI flow, if you randomize you often can't recover the seed from the graph after the fact without digging through PNG metadata. This surfaces it in the node's UI output as last_seed.

    Because the input widget deliberately never rewrites itself - -1 stays -1 - you don't get the core node's "the value changed under me" surprise mid-workflow. The control_after_generate behavior is disabled; the sentinel is persistent, which is exactly the behavior you want in a batch or Subgraph context.

    Where it fits

    Use it anywhere a seed input is needed: KSampler, BV Empty Latent Random Ratio, latent rotate, or your own nodes. It's marked Subgraph-safe, which means you can project the control onto a Subgraph interface and the resolved seed still travels correctly. If you want per-branch reproducibility in a multi-sampler workflow, give each branch its own BV Seed rather than sharing one - same seed to two samplers is deliberate, but you should be the one deciding that.

    Install

    Search BV Node Pack in ComfyUI Manager, or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/BlackVortexAI/bv_nodepack.git
    

    Restart, hard-refresh with Ctrl + F5. No dependencies beyond ComfyUI core.

    Troubleshooting

    Two things trip people up. First: if you set a fixed seed and images still vary, check whether some downstream node is generating its own randomness - the seed only pins what actually receives it. Second: -1 genuinely means "new seed every queue." People occasionally read the -1 in the saved workflow and think the workflow is broken; it isn't, that's the randomize flag doing its job. If you're sharing a workflow, pin a real number first so your recipient gets the same image as you.

    CategoryπŸŒ€ BV Node Pack/utils

    Inputs (1)

    NameTypeDefaultDescription
    seed_bvINT-1-1–18446744073709550000β€”

    Outputs (1)

    NameTypeDescription
    seedINTβ€”