Nodes/ComfyUI Essentials/πŸ”§ KSampler Variations with Noise Injection
ComfyUI Node Runs on cloud

πŸ”§ KSampler Variations with Noise Injection

KSampler Variations with Noise Injection (ComfyUI Essentials)

By cubiqΒ·Created 3 years agoΒ·Updated about a year agoΒ· 1,152
πŸ”§ KSampler Variations with Noise Injection
  • model
  • latent_image
  • main_seed
  • positive
  • negative
  • variation_seed
  • LATENT
β—„steps20β–Ί
β—„cfg8.0β–Ί
β—„sampler_nameβ–Ύβ–Ί
β—„schedulerβ–Ύβ–Ί
β—„variation_strength0.17β–Ί
β—„denoise1.00β–Ί

You found a generation you almost love and you want near-misses of it - same composition, small tweaks - not a completely different image from a new seed. That's exactly what this node is for. It's a KSampler that injects a controlled second dose of noise so you can dial how far each result drifts from your base image, from barely-there variation to a meaningful reroll.

Why you'd reach for it

Normal seed-hopping is all-or-nothing: change the seed and you get an unrelated image. Noise injection gives you the in-between. Keep the main seed fixed, add a pinch of a second noise, and you get a family of images that share the base's structure but vary in the details - great for exploring around a good result, and a known trick for breaking Flux out of its "same face" rut (the community's Fluxmaxxing fixes explicitly include "use noise injection"). It's the sampler you reach for when you want variety with a leash on it.

How it works

There are two seeds. main_seed produces the base image the way any sampler would. variation_seed generates a second noise pattern that gets mixed in at variation_strength - a 0-to-1 dial for how much that second noise perturbs the result. Low strength (the default is 0.17) nudges details while keeping the composition; crank it up and you drift further from the base until, near 1.0, you've essentially rerolled. So you hold main_seed steady and sweep variation_seed / variation_strength to explore the neighborhood of a generation.

Inputs and outputs that matter

It's a full KSampler, so the familiar controls are here: model, positive / negative conditioning, latent_image, steps, cfg, sampler_name, scheduler, and denoise. The three that make this node special are main_seed (your base), variation_seed (the injected noise's seed), and variation_strength (how hard it's mixed in). The single output is LATENT - decode it as usual. The workflow is: lock main_seed on an image you like, then iterate variation_seed at a low strength.

Installing it

Part of ComfyUI Essentials by cubiq (Matteo Spinelli, the IPAdapter node author). Via ComfyUI Manager: search ComfyUI Essentials, install, restart. Manual:

cd ComfyUI/custom_nodes
git clone https://github.com/cubiq/ComfyUI_essentials

then restart. It's πŸ”§ KSampler Variations with Noise Injection under essentials/sampling, class KSamplerVariationsWithNoise+. Maintenance-only pack as of April 2025.

Common issues

The main thing to internalize: variation_strength is sensitive. The 0.17 default is deliberately low because a little injected noise goes a long way - push it to 0.5+ and you've thrown away the resemblance you were trying to keep. If your "variations" look unrelated, turn strength down, not up. Also mind your cfg and sampler choice for the model you're on - the default cfg 8 is an SD 1.5/SDXL number and is wrong for guidance-distilled models like Flux or Z-Image Turbo, which want cfg ~1. Fix the base sampler settings first; the variation knobs only shape what a correctly-configured sampler produces.

Categoryessentials/sampling

Inputs (12)

NameTypeDefaultDescription
modelMODELβ€”
latent_imageLATENTβ€”
main_seedINT:seed00–18446744073709550000β€”
stepsINT201–10000β€”
cfgFLOAT8.00–100β€”
sampler_nameCOMBO44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38
schedulerCOMBO9 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +3
positiveCONDITIONINGβ€”
negativeCONDITIONINGβ€”
variation_strengthFLOAT0.170–1β€”
variation_seedINT:seed123450–18446744073709550000β€”
denoiseFLOAT1.000–1β€”

Outputs (1)

NameTypeDescription
LATENTLATENTβ€”