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

Image HL Freq Transform

Steal one image's texture and give it to another

By 1hew·Created about a year ago·Updated 7 days ago· 33
Image HL Freq Transform
  • generate_image
  • detail_image
  • detail_mask
  • image
  • high_freq
  • low_freq
methodigbi
blur_radius10.00

Sometimes you don't want to generate texture - you want to borrow it. Image HL Freq Transform is the detail-transfer node in this pack: it takes a generate image (usually one of your AI outputs) and a detail image (a reference with the texture you covet), and splices the high-frequency detail from the detail image onto the generated one. The generated image keeps its own color and tone, but gains the reference's grain, pores, fabric weave, or skin texture.

It's from ComfyUI 1hewNodes (solo dev 1hew, bilingual README, active development). It's the most "wow" node in the frequency-separation trio, and the one people reach for when outputs come out too smooth.

How it works

The mechanism is frequency separation with a swap. Both images are split into high and low frequency using blur_radius (which you should keep in the same ballpark as the separation nodes for consistency). The generated image's low-frequency layer - its color and tone - is kept. The high-frequency layer - the detail - comes from the detail image. The two are recombined, so you get a color-accurate version of your generated image wearing the reference's texture.

The method dropdown offers the same trio as the other HL nodes - igbi (the default), rgb, and hsv - and they differ mainly in how aggressively the detail maps onto the target. For face work, igbi tends to be the nicest; for general texture transfer rgb is the safe pick.

The detail_mask input is the killer feature. Pass a mask and the detail transfer only happens where the mask is white - transfer skin texture onto a face but leave the hair and background alone. This turns "I hope the whole image doesn't go weird" into "I only changed the region I meant to change." Batch sizes are auto-matched by repeating the shorter input, so it's video-friendly too.

The inputs that matter

  • generate_image - the image that keeps its colors; this is your base.
  • detail_image - the image that lends its texture.
  • method - igbi (default), rgb, or hsv.
  • blur_radius - separation radius, 0–100 (default 10). Same rules as the separator: too small keeps texture in the low layer, too big smears.
  • detail_mask - optional MASK limiting where detail is transferred.

Outputs: image (the result), plus high_freq and low_freq of the result if you want to inspect or further process the layers.

Installing it

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

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

Uses opencv for the blur (pack installs it; first install is heavy because of the detection-node deps). No model files. Needs current ComfyUI.

Where people get burned

  • Everything looks gray or flat - you swapped the layers conceptually but set the blend wrong, or the detail image's resolution doesn't match. Keep both inputs similar in resolution; the transfer is texture-mapped, not content-aware.
  • Detail bleeding into unwanted areas - that's what detail_mask is for. A whole-image transfer of heavy skin texture onto a landscape is a recipe for mush.
  • Expected a face-specific solution? - this is a mathematical transfer, not a model. For face texture specifically, people often pair it with an inpainting pass afterward. It's a tool in a chain, not a one-click.
Category1hewNodes/image/hlfreq

Inputs (5)

NameTypeDefaultDescription
generate_imageIMAGE
detail_imageIMAGE
methodCOMBOigbi3 options: rgb, hsv, igbi
blur_radiusFLOAT10.000–100
detail_maskoptMASK

Outputs (3)

NameTypeDescription
imageIMAGE
high_freqIMAGE
low_freqIMAGE