Time Seed (JPS)
A seed node that defaults to random and locks on demand
- seed
One input, fixed_seed (0 to 99999999999, default 0), one output, seed. The behavior is exactly what the name promises: leave fixed_seed at 0 and the node derives a fresh seed from the current timestamp plus a random component every time it runs, so you get genuine variation without touching anything. Set fixed_seed to any nonzero value and that exact number passes straight through as seed instead - locked, reproducible, no timestamp math involved.
Why bother with this instead of a KSampler's own seed widget
ComfyUI's built-in seed control (fixed / increment / decrement / randomize) works fine for a single sampler sitting right next to its own seed widget. It gets less convenient the moment you want one seed value feeding several places in a larger graph, or you want the "am I locked or am I randomizing" decision to live somewhere more visible than a small dropdown buried in a KSampler node. This node makes that decision explicit and singular: one number, fixed_seed, and the rule is dead simple - zero means random, anything else means exactly that value, every run, until you change it back.
The one thing worth knowing about the range
The max, 99999999999 (11 nines), is comfortably above the seed ranges most samplers actually use internally, so you won't run into an upper-bound problem setting a specific locked value. If you're pasting in a seed from a generated image's metadata to reproduce it exactly, that value will fit.
Reproducing a specific generation
Because the zero-means-random behavior is baked into the node rather than a UI toggle, reproducing an exact past result is a two-step habit: run once with fixed_seed at 0, note whatever seed came out of it (visible on the node or in the saved image's metadata, depending on your setup), then paste that number back into fixed_seed for the next run. From that point on every run is identical until you either change a different parameter or reset fixed_seed back to 0 to start randomizing again. It's a simple two-state model - random or locked - and the simplicity is the actual feature; there's no separate increment/decrement mode to accidentally leave engaged.
Installing it
ComfyUI Manager: search JPS Custom Nodes for ComfyUI. By hand:
cd ComfyUI/custom_nodes
git clone https://github.com/JPS-GER/ComfyUI_JPS-Nodes.git
Restart ComfyUI, and delete a previous install of the pack first if one's already there. No models, no dependencies - pure logic.
Where people get tripped up
If you're trying to lock a seed and generations keep changing anyway, double-check fixed_seed is actually nonzero - leaving it at the default 0 is the one state where this node deliberately gives you a new value every run, which is easy to forget if you were expecting 0 itself to mean "seed zero." The other common miss: adding this node doesn't do anything on its own until you actually convert your KSampler's seed widget to an input and wire this node's seed output into it - leave it as a plain widget and the KSampler just keeps using its own value (and its own control_after_generate setting) regardless of what this node produces.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| fixed_seed | INT | 00–99999999999 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| seed | INT | — |