Noise Generator
Procedural grain and texture, the Perlin way
- image
- IMAGE
Diffusion images come out suspiciously smooth. Real photos have film grain, sensor noise, surface texture - the little imperfections that stop an image looking airbrushed. Noise Generator (class NoiseNode) is the pack's answer: it takes your image, generates procedural noise at the same resolution, and blends the two together. Perlin, simplex, or cellular - pick your flavor.
This is the organic cousin of a random-noise overlay. Instead of uniform static, Perlin and simplex noise give you smooth, curvy variation - the kind that reads as grain, canvas, skin texture, or subtle "analog" imperfection rather than digital artifacts. If your workflow ends with a detail or texture pass, feeding a touch of this into it is a classic move to break up that too-clean look.
How it works
One required input, four knobs:
image- the input. The node matches the noise to its resolution, so the output is a drop-in replacement.scale(default 0.05, up to 1) - the frequency of the noise. Lower scale makes big, chunky blobs; higher makes fine, dense detail. Start low and nudge up.noise_type-perlin(the smooth default),simplex(cheaper, similar character), orcellular(voronoi-style cells - a completely different, patchy look).blend_amount(default 0.5) - how strongly the noise mixes with the image, from 0 (nothing) to 1 (full noise).seed- keeps the noise reproducible, same as everywhere else.
The single output is IMAGE, ready to wire into anything that takes an image.
Where it fits
The obvious uses are film grain and texture. But it's also handy for adding detail back before an upscale pass, giving a too-clean image some believable structure for the upscaler to chew on. Cellular noise is the odd one out - it produces distinct cell boundaries, which reads more like a texture or a stylized effect than grain. If that's not what you're after, stick with perlin or simplex.
One fair take: this is a decent kitchen-sink noise node, but if film grain is your only need, a maintained pack like WAS Node Suite has simpler, better-documented grain options. This one earns its place when you want the procedural noise types without installing another pack.
Installing it
The node ships in ComfyUI-CoCoTools, which is deprecated and unmaintained; the original repo URL has been 404ing on GitHub since at least August 2026, and the successor repo (ComfyUI-CoCoTools_IO) doesn't carry this node. Install via ComfyUI Manager (search ComfyUI-CoCoTools) if it resolves, or clone manually:
cd ComfyUI/custom_nodes
git clone https://github.com/Conor-Collins/coco_tools
Then the pack's requirements (Windows portable, from python_embeded/):
python.exe -m pip install -r ./ComfyUI/custom_nodes/ComfyUI-CoCoTools/requirements.txt
Restart ComfyUI after installing.
Gotchas
- The default
blend_amountof 0.5 is a lot. Half noise is heavy texture, not subtle grain. For a believable film-grain look, try 0.05–0.15 and keepscalelow. - Full-resolution procedural generation gets slow on big images - a 4K render at high scale can stall the graph. Resize down or lower the scale if it drags.
- The seed matters for reproducibility across batch runs: same seed, same grain, same result.
- It's abandoned. For a long-lived pipeline, treat this as a nice-to-have, not infrastructure.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| scaleopt | FLOAT | 0.050.01–1 | — |
| seedopt | INT | 00–18446744073709550000 | — |
| blend_amountopt | FLOAT | 0.500–1 | — |
| noise_typeopt | COMBO | perlin | 3 options: perlin, simplex, cellular |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |