Nodes/Skoogeer-Noise/Latent Frequency Merge
ComfyUI Node

Latent Frequency Merge

Put the detail back, but louder (or quieter)

By ttulttul·Created 9 months ago·Updated 3 months ago· 14
Latent Frequency Merge
  • low_pass
  • high_pass
  • mask
  • LATENT
low_gain1.00
high_gain1.00

Latent Frequency Merge is the second half of the pack's frequency-split workflow: it takes a low_pass band and a high_pass band and stitches them back into one latent. Alone it's a boring adder. With its two gain dials, it's the sharpening/softening tool you always wanted - because the merge is where you decide how much detail you actually want back.

Think of it as the EQ mixer for your latent. low_gain controls the broad shapes and lighting; high_gain controls the texture and edges. Turn high_gain above 1 and you've done latent-space unsharp masking - edges snap, texture pops. Drop it toward 0 and the image goes soft and dreamy, the frequency-domain version of LatentGaussianBlur. Negative gains are allowed too, and they're how you do band-flipped weirdness: invert the high band and merge it, and the detail comes back as a negative-embossed shadow of itself.

How it works

The math is exactly as simple as it looks:

merged = low_pass * low_gain + high_pass * high_gain

Both gains default to 1.0, so a straight split→merge round trip reconstructs the original latent. The node validates that the two bands are the same shape (they will be, if they came from the same LatentFrequencySplit) and casts dtypes to match. The optional mask blends the adjusted result against the untouched low + high inside masked regions, so you can sharpen only a face or only a subject's clothing while the background stays as-is.

Three inputs, one output:

  • low_pass / high_pass - from the split node.
  • low_gain / high_gain - your EQ. This is the whole point.
  • latent (LATENT) - the recombined result, ready for a sampler or the VAE.

Installing it

It's part of the Skoogeer-Noise pack. ComfyUI Manager: search "Skoogeer-Noise", install, restart. Or:

cd ComfyUI/custom_nodes
git clone https://github.com/ttulttul/Skoogeer-Noise
# restart ComfyUI

Standard dependencies only - no model downloads.

Gotchas

  • A clean round trip is the ground truth. Split, merge, compare. If the output doesn't match the input at gains 1.0/1.0, something upstream is wrong (wrong band, edited in between) - debug there before touching the gains.
  • High gains are addictive and wrong. high_gain of 2+ sharpens, but it also amplifies whatever the decoder can't handle - expect halos and crunchy edges. The pack's own LatentChannelStatsPreview is a good sanity check that channels haven't gone wild.
  • Negative gain flips, it doesn't remove. If you wanted to remove the high band cleanly, that's high_gain = 0, not a negative - negatives invert polarity and produce emboss/edge-artifacts.
  • Flux.2 patchified latents: split and merge were both designed around unpatchified spatial ops, so wrap in Unpatchify Flux.2 Latent → split/merge → Patchify Flux.2 Latent per the pack README.
CategoryLatent/Filter

Inputs (5)

NameTypeDefaultDescription
low_passLATENTLow-frequency latent band produced by Latent Frequency Split.
high_passLATENTHigh-frequency latent band to merge back in.
low_gainFLOAT1.00-5–5Multiplier for the low-pass band before merging.
high_gainFLOAT1.00-5–5Multiplier for the high-pass band before merging.
maskoptMASKOptional mask (often image-sized) to limit the merge adjustments to masked areas. The mask is resized to latent resolution (bicubic when downscaling).

Outputs (1)

NameTypeDescription
LATENTLATENT