VHSonAcid | GlitchNodes
VHS tracking errors on a psychedelic bender
- images
- image
VHSonAcid does exactly what the name promises: VHS-style horizontal slice displacement - the classic "tracking is off, whole bands of the picture are sliding sideways" artifact - with RGB channel separation cranked up like the tape is on acid. It's the node to reach for when you want a colorful glitch: the chromatic-aberration ghosting reads as "broken VCR at a rave" rather than grim file corruption.
The mechanism is simple and satisfying. It divides the image into horizontal slices of slice_size pixels, and each slice independently has a glitch_probability chance of being displaced horizontally by up to offset_range pixels. Then, on top of that, color_shift splits the RGB channels and rolls each one horizontally by a random amount - which produces that red/cyan edge ghosting where channels no longer align. Because every slice and shift is seeded, the same seed replays the exact same tears, which is huge when you find a displacement pattern you want to keep across a sequence.
The inputs that matter
- slice_size (1–100, default 20) - height of each glitch band. Small slices = fine, busy tearing; large = thick chunky bands.
- offset_range (1–200, default 50) - max horizontal displacement. 200 with a wide image is a lot; keep it modest unless you want full chaos.
- glitch_probability (0–1, default 0.3) - chance each slice gets hit. This is the density knob: 0.1 is occasional tears, 0.8 is a fully shredded frame.
- color_shift (0–1, default 0.5) - RGB channel separation strength. The "acid" in the name.
- seed - required, and worth locking once you find a look.
Input is images (IMAGE), output is image (IMAGE) → PreviewImage/SaveImage. Batch support is built in, so this is a solid pick for frame sequences - each frame gets its own seeded tears.
Installing it
Part of the GlitchNodes pack:
cd ComfyUI/custom_nodes
git clone https://github.com/pxl-pshr/GlitchNodes
# restart ComfyUI
or ComfyUI Manager → Install Custom Nodes → search "GlitchNodes". Deps: numpy, torch, Pillow, opencv-python, scipy. No model downloads.
Gotchas
VHSonAcid is one of the more forgiving nodes in the pack, but there are two practical notes. First, offset_range and slice_size interact: big slices with big offsets look like the tape broke, while small slices with small offsets look like subtle tracking wobble - decide which you're after first. Second, high color_shift (0.8+) on a face turns it into a red/cyan hallucination, which is great for album art and terrible for legibility. If you want readable-with-texture, keep color_shift around 0.3–0.5. And the standing pack warning applies: "highly experimental and may break or even error."
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | — | |
| seed | INT | 00–18446744073709550000 | — |
| slice_size | INT | 201–100 | — |
| offset_range | INT | 501–200 | — |
| color_shift | FLOAT | 0.50–1 | — |
| glitch_probability | FLOAT | 0.30–1 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |