List: Random Seeds (lab)
A batch of random seeds that stays put while you work
- list
- count
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.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| count | INT | 1 | number of random seeds |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| list | LIST | list of random seeds |
| count | INT | number of values |