Nodes/ComfyUI-QuasimondoNodes/Image Noise Generator
ComfyUI Node

Image Noise Generator

Scramble an image's pixels but keep its exact colors

By Quasimondo·Created 2 years ago·Updated about a year ago· 15
Image Noise Generator
  • image
  • image
seed0
black_mix0
brightness1.00
same_seed_for_batchfalse

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. So black_mix: 1 kills half the pixels, 2 takes 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.

Categoryimage/generators

Inputs (5)

NameTypeDefaultDescription
imageIMAGE
seedINT00–9007199254740991
black_mixINT00–20
brightnessFLOAT1.000–2
same_seed_for_batchBOOLEANfalse

Outputs (1)

NameTypeDescription
imageIMAGE