Glitch
The full VHS-teleport glitch kit
- image
- mask
- image
- mask
- glitch_info
Every glitch effect worth the name is actually a pile of smaller effects - sliced bands shifted sideways, RGB channels split, scanlines wobbling, a bit of noise and ghosting on top. x1Glitch bundles the whole pile into one node under MKRShift Nodes/VFX/Play, and it's refreshingly complete: you get the sliders for every ingredient instead of one "glitch amount" knob that only knows how to make a mess.
It's part of MKRShift Nodes by Cris K B, and it's the pack's "play" node - the one you reach for when the brief says broken, corrupted, or signal loss.
How it works
The core is the sliced-band displacement. The image is cut into horizontal strips - slice_count (default 28) of them - and each strip is shifted sideways by up to max_shift pixels (default 80), in the direction (default both) set by the random pattern. That's the "ripped across" look. On top:
channel_split(default 0.35) separates the RGB channels and offsets them, the chromatic-aberration-on-steroids that sells "bad signal."scanline_jitter(default 0.25) makes the slice positions wobble frame to frame, the flickering edge of a failing decode.grain(default 0.08) adds video noise;ghosting(default 0.16) layers a faint offset copy for that smeared-afterimage corruption.luma_gate(default 0) ties the glitch to brightness - at 0 the glitch hits everything; raise it and only the brighter areas glitch, which is how you get "the glitch follows the highlight" rather than the whole frame.
seed (default 1337) drives the whole random layout, and mix blends it against the original.
The inputs that matter
Inside the settings_json:
slice_count/max_shift- the number of broken bands and how far they tear.direction- the tear direction (bothis the default and most chaotic).channel_split- RGB separation.scanline_jitter/grain/ghosting- the signal-degradation layer.seed- the glitch pattern; re-roll to get a different breakage.
Optional mask input with mask_feather / invert_mask, plus outputs image, mask, and a glitch_info string.
Installing it
cd ComfyUI/custom_nodes
git clone https://github.com/criskb/MKRShift_Nodes
Restart ComfyUI, or install via ComfyUI Manager (search MKRShift_Nodes). No requirements.txt, no models, no keys.
The take
This is the "make it look like a corrupted signal" node done right, and for video it's the temporal wobble of scanline_jitter that sells it - a static glitch is just a collage. Where people go wrong: everything at defaults is a lot of glitch. For a believable "transmission dropout" you want the ingredients uneven - lots of slices but modest max_shift, or a strong channel_split with the others near zero. Pick two or three weapons, not all of them. And luma_gate is your friend if the glitch should haunt only the bright parts of the frame.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| settings_json | STRING | {"slice_count":28,"max_shift":80,"direction":"both","channel_split":0.35,"scanline_jitter":0.25,"grain":0.08,"ghosting":0.16,"luma_gate":0.0,"mix":1.0,"seed":1337,"mask_feather":12.0,"invert_mask":false} | — |
| maskopt | MASK | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| mask | MASK | — |
| glitch_info | STRING | — |