XWAVE Cellular Noise
Cellular noise that actually looks like cells, not static
- image
- IMAGE
Most "add noise" nodes give you uniform static - same grain everywhere, and it reads as a cheap Instagram filter. XWAVE Cellular Noise is the opposite: it lays down a structured pattern of circular noise cells and blends them into your image with a gradient, so you get an organic, almost biological texture instead of a flat snowstorm. It's the newest node in the pack, and honestly the most interesting one.
What it's for
It's an overlay/texture node. Feed it any image, pick how big the cells should be and how much noise lives at each cell's center versus its edge, and out comes the image with that cellular texture burned in via one of eleven blend modes. If you've ever wanted a Voronoi-ish, iridescent, "living skin" look on a portrait or a poster, this is the node. It also does double duty as a weird-but-cheap way to add filmic texture that isn't uniform - set noise_type to gaussian or grayscale, keep opacity low, and you've got organic grain with zero banding.
How it works
The backend covers the image in a grid (or staggered hex packing) of circles. For each cell it generates noise - raw RGB random, grayscale, palette, or gaussian - then blends only that region using a distance-based profile: center_noise controls the noise amount at the cell center, edge_noise at the rim, and gradient_type (linear or radial) shapes the falloff between them. Cells past the radius fade out instead of cutting off, which is what kills the hard "stamp" look. reverse_gradient flips the profile so cells are noisy at the center instead of the edges.
The palette_path input is the hidden gem: point it at a plain text file of R G B triplets (one per line) and the cells will be filled from that palette instead of random colors.
The inputs that matter
circle_size(8–128) - cell diameter. Small = fine texture, large = chunky organic plates.layout-gridorhex. Hex packs tighter and gives that honeycomb vibe.noise_type-rgb,grayscale,palette,gaussian.blend_mode- eleven options;overlayis the default and usually the right call.differenceis where the weirdness lives.center_noise/edge_noise(0–1) - the cell interior-to-rim noise ratio. This pair is the soul of the node.opacity(0–1) - blend strength. Start at 0.3–0.5, don't max it.antialias- accepted but currently does nothing in the shipped code. Ignore it.
Output is a single IMAGE, wired straight into a Preview or Save node.
Installing it
It ships in the ComfyUI XWAVE Nodes pack. In ComfyUI Manager, search "XWAVE" and install ComfyUI XWAVE Nodes, then restart. Or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/XWAVEart/comfyui-xwave-xlitch-nodes
cd comfyui-xwave-xlitch-nodes
pip install -r requirements.txt
Dependencies are just Pillow, numpy and scipy - no model downloads, no API keys, pure CPU. You need nothing else from this pack to use it.
Common issues
- Palette files silently fail. If the path is wrong or the file is empty, the node logs a warning and falls back to RGB noise. There's no error dialog - check your console.
- Small
circle_sizeon a big image is slow. It's a per-cell numpy loop, so tiny cells over a 4K canvas can take a few seconds. Fine for one frame; don't put it before a video batch withcircle_size8. - Everything gets covered at full opacity. With
overlayandopacity1.0 the texture dominates. Dial opacity back - this is a layer, not a paint bucket.
One last thing: this pack is brand new and has essentially zero community footprint yet, so the normal "check the issues tab" advice is thin on the ground. If something misbehaves, the author's GitHub issues page is the only real channel. For a node this early, judge it with your own eyes - but this one earns a look.
Inputs (12)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| circle_size | INT | 328–128 | — |
| layout | COMBO | grid | 2 options: grid, hex |
| noise_type | COMBO | rgb | 4 options: rgb, grayscale, palette, gaussian |
| blend_mode | COMBO | overlay | 11 options: overlay, add, multiply, screen, soft_light, hard_light, +5 |
| center_noise | FLOAT | 0.00–1 | — |
| edge_noise | FLOAT | 1.00–1 | — |
| gradient_type | COMBO | linear | 2 options: linear, radial |
| reverse_gradient | BOOLEAN | false | — |
| opacity | FLOAT | 1.000–1 | — |
| antialias | BOOLEAN | false | — |
| palette_pathopt | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |