Nodes/Undulating Glitch/Undulating Glitch Field (4-Way)
ComfyUI Node

Undulating Glitch Field (4-Way)

Pull the glitch field out as a real mask so you can wreck it on purpose

By jsterlingvids·Created 2 months ago·Updated 2 months ago· 0
Undulating Glitch Field (4-Way)
  • reference
  • source_field
  • field_preview
  • transition_edges
mode
cycle_frames96
transition_fraction0.78
angle0
wave_count1.5
wave_amplitude0.10
wave_speed1.0
noise_amount0.055
noise_scale2.0
noise_speed1.0
block_size48
block_jitter0.055
tear_height20
tear_amount0.035
glitch_speed6.00
edge_softness10.0
band_count1
seed42
wave_overlap0.08

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 a MASK. Wire it into Four-Way Field Composite's source_field input, 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.

Categoryimage/video/undulating glitch

Inputs (20)

NameTypeDefaultDescription
referenceIMAGE
modeCOMBO3 options: sequential_wipe, liquid_wipe, four_way_bands
cycle_framesINT964–10000
transition_fractionFLOAT0.780.01–1
angleFLOAT0-180–180
wave_countFLOAT1.50–20
wave_amplitudeFLOAT0.100–0.75
wave_speedFLOAT1.0-12–12
noise_amountFLOAT0.0550–0.75
noise_scaleFLOAT2.00.1–20
noise_speedFLOAT1.0-10–10
block_sizeINT481–1024
block_jitterFLOAT0.0550–0.75
tear_heightINT201–512
tear_amountFLOAT0.0350–0.75
glitch_speedFLOAT6.000–30
edge_softnessFLOAT10.00–256
band_countINT11–16
seedINT420–18446744073709550000
wave_overlapFLOAT0.080–0.5

Outputs (3)

NameTypeDescription
source_fieldMASK
field_previewIMAGE
transition_edgesMASK