cxSeed
The seed node that remembers — and rescues the seed you just lost
- SEED
If you've ever stared at a great render and realized the seed that made it is already gone, cxSeed is aimed at you. It's a seed node from the comfyui-cx_sliders pack that puts ComfyUI's built-in control_after_generate on a standalone node and then adds the one button the core UI weirdly doesn't give you: Recall, which pulls back the last seed that actually ran and pins it to fixed. Consider it seed insurance.
Why use a seed node at all instead of the seed widget baked into the KSampler? The answer is the same reason anyone uses a value node: one seed, many consumers. Drag SEED out of cxSeed and you can feed it to a KSampler, a KSampler Advanced, a second sampler for the same latent, and a filename node - all from a single socket, changed in one place. The control_after_generate dropdown and the seed field sit right on the node, so nothing about the workflow depends on you remembering to convert a buried widget to an input.
How it works
Under the hood it's a thin wrapper: one seed input (INT, defaults to 0, range 0 to 18446744073709551615 - a full 64-bit seed), the standard control_after_generate dropdown (fixed / increment / decrement / randomize, set to randomize by default), and a single SEED output of type INT. The Python side barely does anything - it returns the seed and flags itself as always-changed, so downstream nodes re-execute when the value moves. The cleverness lives in the UI.
The two buttons are the real story:
- Recall - copies the last-used seed into the box and sets mode to
fixed, so the image in front of you stays reproducible. - Random - rolls a fresh seed and sets mode to
randomize.
There's also a max_digits property in the Properties panel (0 = no limit, otherwise 1–19) if you want small, memorable seeds instead of 18-digit monsters, and min/max bounds you can tighten.
The trap the Recall button exists for
control_after_generate fires after the current generation, so the number showing in the box is the seed that will run next, not the one that just produced the image. Find a keeper on a random seed, flip to fixed a beat too late, and it's already overwritten. That's the most reliable beginner injury in ComfyUI. cxSeed's Recall button is the recovery: it grabs the seed that actually ran, so you never have to dig it out of the PNG metadata again. (You can still drag the output image back onto the canvas to recover a lost workflow - the seed lives in the PNG - but Recall is nicer.)
Install
cxSeed ships with the comfyui-cx_sliders pack. One install covers all its nodes:
cd ComfyUI/custom_nodes
git clone https://github.com/VirusShell/comfyui-cx_sliders.git comfyui_cxslider
Restart ComfyUI, or use ComfyUI Manager and search cx Sliders. There's no requirements.txt and no model download - it's pure UI code, so nothing heavy to babysit. It does want a reasonably modern ComfyUI (0.3.75+) because the widgets use the newer frontend APIs.
Troubleshooting
- Seed doesn't change between runs - check the mode. If it's on
fixed, that's the whole feature, not a bug. - You lost a good seed - hit Recall, or drag the output PNG back into ComfyUI.
- Nothing re-renders when the seed changes - rare with this node since it always marks itself changed, but if downstream seems stale, re-wire the
SEEDoutput rather than relying on widget conversion elsewhere.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| seed | INT | 00–18446744073709550000 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| SEED | INT | — |