Split 3 Bands
Separate an image into low, medium, and high frequency
- image
- Low Frequency Image
- Medium Frequency Image
- High Frequency Image
Retouchers have known this trick for decades: an image is really two images stacked on top of each other - the broad tone and lighting, and the fine detail. Split them apart and you can work on each independently. Split 3 Bands (class SplitThreeBandsNode) does exactly that in ComfyUI, cutting an image into three frequency bands instead of the usual two.
Here's the mental model. "Low frequency" is the image heavily blurred - big areas of light and shadow, the overall shape. "High frequency" is the opposite: the fine detail, the texture, the edges, the stuff that makes an image look sharp. In between sits a medium band. ComfyUI's core nodes don't give you this decomposition directly, which is why this node exists - it's the still-image version of the frequency tools the pack's README lists as experimental work in progress.
How it works
One required input, two tuning knobs:
image- the input imagelow_freq_radius(default 5) - how strongly the low band is blurredmedium_freq_radius(default 10) - the boundary for the medium band
The mechanism is classic frequency separation: the low band is a blurred copy, the high band is the original minus the medium-blurred version (the difference holds the detail), and the medium band sits between the two blur radii. Three outputs, one per band:
Low Frequency Image- tone and lightingMedium Frequency Image- the in-between structuresHigh Frequency Image- the detail
Where it fits
The high band is the star. Boost it (recombine it with the low band at a higher weight) and you've sharpened the image with real control. Discard it and you've denoised - the "remove blemishes by smoothing the detail" retouch move. You can also isolate detail for texture transfer, or keep the low band as a lighting pass for relighting experiments. If your workflow is about making images sharper or smoother with intent, this is the tool.
The fiddly part is the radii, and it's the first thing to bite you. Set low_freq_radius too small and the "low" band still has texture in it; set the gap between the radii too wide and the medium band becomes a mess of both. Tune the low radius first, then the medium. This is a node you adjust by eyeballing the outputs, not by theory.
Installing it
This node ships in ComfyUI-CoCoTools, which is deprecated and unmaintained; the original repo URL has been 404ing on GitHub since at least August 2026 and the author's successor repo (ComfyUI-CoCoTools_IO) doesn't include it. Try ComfyUI Manager (search ComfyUI-CoCoTools) first, or clone manually:
cd ComfyUI/custom_nodes
git clone https://github.com/Conor-Collins/coco_tools
Install the pack's requirements (Windows portable, from python_embeded/):
python.exe -m pip install -r ./ComfyUI/custom_nodes/ComfyUI-CoCoTools/requirements.txt
Restart ComfyUI to pick the nodes up.
Gotchas
- The outputs are separate images, not a packaged result. If you want a rebuilt image (e.g. boosted detail), you recombine the bands yourself with core image math or blend nodes - this node only does the splitting.
- The radii are relative to image resolution. A radius of 5 that reads as fine detail on a 512 image is a different beast on a 4K one.
- It's abandoned code with no upstream fixes. For a critical sharpening step, a maintained pack with frequency-separation nodes is the safer long-term home; for learning the technique and building a workflow today, this works fine.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| low_freq_radius | INT | 51–100 | — |
| medium_freq_radius | INT | 101–100 | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| Low Frequency Image | IMAGE | — |
| Medium Frequency Image | IMAGE | — |
| High Frequency Image | IMAGE | — |