FL Glitch
Proper datamosh-style corruption, not just noise
- images
- mask
- IMAGE
Proper VHS-tracking-error, datamosh-style glitch - not just noise thrown at an image. Under the hood it's built on the glitch_this Python library, which does the classic pixel-line-shifting and channel-shifting corruption, and this node runs it in both directions: it rotates the image 90 degrees and re-applies the effect, so you get glitching along both axes instead of only horizontal tearing.
The mechanism
glitch_amount is the core dial, controlling how aggressive the corruption is. color_offset layers an RGB channel-split on top - the classic red/cyan fringing you see in real analog glitch and chromatic-aberration-adjacent VHS damage. seed makes the specific glitch pattern reproducible: same seed, same corruption pattern, at a given glitch_amount.
Inputs and outputs that matter
images is the only required field - everything else has a sane default. blend_intensity (0-2, default 1) mixes the glitched result back with the original; below 1 you get a subtler effect, above 1 the node extrapolates past a pure blend for something more exaggerated. invert flips which parts of the effect apply where. mask (optional) restricts the glitch to specific regions - glitch just the background, keep a subject clean. envelope_json (default empty) looks built for driving glitch_amount over time from an external curve; this pack has a whole family of audio-reactive nodes (FL_Audio_Reactive_*) that output per-frame envelope data in this exact shape, so the obvious use is animating glitch intensity to a beat instead of applying one static amount across every frame.
Output: a single IMAGE.
Installing it
ComfyUI Manager: search Fill-Nodes, install, restart. Manually: cd ComfyUI/custom_nodes && git clone https://github.com/filliptm/ComfyUI_Fill-Nodes, then restart. This one specifically needs the glitch_this library - a real, if small, extra dependency beyond ComfyUI's own stack. If the node fails to import at startup, that's the first thing worth checking got installed alongside the rest of the pack.
Where people get burned
glitch_amount above roughly 5-6 stops reading as "stylized corruption" and starts reading as "the image is just broken" for most source material - start low and push up rather than starting at the max and dialing back, it's easier to judge that direction.
envelope_json is easy to ignore entirely (the node works fine without it, defaulting to empty) but it's the actual reason to reach for this node over a simpler static-glitch effect if you're doing video: pair it with one of this pack's audio nodes if you want the glitch to hit on a beat instead of applying uniformly across every frame.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | — | |
| envelope_jsonopt | STRING | — | |
| blend_intensityopt | FLOAT | 1.000–2 | — |
| invertopt | BOOLEAN | false | — |
| maskopt | IMAGE | — | |
| glitch_amountopt | FLOAT | 3.000.1–10 | — |
| color_offsetopt | COMBO | 2 options: Disable, Enable | |
| seedopt | INT | 00–100 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |