Undulating Glitch Field (4-Way)
Pull the glitch field out as a real mask so you can wreck it on purpose
- reference
- source_field
- field_preview
- transition_edges
The Four-Way Undulating Glitch Mixer does two jobs in one node: it generates the travelling glitch field and composites four videos against it. Undulating Glitch Field (4-Way) is the same effect engine split off into its own node, but instead of mixing your clips it hands you the field itself - as a MASK. If you ever wanted to inspect the wave, blur it, distort it, drive it with something else, or just reuse the same field across several comps, this is the node you reach for.
The mechanism is identical to the mixer's: a per-frame 0–1 field says which source owns each pixel, built from a travelling wave, domain-warped in liquid mode, plus noise, nearest-neighbour block jitter, and tear stripes. The only thing that changes is the output. It takes a single reference image, which it uses purely for dimensions and frame count - nothing about its content is read.
Inputs
You get every effect control the mixer has, minus the compositing ones. That's mode (sequential_wipe / liquid_wipe / four_way_bands), cycle_frames, transition_fraction, angle, the wave_* set, the noise_* set, block_size, block_jitter, tear_height, tear_amount, glitch_speed, edge_softness, band_count, seed, and wave_overlap.
There's no frame_alignment or blend_curve here - those are compositing concerns and live downstream in Four-Way Field Composite. And there's no images_a…d; the field is resolution-agnostic, so you can generate it once and apply it to any batch that matches the frame count.
Outputs
source_field- the field as aMASK. Wire it intoFour-Way Field Composite'ssource_fieldinput, or into anything else in ComfyUI that takes a mask.field_preview- a coloured visualisation (four source colours, blended) so you can see the wave without decoding the mask.transition_edges- a mask of the active blend boundaries, e.g. if you want to grade or denoise only the moving edge.
Why you'd bother
The mixer is the fastest route, full stop. This node exists for when fast isn't good enough. Editing the field is the obvious case - blur source_field to soften the wave, feather it, hand-paint over it, or replace it entirely with a mask from somewhere else, then feed the result into the composite node. You can also use transition_edges as a travelling matte for unrelated post-processing, which is the sort of move the mixer hides from you because it never exposes its internals.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/jsterlingvids/ComfyUI-UndulatingGlitch.git
Restart ComfyUI and search for "Undulating Glitch" (image/video/undulating glitch category). No models, no extra packages - just bundled PyTorch. The pack isn't on the Registry yet, so git clone (or install-by-URL in Manager) beats searching by title.
Gotchas
The field is seeded and deterministic, so the same seed gives you the same wave - handy when you're iterating on the composite. But remember the field frames must line up with your video batch: if your clips are longer than the reference you generated against, the composite node's frame_alignment will trim, loop, or stretch the field to fit, which changes the timing of the loop. And as with everything in this pack, it's a 0.8.0 prototype - the effect is tested, but a quick render with your own footage before a long encode is cheap insurance.
Inputs (20)
| Name | Type | Default | Description |
|---|---|---|---|
| reference | IMAGE | — | |
| mode | COMBO | 3 options: sequential_wipe, liquid_wipe, four_way_bands | |
| cycle_frames | INT | 964–10000 | — |
| transition_fraction | FLOAT | 0.780.01–1 | — |
| angle | FLOAT | 0-180–180 | — |
| wave_count | FLOAT | 1.50–20 | — |
| wave_amplitude | FLOAT | 0.100–0.75 | — |
| wave_speed | FLOAT | 1.0-12–12 | — |
| noise_amount | FLOAT | 0.0550–0.75 | — |
| noise_scale | FLOAT | 2.00.1–20 | — |
| noise_speed | FLOAT | 1.0-10–10 | — |
| block_size | INT | 481–1024 | — |
| block_jitter | FLOAT | 0.0550–0.75 | — |
| tear_height | INT | 201–512 | — |
| tear_amount | FLOAT | 0.0350–0.75 | — |
| glitch_speed | FLOAT | 6.000–30 | — |
| edge_softness | FLOAT | 10.00–256 | — |
| band_count | INT | 11–16 | — |
| seed | INT | 420–18446744073709550000 | — |
| wave_overlap | FLOAT | 0.080–0.5 | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| source_field | MASK | — |
| field_preview | IMAGE | — |
| transition_edges | MASK | — |