BlehForceSeedSampler
Fix unreproducible generations on classic sampler chains
- sampler
- SAMPLER
This is the same fix as BlehDisableNoise, just shaped for a different part of the graph. If your workflow wires a SAMPLER node into something like a KSampler (Advanced) chain rather than SamplerCustomAdvanced's dedicated NOISE input, and your seed doesn't seem to actually control anything, this node - not the other one - is what you want.
The underlying issue is a real ComfyUI bug, described plainly in the README: when add_noise is turned off, ComfyUI does not set any global RNG seed at all for samplers like euler_a. Not ignored - never set. So regardless of what seed number you type, you get a different image every run. SDE-family samplers were never affected by this, because they draw randomness through a different mechanism that doesn't depend on that global seed step.
BlehForceSeedSampler wraps a SAMPLER directly and guarantees a seed gets set before sampling starts, working around the gap. The distinction from BlehDisableNoise is purely about graph shape: use BlehDisableNoise if your graph exposes a NOISE-type input (the SamplerCustomAdvanced style); use this one if you're just plugging a SAMPLER into something more traditional. Same bug, same fix, different plug shape.
Inputs: sampler (required - the SAMPLER being wrapped). seed_offset (optional, default 1, range 0-200) - same purpose as on its sibling node: it nudges the RNG forward this many extra steps so the noise actually used for sampling isn't identical to whatever noise the initial generation step already produced. The author recommends leaving it at 1 or higher; 0 is there as an explicit, deliberate opt-out if you have a specific reason to want that overlap.
Output is a SAMPLER - a drop-in replacement for whatever you were already feeding into your sampler chain.
It's worth being clear about why add_noise: false is even a setting people reach for, rather than treating it as an obscure edge case. It comes up whenever you want to hand the sampler a latent that already carries the noise you want - a partial img2img-style latent, or noise built by something other than the sampler's own default generation - instead of letting it add fresh noise on top of what you supply. That's a legitimate, fairly common thing to want. The bug is a side effect of how ComfyUI wires seeding to that same flag, not a reason to avoid the setting itself.
Install is the standard route for the pack: ComfyUI Manager, or a manual git clone https://github.com/blepping/ComfyUI-bleh into custom_nodes followed by a restart. No extra dependencies.
If you're unsure which of the two seed-fix nodes your graph actually needs, look at what type of input you're wiring into: a NOISE slot means BlehDisableNoise, a plain SAMPLER slot means this one. And as with its sibling, the underlying cause here is a documented ComfyUI behavior, not a sign your workflow is broken elsewhere - if seed changes appear to do nothing on a graph with add_noise disabled, this is the fix, not a symptom to keep digging around for.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| sampler | SAMPLER | — | |
| seed_offsetopt | INT | 10–200 | Advances the RNG this many times to avoid the mistake of using the same noise for sampling as the initial noise. I recommend leaving this at 1 (or higher) but you can set it to 0. to disable |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| SAMPLER | SAMPLER | — |