Fast Image to Noise
A noise generator that builds its palette from your own pixels, on the GPU
- images
- mask
- image
Picture static on a TV - but the static's colors come entirely from a photo you fed in. That's this node: it reads an image, picks a handful of its pixels as a palette, then repaints the whole image by randomly reassigning each pixel one of those colors. Out comes a noisy, textured field that's unmistakably your image's palette and nothing else.
The author built it as a GPU re-implementation of the WAS Node Suite's Image to Noise node, and the "fast" in the name is doing work: the whole thing runs as tensor ops on the GPU instead of grinding through pixels in Python. It's genuinely the tool for one job - seeding an inpaint region with colors that match its surroundings so the generated content doesn't stick out like a sore thumb.
Why you'd use it
Inpainting has a classic failure mode: you regenerate a chair, and it comes back with colors that belong to a different lighting setup than the room it sits in. The fix that's been floating around the community forever is to feed the sampler noise that already looks like the area - the model denoises from a starting point that carries the right color character. This node manufactures exactly that starting point. The README's canonical flow: use ComfyUI Segment Anything to grab a sofa's mask, feed both the image and mask here so the palette comes from the sofa, composite the noise over the chair you're fixing, then run your inpaint. The colors now match, and the sampler just fills in structure.
The inputs that matter
- num_colors (2–256, default 16) - how many distinct colors the palette holds. Low numbers give chunky, flat, posterized noise; higher numbers get finer and noisier.
- mask (optional) - restricts palette sampling to the white areas. Note the subtlety: it only changes where colors come from, not where noise lands - the output is still noise over the whole image, so you composite it onto the region you care about.
- black_mix (0–1) - the probability any given pixel turns black, for when you want dark static.
- gaussian_mix (0–1024) - blur amount. Crank it and the noise melts into a soft, textured color wash; leave at 0 for crisp static.
- brightness (0–2, default 1), seed (reproducibility), output_mode (
batchconcatenates frames into one image,listemits them separately).
Where people get burned
- This is the one node in the pack that hard-requires a CUDA GPU. The code calls
.cuda()directly, so a CPU-only ComfyUI install will fail here - unlike the pack's two normalize nodes, which are device-agnostic. - The mask doesn't limit coverage. New users expect masking to crop the noise to a region. It doesn't; you mask the composite yourself.
- Mask values matter. The palette only samples where the mask equals 1 (white), so a feathered or anti-aliased mask thins out your sample pool. A crisp white selection is what you want.
Installing it
Same tiny pack as its siblings, no dependencies beyond what ComfyUI already ships, no model files:
cd ComfyUI/custom_nodes
git clone https://github.com/ttulttul/ComfyUI-Tensor-Operations
Or ComfyUI Manager → search ComfyUI-Tensor-Operations → install, then restart ComfyUI.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | — | |
| num_colors | INT | 162–256 | — |
| black_mix | FLOAT | 0.00–1 | — |
| gaussian_mix | FLOAT | 0.00–1024 | — |
| brightness | FLOAT | 1.000–2 | — |
| output_mode | COMBO | 2 options: batch, list | |
| seed | INT | 00–18446744073709550000 | — |
| maskopt | MASK | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |