๐๐ฒ Global Seed Manager
A running log of every seed you've used
- new_seed_INT
- new_seed_STRING
- previous_seed_INT
- all_seeds_LIST
ComfyUI's built-in seed widget is stateless - it changes the number, generates, and forgets. If you ran something great four runs ago and didn't note the seed down somewhere, you're digging through image metadata to get it back. This node fixes that by keeping a running history: every seed it generates gets appended to a file on disk, so you always have a record to pull from later, not just whatever number happens to be sitting in the widget right now.
How it works
Each run, the node generates a fresh random seed and returns it, while also handing back the previous seed it generated - so you can compare consecutive runs without having to remember what came before. Every seed it's ever produced gets saved to a file you can reset with a button when you want a clean slate. If you want to pull a specific seed back out of that history later - not just the most recent one - pair this node with the pack's Select from List node, which is built specifically to pick an item out of exactly this kind of running log.
The inputs and outputs that matter
One required input: seed (0 to 4294967294, default 1) - the starting point the node works from. From there, four outputs: new_seed_INT, the freshly generated seed as a number, ready to wire straight into a KSampler; new_seed_STRING, the same value as text, useful for filenames or a Show node; previous_seed_INT, the seed from the run before this one; and all_seeds_LIST, the full running history as a string, which is what you'd feed into Select from List if you wanted to recover an older seed specifically.
Installing it
Through ComfyUI Manager: search Bjornulf_custom_nodes, install, restart. Or by hand:
cd ComfyUI/custom_nodes
git clone https://github.com/justUmen/Bjornulf_custom_nodes
Install the shared requirements.txt afterward. Pure bookkeeping logic here - no external dependency does the actual work, so it runs on the barest install of the pack.
Where people get burned
Because this writes its history to a single file rather than keeping state per-node, using more than one Global Seed Manager in the same workflow is asking for trouble - they'll both be reading and writing the same log, and the "previous seed" each one reports can end up reflecting the other node's last run rather than its own. If you need seed tracking in more than one branch of a workflow, that's a genuine limitation worth designing around rather than fighting - keep it to one instance per workflow. And remember this only tracks seeds this node generated: if you're still setting a seed manually somewhere else in the graph and expecting it to show up in the history here, it won't - the log only knows about what actually passed through it.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| seed | INT | 10โ4294967294 | โ |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| new_seed_INT | INT | โ |
| new_seed_STRING | STRING | โ |
| previous_seed_INT | INT | โ |
| all_seeds_LIST | STRING | โ |