Seed Value (Umbra Lab)
The seed node that understands batches and repeats, so you don't have to
- seed
- seed_list
Seeds are the most lied-about number in ComfyUI, and Seed Value (Umbra Lab) is the node that finally treats them like the first-class workflow input they are. It's a seed source with an actual brain: fixed or random per run, and - the part that separates it from a plain integer - per-batch and per-repeat progression that the KSampler can actually use.
What makes it more than a number-in-a-box
The base mechanic is the same "one source, many consumers" pattern as CFG Value or Steps Value: a single seed feeds every sampler, so one change re-randomizes the whole graph in lockstep. But where the plain value nodes stop, this one keeps going. It outputs two things:
- seed - a single
INT, for the ordinary sampler input. - seed_list - an
INTlist, for nodes (like the Umbra KSamplers) that accept a list and use a different seed per image in a batch.
The clever part is how the list is built. In single batch mode every image gets the same seed. Switch batch_mode to increment_per_item and image n gets seed + n×batch_count... well, seed + n×step. random_per_item rolls a fresh SystemRandom seed for every item, which is what you want when you're deliberately letting each image in the batch diverge. The repeat_behavior controls what happens across repeated queue runs: increment_per_repeat (the default) advances a per-node counter each time the workflow runs, random_per_repeat rolls a new base, and none locks it. There's also same_seed_style_cycle - a mode tied to Umbra's Power Prompter prompt-card system where style-expanded jobs reuse the same base seed instead of advancing the counter, so variations stay on a stable seed.
The inputs that matter
The full schema is bigger than it looks, but a beginner genuinely sets maybe three things:
- seed - the base value.
- mode -
fixedorrandomize. Randomize rolls a new seed every run; fixed keeps yours until you change it. - batch_mode -
single,increment_per_item, orrandom_per_item. This is where the batch behavior lives.
Leave repeat_behavior and repeat_step alone until you understand what the Umbra KSampler's own repeat_behavior is doing - the two nodes cooperate (the sampler detects an UmbraSeedValue upstream and lets it own repeat progression), so double-configuring them is the most common way people get seeds advancing twice as fast as intended.
Installing it
Ships in Umbra-Nodes, the ComfyUI companion pack for Umbra Studio (NocturneLabs' open-source local AI suite). ComfyUI Manager → search "Umbra Nodes", or:
cd ComfyUI/custom_nodes
git clone https://github.com/Nocturne-Ai-Labs/Umbra-Nodes
Restart ComfyUI. No pip deps, no models.
Gotchas
The one trap is the same control_after_generate injury the whole ecosystem shares (covered in the KB plumbing docs): a seed node that randomizes after the run means the number on screen isn't the one that made the image you're looking at. This node's randomize mode rolls before sampling, which is the behavior you want - but if you wire this into a KSampler that also has its own control_after_generate set to increment, you've built a race. Pick one owner for the seed. When a batch comes back with every image identical or every image different and you didn't intend either, batch_mode is the first thing to check.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| seed | INT | 00–18446744073709550000 | — |
| mode | COMBO | fixed | 2 options: fixed, randomize |
| batch_modeopt | COMBO | single | 3 options: single, increment_per_item, random_per_item |
| batch_countopt | INT | 11–9007199254740991 | — |
| repeat_behavioropt | COMBO | increment_per_repeat | 3 options: increment_per_repeat, random_per_repeat, none |
| repeat_stepopt | INT | 11–18446744073709550000 | — |
| style_seed_behavioropt | COMBO | normal | 2 options: normal, same_seed_style_cycle |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| seed | INT | — |
| seed_list | INT | — |