Add Latent Noise (Seeded)
Yes, It's the Same as Latent Noise — Here's Why
- latent
- mask
- LATENT
Let's get the awkward part out of the way: this node and the pack's Latent Noise do the same job. Both add seeded Gaussian noise to a latent, both scale strength relative to the latent's standard deviation, both take an optional mask. The only real difference is which menu they live under and which of the pack's two source repos they came from - Skoogeer-Noise was assembled by merging code from ttulttul's older ComfyUI-FlowMatching-Upscaler and ComfyUI-QwenRectifiedFlowInverter projects, and "Add Latent Noise (Seeded)" is the QwenRectifiedFlowInverter lineage while LatentNoise is the FlowMatching-Upscaler one. If you're new to the pack, pick one and ignore the other.
So why write about it at all? Because if you search for "add noise to latent" in ComfyUI, you'll land here, and the answer you need is: yes, this is the right tool, the seedable noise-in-latent-space tool you're picturing.
How it works
Mechanically it's the same recipe as the sibling node: draw Gaussian noise shaped like the latent, scale it by the per-sample standard deviation times strength, add it. A strength of 1.0 adds noise with the same std as the latent itself, so the setting behaves identically across different latents and resolutions. Seeds are masked to valid 64-bit range, and batch items get deterministic per-index offsets. The mask input, when supplied, is resized to latent resolution (bicubic when downscaling) and confines the noise to masked regions.
The inputs that matter
latent- the latent dict to perturb.seed- reproducibility. Same seed, same noise, guaranteed.strength- relative to the latent's std.0.1–0.3is gentle;1.0is heavy.mask(optional) - localize the effect.
Output is a LATENT you can feed anywhere a latent goes.
Installing it
Part of Skoogeer-Noise. Manager → search "Skoogeer-Noise", or:
cd ComfyUI/custom_nodes
git clone https://github.com/ttulttul/Skoogeer-Noise
Restart ComfyUI. Dependencies (torch, numpy>=1.26, einops, pyyaml>=6.0.3) are ComfyUI-standard; no model files to fetch.
Common gotchas
First, don't install a second pack to get this - you already have it, under the other name. Second, if you're on Flux.2, remember its latents are patchified (128 channels, 2x2 blocks), and noise that operates on spatial neighborhoods will create block artifacts. Wrap with Unpatchify Flux.2 Latent before and Patchify Flux.2 Latent after. Third, strength is relative to the input's std, which means the same value on a higher-variance latent adds more absolute noise. That's intended - it keeps the knob meaningful - but it surprises people the first time.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| latent | LATENT | Latent to receive additional Gaussian noise. | |
| seed | INT | 00–18446744073709550000 | Seed for generating repeatable noise. |
| strength | FLOAT | 1.000–10 | Strength of the noise. 1.0 adds noise with the same standard deviation as the latent. |
| maskopt | MASK | Optional mask (often image-sized) to limit the noise addition to masked areas. The mask is resized to latent resolution (bicubic when downscaling). |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| LATENT | LATENT | — |