ComfyUI Node

HT Seed

A seed node with an off-switch for randomness — HT Seed

By ArtHommage·Created 2 years ago·Updated about a year ago· 4
HT Seed
    • seed
    seed0
    random_seedfalse
    force_random_seedfalse

    Every KSampler ships with its own seed widget, so why would you want a standalone seed node? Because seed control is a workflow concern, not just a per-node one. HT Seed (from the HommageTools pack) is the simplest possible answer: one input area, one seed output, and two checkboxes that control how random it gets. It exists so you can have a single, visible place where the seed for your whole graph lives - and the subtle part is that its two random options do different things.

    How it works

    Three inputs, one output:

    • seed - your base value (0 to 2⁶⁴−1).
    • random_seed - tick it and the node generates a fresh random seed instead of using the typed one.
    • force_random_seed - tick it and the node generates a new random seed on every execution.

    The node returns whatever it settled on as the seed output (an INT), which you wire into your KSampler (or a batch of KSamplers if you want them all locked to the same seed). Internally it uses Python's random module, and it logs the old and new seed to the console - which sounds trivial until you're trying to remember what seed produced the image you liked.

    The subtle bit: random_seed vs force_random_seed

    Here's where people get confused. ComfyUI caches node results, so a node whose inputs haven't changed doesn't re-run - and that means a seed node that just picks a random value would pick it once and then reuse it forever. force_random_seed works around exactly that: it tells ComfyUI the node's output changed (via IS_CHANGED), forcing a re-roll on every single execution. So:

    • random_seed = "pick a random seed, but respect caching" - effectively random once per workflow state.
    • force_random_seed = "pick a new random seed every run, no exceptions."

    If you're farming seeds by hitting Queue over and over and the image never changes, you forgot to flip force_random_seed. That checkbox is the whole reason this node isn't just a widget.

    Installing it

    HommageTools install, once:

    cd ComfyUI/custom_nodes
    git clone https://github.com/ArtHommage/HommageTools.git
    cd HommageTools
    pip install -r requirements.txt
    

    Restart, or use ComfyUI Manager → "HommageTools". No models, no extra dependencies for this one. The pack bills itself as perpetual alpha, and for a three-input seed node that's an acceptable risk - worst case you re-create the thing in two minutes.

    When to reach for it

    Honestly, you don't always need it - the KSampler widget is fine for one-off generations. Reach for HT Seed when you want one seed to drive several samplers, when you're building a workflow where the seed should be easily visible and shared, or when you specifically need per-run re-randomization for seed farming. For anything fancier - iteration sequences, text-derived seeds, subseeds - skip it and grab the sibling HT Seed Advanced instead; this one is deliberately, boringly simple.

    CategoryHommageTools

    Inputs (3)

    NameTypeDefaultDescription
    seedINT00–18446744073709550000
    random_seedBOOLEANfalse
    force_random_seedBOOLEANfalse

    Outputs (1)

    NameTypeDescription
    seedINT