Image Filter Live (Purz)
A mini-Photoshop that lives in your graph
- image
- mask
- image
This is the node that makes ComfyUI-Purz worth installing. Image Filter Live (Purz) - the PurzInteractiveFilter class - is a real-time, layer-based image editor built right into a ComfyUI node: 120+ filter effects across eight categories, stacked in layers with per-layer opacity, drag-and-drop reordering, an A/B split preview, undo/redo, and a WebGL preview that updates as you move sliders. It's like having a miniature Photoshop docked in your workflow, and it's the pack's flagship by a wide margin.
It comes from PurzBeats (a Comfy Org staffer), and it shows - this is the kind of frontend engineering most custom nodes don't bother with.
How it works
The preview runs in your browser via WebGL shaders, so dragging a "Clarity" slider updates the preview instantly without re-queueing the workflow. When you actually run the graph, the backend applies the same stack of effects to your image and hands the result out as an IMAGE - non-destructive, because the node itself is unchanged. The stack is stored in the node's widget state, so your filter stack travels with the saved workflow.
The headline features: a layer system where you stack effects with individual opacity and drag to reorder; 40+ built-in presets (Film, Portrait, Cinematic, Vintage, Noir, and more) plus custom presets saved as JSON; a fuzzy-searchable effect picker with favorites and recently used; undo/redo; an A/B split preview with a draggable divider; and an optional mask input for selective filtering.
The video batch support is the sleeper feature: feed it a sequence of frames (say, from a VHS loader) and it processes the whole batch through the same WebGL stack, with playback controls for scrubbing your preview. That turns a stills filter into a video grade.
The inputs that matter
- image - the
IMAGEto filter. Required, and it accepts a batch (video sequences included). - mask - optional
MASK. When provided, effects are blended per-pixel through the mask, so you can grade only the sky, only the face, only one half of the frame.
Output is image, an IMAGE - the filtered result, ready for the next node in your pipeline. It's also an output node, so it can save/preview its own result.
Installing it
ComfyUI Manager - search ComfyUI-Purz - or:
cd ComfyUI/custom_nodes/
git clone https://github.com/purzbeats/ComfyUI-Purz.git
cd ComfyUI-Purz
pip install -r requirements.txt
Restart ComfyUI. Requirements are OpenCV, Pillow, torch, numpy - the heavy lifting here is in the browser, so the server-side footprint is light. No models to download.
Where people get burned
Back up the presets/ folder before updating or uninstalling. Custom presets are stored as JSON inside ComfyUI/custom_nodes/ComfyUI-Purz/presets/, and an update or uninstall can wipe them - the README says so explicitly. If you've built a look you love, copy that folder out before you touch the pack. Also remember the workflow doesn't re-run while you're tweaking: the preview is live, but the actual IMAGE output only updates when you queue, so "why didn't my output change?" is almost always "I didn't run it." And for very large batches, the chunked upload means processing a long video takes a while - that's expected, not a hang.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| maskopt | MASK | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |