ArchAi3D_HighPass_Blend
Bring back the texture that relighting knocked out
- original
- relighted
- result
- high_freq
Here's a frustration you'll recognize if you've ever relit an image: the new lighting looks great, and all your fine detail - fabric weave, brick joints, skin pores - silently disappeared, smoothed into a plastic surface. Relighting models (IC-Light and friends) are great at light, mediocre at preserving texture. ArchAi3D_HighPass_Blend is the fix: it takes the original image, extracts its high-frequency detail, and stamps that detail back onto the relighted image. Details from the source, lighting from the new pass, best of both.
How it works
The math is a classic high-pass filter, the kind Photoshop users have been running forever:
- Blur the original with a Gaussian (
radius, default 3 - sigma = radius/2). - Subtract the blur from the original to get the high-frequency layer:
high_freq = original - gaussian_blur(original). - Add that layer to the relighted image, scaled by
strength, using your chosenblend_mode.
That detail layer is exactly what got smoothed away, and it's content - edges, grain, texture - independent of the lighting. So you can relight aggressively and reattach the original's texture afterward without reintroducing the old lighting.
Inputs:
original- the source image whose details you're stealing.relighted- the processed image receiving the details.radius- how much detail gets captured. Small (1–3) = fine grain; larger = broader structures. There's no universal right answer; match it to the feature size your relight pass destroyed.strength- 0–3, default 1. 0 = no effect. Above 1 you're emphasizing texture, which can look crunchy - use with intent.blend_mode-linear(additive) oroverlay(the classic soft-light-style blend). Linear is punchier; overlay is gentler and rarely blows highlights.
Outputs: result (the fixed image) and high_freq (the extracted detail layer - handy for debugging, and for manual compositing if you want to see exactly what's being added).
Where it fits
This is a post-process, not a generation node. Typical chain: render → relight (IC-Light, or a Qwen edit that changed the lighting) → HighPass_Blend → save. It also helps when a color-grade or edit pass flattened the texture. The KB's IC-Light essay is a good companion read - the same "lighting changes, texture must survive" tension is its whole subject.
Install and caveats
Part of the ArchAi3D Qwen pack:
cd ComfyUI/custom_nodes
git clone https://github.com/amir84ferdos/ComfyUI-ArchAi3d-Qwen.git
cd ComfyUI-ArchAi3d-Qwen && pip install -r requirements.txt
It needs torch (already there) and nothing exotic - no extra pip packages beyond the pack baseline. ComfyUI Manager → search "ArchAi3d Qwen" also works.
The caveat: if your original and relighted images don't align (different resolution, or the relight moved content), the detail layer lands on the wrong pixels and you'll get ghosting. Resize both to match first. And beware cranking strength past ~1.5 on portraits - the KB's photorealism notes warn that over-sharpened texture reads as "AI look." Free personal, paid commercial, per the pack license.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| original | IMAGE | Original image to extract details FROM | |
| relighted | IMAGE | Relighted/processed image to apply details TO | |
| radius | FLOAT | 3.00.5–20 | Blur radius for high-pass filter (higher = extract larger details) |
| strength | FLOAT | 1.00–3 | Blend strength (0 = no effect, 1 = normal, >1 = stronger) |
| blend_mode | COMBO | linear | Blend mode for combining detail layer |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| result | IMAGE | Relighted image with restored details |
| high_freq | IMAGE | Extracted high frequency detail layer (for debugging/manual use) |