Seed
Wire the same seed to every sampler and stop chasing mismatches
- seed
This node does one thing: it holds a seed and hands that number to anything you connect. That sounds like the most boring node in the pack, and it is - right up until a two-sampler workflow gives you a face that matches and a background that doesn't, and you realize both samplers rolled their own random seed.
The problem it solves is the one every big ComfyUI workflow eventually hits. Your KSampler has a seed field baked into the widget. When you run a second pass - a hires-fix step, a regional sampler, a face detailer - that sampler has its own widget with its own randomize toggle. If you leave them separate, "same seed, same image" quietly becomes "same seed, different image," and you'll burn an evening trying to figure out which pass drifted. The fix is ComfyUI's "convert widget to input" mechanic: right-click the seed widget on each sampler, convert it to an input socket, and wire all of them to one Seed node. Now the seed is defined exactly once, in one visible place.
SimpleSyrup.Seed is that shared source. It takes the native ComfyUI seed widget - full 0 to 2^64 range, plus the little control_after_generate dropdown - and emits an INT from its seed output. Nothing is generated, nothing is transformed. It's pure plumbing, which is exactly what you want from a seed node.
If you've been bitten by the seed-widget trap, the relevant knob is control_after_generate: fixed, increment, decrement, or randomize. The gotcha that injures every beginner once: the control fires after the run, so the number sitting in the box after a generation is the one that will be used next, not the one that made the image you're looking at. Find a great image on a random seed, flip to fixed, and you've already overwritten the good one. Set the global "widget control mode" to Before and the box always shows the seed that actually ran. This node inherits all of that behavior because it uses ComfyUI's native seed widget rather than reimplementing one.
The only input that matters is seed. Set a value to lock your workflow, or set control_after_generate to randomize and let the widget roll a new one every run - you can still pull the seed out of the output PNG's embedded workflow metadata if you ever need to reproduce a run.
Install: it ships in the SimpleSyrup pack. Easiest path is ComfyUI Manager - open the Node Pack list, search SimpleSyrup, install, restart. Manually:
cd ComfyUI/custom_nodes
git clone https://github.com/Artificial-Sweetener/SimpleSyrup
cd SimpleSyrup
pip install -r requirements.txt
then restart ComfyUI. SimpleSyrup targets ComfyUI's v3 extension API, so keep ComfyUI reasonably current or the nodes won't appear. It's a one-widget node with no dependencies beyond the pack itself, so troubleshooting basically doesn't exist - if the output is a blank wire, you forgot to convert the downstream seed widget to an input.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| seed | INT | 00–18446744073709550000 | Seed value to reuse across nodes. Matching seed and settings make random choices repeatable. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| seed | INT | Same seed value for wiring into multiple nodes. |