Nodes/ComfyUI 1hewNodes/Image HL Freq Combine
ComfyUI Node

Image HL Freq Combine

Put the frequency layers back together, with dials

By 1hew·Created about a year ago·Updated 7 days ago· 33
Image HL Freq Combine
  • high_freq
  • low_freq
  • image
methodrgb
high_strength1.00
low_strength1.00

If Image HL Freq Separate is the splitter, this is the rejoiner - and the rejoiner is where frequency separation actually becomes useful. You don't just split an image and stop; you split it, adjust one of the layers, and recombine. Image HL Freq Combine takes the high-frequency and low-frequency outputs from the separation node and mixes them back together, each with its own strength dial.

It's from ComfyUI 1hewNodes (solo dev 1hew, bilingual README, active development). The combination is method-aware, so whatever separation method you used on the way in, you use on the way out.

How it works

The core is simple recombination math. For the rgb method it's linear-light: result = 2*high + low - 1, clamped to 0–1. For hsv it recombines only the Value channel of the low layer with the high-frequency luminance, leaving hue/saturation untouched. For igbi it uses the inverted-gain recipe the separator's igbi mode implies. All of it is done in numpy after a quick torch→cpu hop, so it's fast even on batches.

The two strength inputs are where you actually do retouching. high_strength scales the texture layer - push it up and you sharpen/enhance detail, drop it and you smooth (this is how you soften skin without a blur filter). low_strength scales the color/tone layer - raise it for richer color, lower it to mute. For the rgb/hsv methods the high layer is centered around 0.5, so scaling it rotates around that midpoint rather than just multiplying brightness; that's the behavior you want for detail, not the "everything turns black" a naive multiply would give you.

The node also handles batch mismatches gracefully: give it 10 high layers and 2 low layers and it repeats the short one to match, which is convenient when you're processing video frames against a single reference pair.

The inputs that matter

  • high_freq / low_freq - the two layers from Image HL Freq Separate (or anywhere else).
  • method - must match the separation method: rgb, hsv, or igbi.
  • high_strength / low_strength - 0–2, default 1. These are your retouching dials.

Output is a single image. Typical chain: Separate → tweak high_strength (or edit the high layer with other nodes) → Combine → done.

Installing it

ComfyUI Manager → search "1hew" / "ComfyUI 1hewNodes" → install → restart. Manual:

cd ComfyUI/custom_nodes
git clone https://github.com/1hew/ComfyUI-1hewNodes

Needs opencv, which the pack installs (heavy first install due to detection-node deps like ultralytics/rembg). No models. Requires current ComfyUI (modern node API).

Gotchas

  • Method mismatch - combining a rgb-separated high with an hsv recombination gives muddy results. Match the methods between the two nodes; there's no auto-detection.
  • Strength 2 isn't "twice the detail" - it's amplification, and past ~1.3 the texture layer starts to look crunchy or halo. Dial it, don't max it.
  • It's not a blender - this node expects frequency layers (gray-centered high, blurred low), not arbitrary images. Feed it random images and you'll get math, not art.
Category1hewNodes/image/hlfreq

Inputs (5)

NameTypeDefaultDescription
high_freqIMAGE
low_freqIMAGE
methodCOMBOrgb3 options: rgb, hsv, igbi
high_strengthFLOAT1.000–2
low_strengthFLOAT1.000–2

Outputs (1)

NameTypeDescription
imageIMAGE