😺NKD Frequency Combine
Put skin texture back after a relight — the detail-transfer finisher
- high_frequency
- low_frequency
- mask
- image
Relighting is great until it isn't. A relight model moves the lighting beautifully and smooths the pores and fabric texture into oblivion in the process, because relighting a face is basically running it through a blur-and-recompose. The fix has been around in Photoshop forever: split the image into a soft base and a detail layer, then recombine the new base with the old detail. That's frequency separation, and 😺NKD Frequency Combine is the "put it back" half of it.
You feed it a high-frequency detail layer and a low-frequency base, and it merges them: detail from one image, base from another. The classic wiring is - take the original photo, run it through 😺NKD Frequency Separate, keep its high_frequency; take the relit result as your low_frequency; combine. Result: the relit lighting with the original micro-detail intact.
The input that bites: mode and linear
high_frequency- the detail layer from a Frequency Separate.low_frequency- the base the detail lands on (e.g. the relit result).mode- must match the Separate that made the HF. The defaultDivideis a ratio encoding, which is lighting-invariant - that's why detail transfers cleanly between differently-lit images. If the two nodes disagree, you get garbage, not a subtle error.linear- same story: must match the Separate. Processing in linear light is the "correct" default;linearon one node and off the other is a mismatch.detail_strength- attenuate (<1) or boost (>1) the transferred detail. 1.0 restores it faithfully; this is your "how much texture do I actually want back" dial.mask_feather- softens the mask edge before applying.
The optional mask input applies the detail only inside the mask (feathered by its values) - skin-only detail restoration, for instance, so the background isn't re-textured.
Output is a single image: base with the detail recombined.
Install and gotchas
Install via ComfyUI Manager (search ComfyUI-NKD-Basic-Tools) or:
cd ComfyUI/custom_nodes
git clone https://github.com/Nekodificador/ComfyUI-NKD-Basic-Tools
Restart after. Pack dependencies are onnxruntime and huggingface_hub; neither is needed here. The number one failure mode is mode/linear mismatch - if the combine looks wrong, check those two before touching anything else, because they have to mirror the Separate exactly. And if you're wondering whether to use Luminance or RGB detail: Luminance keeps the detail achromatic so a Divide recombine never shifts color, which is the safe default for skin-and-fabric work.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| high_frequency | IMAGE | — | |
| low_frequency | IMAGE | Base image the detail lands on (e.g. the relit result). | |
| mode | COMBO | Divide | Must match the Separate that made the HF. |
| linear | BOOLEAN | true | Must match the Separate that made the HF. |
| detail_strength | FLOAT | 1.000–2 | Attenuate (<1) or boost (>1) the transferred detail. 1.0 restores it faithfully. |
| mask_feather | FLOAT | 00–64 | Soften the mask edge before applying. |
| maskopt | MASK | Optional — apply the detail only inside the mask (feathered by its values). |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | Base with the detail recombined. |