🔧 S42 CutFlow Filter Pack
Sharpen, Denoise, and Blur Without Cluttering Your Graph
- clip
- clip
- frame_count
- info
ComfyUI graphs get ugly fast. Seven separate filter nodes for the operations you use on half your projects is seven nodes worth of spaghetti. S42CF_FilterPack collapses the common ones into a single node with a mode dropdown - seven operations, one node, one input wire. It's the S42 CutFlow node you'll reach for more than any of the flashier ones.
The modes, and when each is the right call
sharpen- the basic edge boost. Counteracts the softness VAE-decoded AI video is famous for.unsharp_mask- the smarter version. It blurs a copy, subtracts it to isolate high-frequency detail, and adds that detail back scaled by intensity. This is what "sharpen" actually is under the hood, and you get the two knobs that matter:radius(what counts as "detail") andintensity(how hard it goes back). Crank intensity too hard and you get halos around edges - the giveaway of over-sharpening.gaussian_blur/box_blur- softening. Gaussian smears everything, edges included; box blur is the cruder, faster cousin. Use these to build a bloom pass or to defocus a background.motion_blur- blur with a direction, from theangleinput (0 = horizontal, 90 = vertical). Gen footage that looks too static and sterile? A subtle directional blur at the right angle sells camera movement.median_denoise- noise removal that's strong but can soften detail. Good for cleaning up speckle.bilateral_denoise- the one worth knowing. It smooths flat regions while preserving edges, which is exactly what you want when cleaning up LTX or Wan output without turning the subject to mush. Reaching for gaussian where you needed bilateral is how you lose the edges you were trying to keep.
There's a genuine difference between sharpen and unsharp_mask beyond naming, and between the two denoise modes. The tooltips on mode walk you through each choice, and radius must be an odd number (kernel radius) - the default 3 is a fine starting point for most footage.
Using it
One IMAGE batch in (clip), clip + frame_count + info out. intensity means something different per mode - the tooltip spells out each one, so hover before you assume 1.0 is "normal." Typical chain: load video → FilterPack in unsharp_mask (fix VAE softness) → grade → export.
One honest take: this node's value is convenience, not magic. Any single operation here you could replicate with a dedicated node pack (WAS Node Suite, Image Processing, etc.), but those are scattered across packs and some are unmaintained. FilterPack keeps the graph clean, and since it's part of the S42 CutFlow install, it's one less dependency to manage.
Install
ComfyUI Manager → search "S42 CutFlow" → Install → restart. Manual route:
cd ComfyUI/custom_nodes/
git clone https://github.com/GeekyGhost/S42-CutFlow.git
pip install -r S42-CutFlow/requirements.txt
Restart ComfyUI completely and look for the S42 CutFlow category; the console prints [S42 CutFlow] Loaded 53 total nodes. FilterPack is CPU-only - torch/numpy/OpenCV under the hood, no models, no VRAM. The pack's only mandatory dependency is OpenCV (opencv-python-headless in the shipped requirements.txt; the README's troubleshooting says pip install opencv-python if you hit "No module named 'cv2'").
Also worth knowing: the pack is a declared work-in-progress by Geeky Ghost, being groomed for LTX Desktop. Core filters are stable; just don't treat the expanded experimental nodes as frozen.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| clip | IMAGE | Video clip to filter. | |
| mode | COMBO | sharpen | Filter type: 'sharpen' = enhance edges and detail. 'unsharp_mask' = professional sharpening with radius/amount control. 'gaussian_blur' = smooth Gaussian blur. 'box_blur' = fast uniform blur. 'motion_blur' = directional blur simulating camera motion. 'median_denoise' = noise removal preserving edges. 'bilateral_denoise' = edge-preserving smoothing (best quality, slower). |
| intensity | FLOAT | 1.00–10 | Filter strength. Meaning varies by mode: sharpen/unsharp: amount multiplier. blur modes: kernel radius in pixels. denoise modes: filter diameter/strength. |
| radius | INT | 31–31 | Kernel radius (must be odd). Larger = stronger effect but slower. Used by blur, denoise, unsharp. |
| angle | FLOAT | 00–360 | Direction angle in degrees for motion_blur mode. 0=horizontal, 90=vertical. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| clip | IMAGE | — |
| frame_count | INT | — |
| info | STRING | — |