Nodes/ComfyLab Pack/List: Random Seeds (lab)
ComfyUI Node

List: Random Seeds (lab)

A batch of random seeds that stays put while you work

By bugltd·Created 2 years ago·Updated about a year ago· 11
List: Random Seeds (lab)
    • list
    • count
    count1

    List: Random Seeds (lab) makes a LIST of count random seeds, and the sneaky-useful part is in the fine print: the list is regenerated only when you click the button, restart the backend, or refresh the browser page. Not on every run. That behavior is the whole reason to use it.

    Without that, you'd just wire a random seed into each generation and get a new one every iteration - fine for a one-off, useless for batch work. With a stable list, you get a set of seeds you can run against several prompts, several checkpoints, several CFG values, and every image stays comparable because the seeds didn't shuffle under you. The "change one variable at a time with a fixed seed" debugging discipline from the community - the single most repeated piece of advice in diffusion - needs exactly this: a fixed set of seeds you control.

    How it works

    Give it a count (default 1, minimum 1) and it generates that many 64-bit integers via random.randrange(0, 2**64 - 1) - the same range KSampler seeds live in. They're genuinely random, not sequential, which sidesteps the correlated-noise weirdness you sometimes get from seed, seed+1, seed+2 runs.

    The list is held by the node, not recomputed per execution. Click the node's button (or reload the page / restart the backend) and you get a fresh set. That's the flow: click to roll a new batch, then run a queue that reuses those seeds across everything you're comparing.

    Inputs and outputs

    • count - how many seeds you want. Bump it to match the number of rows or columns in your grid.

    Outputs:

    • list - the seed values (LIST).
    • count - how many there are (INT).

    Wire list into a queue's input and you're done. ComfyLab's queue nodes output untyped (Any) values, so the seed list flows into whatever input takes a seed.

    Where it fits

    The classic move is seed farming - the KB's own guidance: evaluate at low step counts (DPM++ 2M or UniPC at 10–15 steps) to find good compositions, then lock in. ListRandomSeeds gives you the "batch of candidates" half of that. Pair it with List: Checkpoints (lab) on the other dimension of XY Plot: Queue (lab) and you can compare seeds and models in one sweep, with every combination reproduced exactly when you rerun.

    Install

    ComfyLab Pack installs as one package (all nodes display with "(lab)" - that's how you'll spot them). ComfyUI Manager: search ComfyLab Pack, install, restart.

    cd ComfyUI/custom_nodes
    git clone https://github.com/bugltd/ComfyLab-Pack.git
    cd ComfyLab-Pack
    pip install -r requirements.txt
    

    Restart ComfyUI after. No models, no heavy downloads - requirements are jsonschema, pyyaml, opencv-python and a few small friends.

    Gotchas

    • Refresh resets your seeds. Forgot the list regenerates on page refresh? Your carefully selected "batch 3 of the experiment" is gone. If you need reproducibility across sessions, this node is the wrong tool - that's what a fixed list (e.g. List: from Multiline) is for.
    • Nothing is ever re-rolled mid-queue, which is what you want, but it surprises people who assumed "random" meant "different every run."

    Think of it as a dice cup that only rattles when you shake it. That's a feature, not a bug.

    CategoryComfyLab/list

    Inputs (1)

    NameTypeDefaultDescription
    countINT1number of random seeds

    Outputs (2)

    NameTypeDescription
    listLISTlist of random seeds
    countINTnumber of values