Image Noise Generator
Scramble an image's pixels but keep its exact colors
- image
- image
Most noise generators give you white noise with a flat histogram. Image Noise Generator gives you something sneakier: it takes your image and shuffles its pixels into a random scramble. The colors are the same, the histogram is identical - only the arrangement is destroyed. That's a weirdly useful trick, because a scrambled version of an image preserves its palette and average color while turning it into pure "texture chaos" - handy as a noise seed, a start frame, or the input to a flow or distortion node.
It's the third member of this pack's little noise family (alongside Random Image Generator and Perlin Noise Generator), and it's the only one that starts from an existing image rather than a blank canvas.
How it works
Mechanically it's dead simple: flatten each image's pixels, shuffle them with a seeded np.random.permutation, then reshape back to the original dimensions. Then two extra knobs mess with the result:
black_mix- each iteration picks a random half of the pixels and zeroes them out. Soblack_mix: 1kills half the pixels,2takes the remaining half and kills half of that, and so on - an exponential decay toward black. The remaining colors get sparser and sparser.brightness- a final multiplier on everything (default 1).
The seed makes it reproducible, and same_seed_for_batch forces every image in a batch to get the same permutation (as opposed to each frame getting its own shuffle), which matters when you want frames to stay correlated - e.g., as the basis for temporal effects.
The inputs that matter
image- what gets scrambled.seed- reproducibility. The code masks the seed to 32 bits (seed & 0xFFFFFFFF), so very large seeds collapse to a 32-bit space, but for normal values you're fine.black_mix- 0–20, default 0. Zero means "no blacking out," just the pure shuffle. Crank it for progressively emptier, black-speckled noise.brightness- 0–2, default 1. A quick way to dim or boost the scramble.same_seed_for_batch- on = every batch frame shares the permutation; off = each frame independently shuffled.
One output: image, same resolution and palette as the input.
Install
From the Quasimondo pack. ComfyUI Manager → search ComfyUI-QuasimondoNodes, or:
cd ComfyUI/custom_nodes
git clone https://github.com/Quasimondo/ComfyUI-QuasimondoNodes
cd ComfyUI-QuasimondoNodes
pip install -r requirements.txt
Pure torch/numpy - no models, no OpenCV needed for this node.
Where people get burned
The classic mistake is expecting noise with a normal distribution or a specific brightness profile. This is a permutation of existing pixels - the distribution is exactly your input's. If your image is mostly dark, the "noise" is mostly dark. If you wanted Gaussian static, use Random Image Generator with Gaussian Noise instead; if you wanted smooth organic noise, that's Perlin Noise Generator. They're three different tools in one pack, and it's easy to land on the wrong one.
Also, black_mix compounds fast. At 20 you've essentially got a black image with a handful of survivor pixels. Start at 0 (pure shuffle) and add one at a time - the effect is dramatic within the first couple of steps.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| seed | INT | 00–9007199254740991 | — |
| black_mix | INT | 00–20 | — |
| brightness | FLOAT | 1.000–2 | — |
| same_seed_for_batch | BOOLEAN | false | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |