ComfyUI Node

KSamplerSameNoise

KSampler Same Noise – ComfyUI Node Guide

By Shadetail·Created 2 years ago·Updated about a year ago· 6
KSamplerSameNoise
  • model
  • positive
  • negative
  • latent_image
  • LATENT
seed0
steps20
cfg8.0
sampler_name
scheduler
denoise1.00

What it is

Here's something that surprises a lot of people the first time they hit it: set batch size to 4 with a fixed seed, and you get four different images, not four copies of the same one. ComfyUI derives a distinct noise pattern per image in the batch even under a fixed seed - normally exactly what you want, since it's how you get variety without re-rolling the seed. But if you're processing video frames as a batch and trying to keep them temporally stable, that per-frame noise variation is the enemy - it's a big part of why frame-by-frame AI processing tends to flicker. KSampler Same Noise is a drop-in KSampler replacement that tries to force identical noise across every image in the batch, specifically to fight that.

Worth saying up front, in the same spirit as the author's own README: this one gets you most of the way there and no further. There's apparently a deeper layer in ComfyUI that still introduces small per-batch noise differences even when you ask it not to, and the author eventually gave up on this node for their own production use - they ended up running three parallel ComfyUI instances instead, to get genuinely identical noise across frames. They shipped the node anyway because a 90%-there solution is still useful for plenty of cases. Go in with that expectation and you won't be disappointed; go in expecting perfect frame-to-frame stability and you will be.

How it works

Same execution path as a standard KSampler - model, conditioning, and a latent go in, a denoised latent comes out - except the noise tensor generation is patched to try to reuse the same pattern across every index in the batch instead of deriving a fresh one per index. Everything else about how sampling actually proceeds (steps, CFG, sampler algorithm, scheduler, denoise strength) works exactly like the KSampler you already know.

Inputs that matter

This is the full standard KSampler surface, nothing added or removed:

  • model, positive, negative, latent_image – the usual conditioning chain.
  • seed (INT, default 0), steps (INT, default 20), cfg (FLOAT, default 8), denoise (FLOAT, default 1) – your usual dials.
  • sampler_name and scheduler – the full stock sampler and scheduler lists. This node doesn't change how you should pick these: take your checkpoint's recommended pair off the model card. DDPM-style checkpoints (SD 1.5, SDXL and its finetunes) still want the old Karras-family defaults; flow-matching checkpoints (Flux, Z-Image, and similar) want Euler-family samplers on a conservative schedule like beta or simple, and Karras/exponential are a real failure mode on those, not just a worse choice.

Output

One LATENT - same as a normal KSampler, ready for VAE decode.

Installing it

Comes bundled with the pack:

cd ComfyUI/custom_nodes
git clone https://github.com/Shadetail/ComfyUI_Eagleshadow

Or search "Eagleshadow Custom Nodes" in ComfyUI Manager. No model downloads, no special dependencies - it's a sampling-logic patch, not a new model.

Common issues

Don't expect zero flicker. As above, this is a 90%-there fix by the author's own account, not a guarantee. If your use case genuinely needs bulletproof frame-to-frame consistency, budget time to test how far this actually gets you before committing a whole pipeline to it.

It's a substitute node, not an add-on. Since it replaces the standard KSampler entirely rather than wrapping it, swap it in and out cleanly - don't expect to toggle "same noise" on an existing KSampler node without rewiring to this one.

If this doesn't get you far enough, you're not out of options. Other node packs approach the same batch-noise problem - ComfyUI-Inspire-Pack's KSampler variant, for instance, ships a similar toggle for forcing consistent noise across a batch, and it's worth trying if this one doesn't hold up for your workflow.

Temporal consistency is a deep problem, not a one-node problem. Noise matching alone won't fully solve flicker across a real video pipeline - it's one lever among several (motion modules, dedicated video-native models, and so on), and the broader field is still actively working on it. Treat this node as one tool in that fight, not the whole fix.

Categorysampling

Inputs (10)

NameTypeDefaultDescription
modelMODEL
seedINT00–18446744073709550000
stepsINT201–10000
cfgFLOAT8.00–100
sampler_nameCOMBO34 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +28
schedulerCOMBO9 options: normal, karras, exponential, sgm_uniform, simple, ddim_uniform, +3
positiveCONDITIONING
negativeCONDITIONING
latent_imageLATENT
denoiseFLOAT1.000–1

Outputs (1)

NameTypeDescription
LATENTLATENT