Interference | GlitchNodes
Pixel sorting with a Bayer attitude
- image
- image
Interference is the pack's shader-like experiment: it sorts rows and columns of pixels by brightness over many passes, producing that streaky, wave-like interference pattern you see in corrupted video and - as the node's own description notes - Bayer-matrix-inspired visuals. Where other glitch nodes displace or corrupt, this one reorders. That's a subtly different feeling in the output: nothing is added, nothing is removed, the same pixels just end up somewhere else, which is why the results stay readable even when they're thoroughly scrambled.
The mechanism is iterative sorting with a twist. Each pass sorts a row (or column) of pixels by luminance and then shifts it by shift_amount (negative shifts left/up, positive right/down, range -10 to 10). Because sorting is applied repeatedly - horizontal_iterations and vertical_iterations control how many passes each way - the image progressively collapses into those characteristic horizontal/vertical streaks. The Bayer influence shows in the parity of the sort: the sort direction alternates by row/column index, which creates the checkerboard-ish texture rather than a uniform smear.
The inputs that matter
- horizontal_iterations (0–50, default 10) and vertical_iterations (0–50, default 4) - the main knobs. More passes = more aggressive scrambling. The defaults are a good balance; bump vertical to 20+ for a full melt.
- shift_amount (-10 to 10, default -1) - how far each sorted strip shifts. Even the default -1 gives motion; larger magnitudes add directional tearing.
- color_shift (0–1, default 0.5) and color_mode (
monochrome,rainbow,duotone,invert) - what happens to color after sorting.rainbowmaps luminance to hue and is the show-off mode;monochromegives that stark black-and-white interference classic. - preserve_brightness (default on) - keeps the original brightness levels while the color effects apply. Leave it on for output that doesn't wash out.
Output is image (IMAGE) → PreviewImage/SaveImage. No seed input on this one - the result is fully deterministic given the same parameters, which is convenient (or boring, depending on how you feel about chaos).
Installing it
Standard GlitchNodes install:
cd ComfyUI/custom_nodes
git clone https://github.com/pxl-pshr/GlitchNodes
# restart ComfyUI
or ComfyUI Manager → Install Custom Nodes → search "GlitchNodes". Dependencies: numpy, torch, Pillow, opencv-python, scipy. No models to download.
Gotchas
The trap with Interference is overdoing the iterations: at defaults it looks intentional, but past ~30 total passes on a detailed photo, you get a gray smear where the streaks used to be. If that happens, pull color_mode to monochrome and drop color_shift - the contrast often comes back. And note it's pure CPU NumPy sorting, so large batches get slow fast; test on a single frame first. Like the rest of the pack, it's "highly experimental and may break or even error," but in practice this one is one of the more stable nodes - deterministic, no random state, no file I/O.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| horizontal_iterations | INT | 100–50 | — |
| vertical_iterations | INT | 40–50 | — |
| shift_amount | INT | -1-10–10 | — |
| color_shift | FLOAT | 0.50–1 | — |
| color_mode | COMBO | 4 options: monochrome, rainbow, duotone, invert | |
| preserve_brightness | BOOLEAN | true | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |