Clarity / Texture / Dehaze
The three sliders every photographer reaches for first
- image
- image
Open any serious raw processor and there they are: Clarity, Texture, and Dehaze. Three sliders that fix the three most common problems in an image - flat midtones, soft fine detail, and hazy contrast - and until now ComfyUI didn't have a proper home for them. Clarity / Texture / Dehaze is exactly that: a single node with the three sliders photographers actually use, plumbed into ComfyUI's node graph.
The three knobs
clarity(−100 to +100) - large-scale local contrast. It's "midtone punch": it adds contrast at a broad radius, which makes an image feel three-dimensional without blowing out highlights or crushing blacks. Push negative and it softens. This is the slider that makes landscapes and architecture "pop."texture(−100 to +100) - fine detail enhancement. Where clarity works at a large radius, texture works at a small one - it sharpens surface detail (skin pores, fabric, rock) without affecting edges or haloing. Negative smooths. This is the one that makes fabric look woven instead of painted.dehaze(−100 to +100) - atmospheric haze removal. It estimates and removes the milky, low-contrast veil of atmospheric scattering. Negative adds haze, which is a genuinely useful way to fake atmospheric depth on a too-clean render.
All three work independently, and all three work in both directions - that's a nice trick, because most "dehaze" implementations can only subtract.
The strength slider blends the whole adjustment back toward the original, and there's a preset dropdown with three "AI Mitigation" tiers (Subtle / Standard / Strong). The author's tooltip is worth reading: those presets are designed to stack with the HSL Selective node's AI Mitigation preset of the same tier - the pack treats "this image came out of a diffusion model and has that AI look" as a real problem it actively mitigates. Pick the matching tier in both nodes and the result is a clean, photographic base.
How it works
Under the hood it's a frequency-based local adjustment - clarity modifies mid-frequency local contrast, texture modifies high-frequency detail, dehaze estimates the global haze veil and pulls it. The exact filter math is scipy-based, like the rest of the pack, and it runs fine on CPU. It's a pixel-neighborhood operation, which is why the README lists it among the nodes excluded from LUT bake chains - you can't bake spatial effects into a per-pixel .cube. Apply it to the photo after extraction if you're exporting a LUT.
How to use it
Wire image in, and start with texture at +10–25 on anything with fabric, skin, or foliage. Add clarity at +10–30 when the image reads flat. Use dehaze only when there's actual haze - or negative dehaze when you want atmospheric depth. The node outputs a single image, so it slots anywhere in the AKURATE/Darkroom/Raw chain, ideally after exposure and white balance and before any grain.
Installing it
Part of the full ComfyUI-Darkroom pack:
cd ComfyUI/custom_nodes
git clone https://github.com/jeremieLouvaert/ComfyUI-Darkroom.git
pip install -r ComfyUI-Darkroom/requirements.txt
Or search "Darkroom" in ComfyUI Manager. Needs scipy, opensimplex, rawpy, exifread, Pillow; restart after install; found under AKURATE/Darkroom/Raw. No GPU, no models, no API.
One caution: clarity and texture are addictive, and stacking both high on every image is how you get that overcooked "HDR filter" look that screams AI-processing. Use them until it looks like a photo - then back off one notch.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| clarity | FLOAT | 0-100–100 | Large-scale local contrast (midtone punch). Negative = soften |
| texture | FLOAT | 0-100–100 | Fine detail enhancement without affecting edges. Negative = smooth |
| dehaze | FLOAT | 0-100–100 | Remove atmospheric haze. Negative = add haze effect |
| strengthopt | FLOAT | 1.000–1 | Blend between original (0) and adjusted (1) |
| presetopt | COMBO | Custom (manual) | AI Mitigation presets stack with HSL Selective preset of the same tier. Manual sliders add on top |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |