GSL Filter v1
Seven image effects, zero model downloads
- images
- IMAGE
GSL Filter v1 is the "seven effects in one" node of the DJZ pack: grayscale, edge detection, Gaussian blur, pixelate, wave distortion, and chromatic aberration, all running as GLSL shaders through ModernGL on your GPU. No models, no weights, no downloads - it's the image-processing equivalent of Photoshop's filter menu, wrapped for a ComfyUI graph. If you've ever wanted to pixelate a face before it hits the sampler, or blur a region without swapping in a whole post-processing pipeline, this is a one-node answer.
The inputs that matter
- effect_preset - the dropdown:
custom(a passthrough),grayscale,edge_detection,gaussian_blur,pixelate,wave_distortion,chromatic_aberration. Pick one. - intensity (0–5, default 1) - global strength for whichever effect. For grayscale it blends between original and gray; for the others it scales the output.
- The effect-specific knobs: blur_radius (Gaussian spread), edge_threshold (how strong an edge must be to show - higher = fewer, bolder lines), pixelate_factor (block size, 1–64), wave_amplitude and wave_frequency (the sine distortion), chromatic_shift (RGB channel separation, 0–0.1).
Input images (a batch, all processed together), output IMAGE. Deterministic, no seed.
How it works
Each effect is a small GLSL shader run on a texture, so the heavy lifting happens on the GPU - which makes it fast even on long batches. There's a real practical wrinkle, though: it needs a working OpenGL context at runtime. On a normal desktop ComfyUI install that's fine, but on a headless Linux box, a VM, or a remote server with no display, ModernGL can fail to get a context and the node won't work (or won't import). If the node is missing after install or errors with an OpenGL-related message, that's the cause, not a dependency problem - the pack's requirements do list moderngl, so make sure that's actually installed too.
Where it fits
The honestly useful members of this filter list are pixelate and chromatic aberration. Pixelate is great for a quick "anonymize a face before I feed it to a VLM" step, and chromatic aberration at a small shift is the fastest way to fake a lens character on a flat render. Wave distortion is a decent background glitch. Grayscale/blur/edge you can get anywhere - they're here mostly because a shader passes them at no cost.
One thing to remember: this is a pixel post-process, not a diffusion node. It doesn't add detail, and it's not the same class of thing as a model-based upscaler or a generative filter. It's the cheap, fast, no-download polish layer. When you need "a quick filter," that's exactly what it's for - and there's nothing else in the pack that does GPU-shader filtering, so it fills a real niche.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | — | |
| effect_preset | COMBO | 7 options: custom, grayscale, edge_detection, gaussian_blur, pixelate, wave_distortion, +1 | |
| intensity | FLOAT | 1.00–5 | — |
| blur_radius | FLOAT | 2.00.1–10 | — |
| edge_threshold | FLOAT | 0.100–1 | — |
| pixelate_factor | INT | 41–64 | — |
| wave_amplitude | FLOAT | 0.100–1 | — |
| wave_frequency | FLOAT | 5.00.1–50 | — |
| chromatic_shift | FLOAT | 0.0100–0.1 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |