Nodes/ComfyUI Essentials/πŸ”§ Inject Latent Noise
ComfyUI Node Runs on cloud

πŸ”§ Inject Latent Noise

Inject Latent Noise β€” add controlled grit to a latent before sampling

By cubiqΒ·Created 3 years agoΒ·Updated about a year agoΒ· 1,152
πŸ”§ Inject Latent Noise
  • latent
  • mask
  • LATENT
β—„noise_seed0β–Ί
β—„noise_strength1.00β–Ί
β—„normalizefalseβ–Ί

This one's for when you want to reintroduce randomness into a latent that's already been through something - an encode, an upscale, a partial sample - without starting over from pure noise. Instead of "generate from scratch," it's "take what I've got and rough it up a controlled amount." Handy for detail passes, breaking up over-smooth latents, and dialing variation into a hires or img2img step.

What it does

It adds noise to a LATENT and gives you the noisier LATENT back. The knobs:

  • noise_seed - the seed for the noise it generates. Change it, get a different noise pattern; keep it, get a reproducible one.
  • noise_strength - how much noise to mix in. Default is 1. The range runs from βˆ’20 to 20, but you'll live in the low end; small values (think fractions up to a couple) add texture, big values overwhelm the existing latent. The negative range is unusual - it lets you subtract the noise pattern rather than add it, which is a niche move.
  • normalize - false or true. When true, it normalizes the result after injection so the latent's overall statistics stay in a sane range instead of drifting brighter or noisier as you stack strength. If you're pushing strength up and getting blown-out results, try flipping this on.

There's also an optional mask input, and this is the genuinely useful part: feed a MASK and the noise only lands inside the masked region. That turns Inject Latent Noise into a targeted tool - add grit and detail to just the hair, just the fabric, just the background, and leave the rest of the latent untouched.

Why bother - where it fits

Latents go flat. After a VAE round-trip or an aggressive upscale, the latent can get smooth in a way that reads as plasticky or waxy in the final image. A small noise injection before a low-denoise sampler pass gives the model something to grab onto, and it renders back as fine detail rather than smear. It's a close cousin of raising denoise on an img2img step, but more surgical - you control the amount and, with the mask, the where.

The other use is variation. Inject a bit of fresh noise with a new seed between passes and you nudge the result off its rails just enough to explore, without throwing away the composition you already like.

Installing it

Part of ComfyUI Essentials by cubiq - Matteo Spinelli, who also wrote the community-standard ComfyUI_IPAdapter_plus:

  • ComfyUI Manager: search "ComfyUI Essentials" β†’ Install β†’ restart.
  • Manual: cd ComfyUI/custom_nodes && git clone https://github.com/cubiq/ComfyUI_essentials, install requirements.txt, restart.

Look for the πŸ”§ wrench and the + class name (InjectLatentNoise+).

Gotchas

Strength is deceptive because it's operating in latent space, not pixel space. A "small" number here can do a lot once the VAE decodes it, so start low - well under 1 for subtle detail - and climb. If your image goes from clean to fried, you overshot; back off and consider turning normalize on.

Order of operations matters: this adds noise to the latent, it doesn't sample. You still need a KSampler (or similar) after it, and usually at a low-ish denoise, so the model can turn that noise into detail rather than a whole new image.

Pack note: cubiq set Essentials to maintenance-only in April 2025. Nodes still work fine broadly, but if this one errors right after a big ComfyUI update, roll ComfyUI back or patch it yourself - nothing's coming from upstream. A red "missing node" box means the pack didn't load; check the startup log and reinstall via Manager.

Categoryessentials/sampling

Inputs (5)

NameTypeDefaultDescription
latentLATENTβ€”
noise_seedINT00–18446744073709550000β€”
noise_strengthFLOAT1.00-20–20β€”
normalizeCOMBOfalse2 options: false, true
maskoptMASKβ€”

Outputs (1)

NameTypeDescription
LATENTLATENTβ€”