Latent Machine
Pick the noise your image starts from, not just the seed
- LATENT
- IMAGE
Noise isn't just noise
Every image you've ever generated in ComfyUI started as a block of random noise, and the sampler spent its steps turning it into an image. Latent Machine is the node that lets you decide what that noise looks like instead of accepting the default white Gaussian kind. For most prompts the default is fine. For a handful of jobs, the noise texture is the difference between "close" and "correct".
The science is real, and the community has quietly converged on it. Pink and brown noise (1/f and 1/f² power spectra) feel photographic because natural scenes genuinely have a 1/f spectrum - that's why they're the favorites for photorealism, portraits and nature. Blue noise pushes energy into high frequencies, which makes textures pop and helps low-step distilled models that otherwise come out over-smooth. Perlin and plasma give the smooth organic gradients people reach for with fantasy landscapes and abstracts.
How it works
The node generates a noise tensor in latent space - the compressed, 8x-downsampled space the sampler actually works in - shaped to the spectrum you asked for. The machinery is honest FFT: generate white noise, transform to the frequency domain, scale each frequency by the power-law exponent you want, transform back. Gaussian leaves the spectrum flat; Pink scales by 1/f; Brown by 1/f²; Blue boosts high frequencies instead. Perlin is a fast approximation - a few octaves of downsampled-then-bicubic-upsampled noise blended with a 1/f amplitude falloff - which looks right and runs cheaply on the GPU.
It also disarms the channel-count trap for you. SD 1.5 and SDXL latents have 4 channels; FLUX, SD3, Qwen-Image, Z-Image and most video models have 16. Pick the family in the model dropdown and it provisions the right depth automatically - get this wrong in a hand-built node and you'll hand the sampler a tensor shape it either chokes on or silently ignores.
The inputs that matter
- model - picks both the latent depth (4 vs 16 channels) and the resolution presets. Set this first.
- noise_type - the six options: Gaussian (sharp architecture/text), Pink (photorealism), Brown (anime/digital art), Blue (detail, low-step models), Perlin (fantasy landscapes), Plasma (sci-fi/abstract).
- intensity - a multiplier on the noise; default 1.0 is a sane start. It controls how much the structured noise dominates.
- high_contrast - adds a +0.1 mean offset across the whole latent. That's classic offset noise: it shifts the starting distribution so the model can reach pure blacks and blown-out whites - pitch-black nights, snowstorms - instead of the slightly-milky look you get when it can't. It's a real technique, not pack marketing; "offset noise" has been an ongoing topic in the community for years.
The resolution and dimension dropdowns follow the same model-aware preset logic as the pack's Resolution Machine; pick a preset or "Custom" and set width/height. Outputs are LATENT (wire that to your sampler) and IMAGE - a normalized preview of the first three noise channels so you can actually see what you generated. That preview is handy for debugging, and genuinely useful when you're building a mask from the noise itself.
Install & the honest caveat
Standard pack install - ComfyUI Manager search "SATA UtilityNode", or git clone https://github.com/SatadalAI/SATA_UtilityNode into custom_nodes/ and restart. No models to download; the noise is all synthesized.
The honest caveat: for ordinary prompts, white Gaussian noise is fine and structured noise is a niche weapon, not a daily driver. Where it earns its keep is photorealism (pink/brown), low-step distilled models (blue), and the high-contrast offset trick for true black/white scenes. And because the seed input feeds both torch.manual_seed and random.seed, the same settings and seed reproduce the same noise every run - so the experiment loop is cheap: reseed, switch type, compare.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| model | COMBO | SD 1.5 Family | 11 options: SD 1.5 Family, SDXL Family (Pony, Juggernaut), FLUX Family (FLUX.1, FLUX.2), SD3 Family (SD3, SD3.5), Z-Image Family, Hunyuan-DiT, +5 |
| dimension | COMBO | 3 options: Square, Portrait, Landscape | |
| resolution | COMBO | 63 options: Balanced Landscape (19:13) 1216x832, Balanced Landscape (9:7) 1440x1120, Balanced Landscape (9:7) 1728x1344, Balanced Portrait (13:19) 832x1216, Balanced Portrait (7:9) 1120x1440, Balanced Portrait (7:9) 1344x1728, +57 | |
| width | INT | 51264–8192 | — |
| height | INT | 51264–8192 | — |
| batch_size | INT | 11–64 | — |
| noise_type | COMBO | 6 options: Gaussian (White): Sharp Architecture, Text, intricate mechanics, Pink (1/f): Photorealism, Portraits, Nature, Brown (1/f²): Anime, Digital Art, Bokeh/Backgrounds, Blue (High-Frequency): High-Detail, Textures, low-step/distilled models, Perlin : Fantasy landscapes, Fluids, Hair/Fabric, Plasma : Sci-Fi, Abstract, Alien terrain | |
| intensity | FLOAT | 1.00–10 | — |
| seed | INT | 00–18446744073709550000 | — |
| high_contrast | BOOLEAN | false | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| LATENT | LATENT | — |
| IMAGE | IMAGE | — |