BMAB Seed Generator
One seed, wired to everything that needs it
- seed
This is the smallest, plainest node in the whole pack: one integer in, one typed SEED out. Its entire job is giving you a single, controllable seed value you can feed into any BMAB node with a seed_in slot - BMAB's Integrator and Flux Integrator nodes both take one - instead of typing (or randomizing) a seed separately in each place it's needed.
Why it exists instead of just typing a number
BMAB structures most of its pipeline around a bind that gets threaded through Integrator → samplers → detailers, and part of the point of that design is that you set things once, upstream, rather than repeating them at every node. Seed is exactly that kind of value: you generally want one seed governing your whole run (so your detail passes and hires-fix pass are reproducible alongside your base generation, not each rolling their own randomness). A dedicated seed node also gives ComfyUI's control-after-generate widget (fixed/increment/decrement/randomize) somewhere sensible to live, separate from whichever sampler node you happen to be looking at.
The input and output
There's exactly one field: seed, an integer from 0 up to roughly 1.8 x 10^19 (the standard 64-bit unsigned range ComfyUI uses for seeds), default 0. The output is a single value typed SEED - not a plain INT - which is what makes it slot into BMAB's seed_in ports specifically. If you've got a generic integer from somewhere else in your graph, it likely won't connect directly to a seed_in input without going through a node like this one that emits the right type.
Installing it
ComfyUI Manager: search comfyui_bmab, install, restart. Manually:
cd ComfyUI/custom_nodes
git clone https://github.com/portu-sim/comfyui_bmab.git
cd comfyui_bmab
pip install -r requirements.txt
Plus the two packs the README calls for alongside comfyui_bmab regardless of which node you're using - comfyui_controlnet_aux and ComfyUI_IPAdapter_plus - cloned and pip-installed the same way. Neither is relevant to this specific node, but BMAB as a whole expects both present.
Where this actually matters in practice
The value of this node only shows up once your graph has more than one BMAB node that wants a seed. On a simple pipeline it's genuinely optional - BMAB's Integrator nodes can presumably take a seed some other way if you don't wire one in. But the moment you're chasing reproducibility across a longer pipeline (base generation, then a hires-fix pass, then a couple of detailer nodes), having one Seed Generator feeding everything means "lock this exact result" and "change everything at once" are both a single click on one widget, rather than hunting down every seed field scattered across your graph.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| seed | INT | 00–18446744073709550000 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| seed | SEED | — |