Image Detail Transfer
Paste texture and detail from one image onto another
- target
- source
- mask
- image
Ever run a face through an upscaler or a smoothing pass and end up with plastic, poreless skin? This node is the fix. easy imageDetailTransfer takes the fine, high-frequency detail from one image (the source) and lays it over another (the target), so you can put the texture back - skin pores, fabric weave, surface grain - without touching the underlying shapes and colors. It's the frequency-separation trick that retouchers have used for years, packaged as a single ComfyUI node.
How it works
The mechanism is old-school image compositing, not diffusion. The node blurs the source to isolate its low frequencies, subtracts that to get the high-frequency detail layer (the fine texture), and blends that detail onto the target using a chosen blend mode. Because it's only moving the fine stuff, the target keeps its overall structure and tone; it just gains crispness and texture from the source. That's why it pairs so well after any step that softens an image - upscaling, denoising, face restoration, IP-Adapter passes.
The inputs and outputs that matter
target- the image receiving detail (your smoothed / upscaled result).source- the image the detail comes from (often the original, pre-smoothing version).blur_sigma- the frequency split. This is the knob that decides what counts as "detail." Small values grab only the very finest texture; larger values pull in coarser features. Start near the default and nudge until pores show without the whole image getting crunchy.blend_factor- how strongly the detail layer is applied. Turn it down if the effect looks harsh or over-sharpened; the range even allows negatives if you want to remove detail.mode- the blend mode (add,soft_light,overlay,multiply, and eight more).addis the default and the honest detail-transfer default;soft_lightandoverlaygive a gentler, more contrast-aware result. Worth trying a couple on your image.
Optional mask restricts the transfer to a region - perfect for "put texture back on the face but leave the smooth background alone." The single output is the composited image, plus the usual image_output / save_prefix since this is an output node.
Installing it
Comes with the pack. Install ComfyUI-Easy-Use via ComfyUI Manager (search ComfyUI Easy Use, restart) or:
cd ComfyUI/custom_nodes
git clone https://github.com/yolain/ComfyUI-Easy-Use
Install requirements, restart. No models - this is straight image math, so it's fast and CPU-cheap.
Where it bites
The classic mistake is mismatched source and target. The two images need to line up - same subject, same framing, same resolution - or you'll be pasting detail onto the wrong pixels and it'll look like a ghosting mess. If your source is the pre-upscale original, resize it to match the target first.
The other is overdoing it. Crank blend_factor too high or pick too small a blur_sigma and you get that over-sharpened, gritty HDR look that screams "processed." Detail transfer is seasoning, not the main course - aim for "wait, is this even edited?" and stop there. Use the mask to keep the effect off areas that shouldn't have texture (skies, out-of-focus backgrounds), and you'll get clean, believable results.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| target | IMAGE | — | |
| source | IMAGE | — | |
| mode | COMBO | add | 11 options: add, multiply, screen, overlay, soft_light, hard_light, +5 |
| blur_sigma | FLOAT | 1.000.1–100 | — |
| blend_factor | FLOAT | 1.000-10–10 | — |
| image_output | COMBO | Preview | 4 options: Hide, Preview, Save, Hide/Save |
| save_prefix | STRING | ComfyUI | — |
| maskopt | MASK | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |