Multi Scale Contrast
The 'clarity' slider your flat renders never had
- image
- IMAGE
If you've ever dropped a finished render into Photoshop and hit the "Clarity" or "Texture" slider and watched it come alive, this is that effect, in ComfyUI. Multi Scale Contrast does local contrast - the kind that works region-by-region instead of slamming the whole image - and the node description is upfront about where it came from: "similar to the reshade effect." Reshade being the game post-processing injector whose MultiScaleContrast shader does exactly this: separate an image into a fine-detail layer and a coarse, blurred base, then boost the detail where it matters. AI renders come out of the sampler flat; this is the thing that makes them feel dimensional.
How it works
The node builds a blurred, low-frequency version of your image - it shrinks the frame with average pooling and stretches it back with bilinear upscaling - then does its work in a tone-mapped space (a Reinhard-style x / (x+1) curve) so contrast boosts don't blow out highlights. It's luma-weighted with Rec.709 coefficients, so it mostly acts on perceived brightness rather than hue. Then one of five effect_mode formulas applies. The short version: mode 0 is a classic local-contrast lift, modes 1–3 are variations on gating the boost by the blurred base, and mode 4 is the fancy one that blends edge detail against a screened result. Default is mode 0, which is a fine place to live.
Inputs that matter
image- the IMAGE in, IMAGE out.enhancement_strength- this is your main amount knob, −1 to 1, default 0.5. It's subtle at default; that's the point. Negative values invert the effect and reduce local contrast.sharpness_factor- 0 to 1, default 0.7. Feeds the edge-retention path; push it up if the result looks soft, down if it looks crunchy.brightness_boost- 0 to 1, default 0. A gentle gamma-style brightening on top. Leave it at 0 unless the image reads dark.effect_mode- the "0"–"4" dropdown. Don't overthink it on your first pass; pick one, get the look roughly right, then audition modes to see which formula suits the image.
Output is a single IMAGE, ready for a Preview node or the next effect. In the pack's example workflow it sits late in the chain, near the sharpen group - put it after upscaling, before your final grade.
Installing it
It ships with Photography Nodes, so it's a one-time install for everything:
cd ComfyUI/custom_nodes
git clone https://github.com/TrophiHunter/ComfyUI_Photography_Nodes
# restart, then find it under TrophiHunter/Photography
Or ComfyUI Manager → search "Photography Nodes" by TrophiHunter → install → restart. No extra Python deps, no models to download.
Troubleshooting
The most common complaint is "nothing happened," and the usual answer is that it did, just gently - the effect is deliberately mild at default. Crank enhancement_strength toward 1 before you start blaming the node. Don't stack it with a separate sharpener and another clarity filter, or you'll get halos and that overcooked "unsharp mask accident" look; this node plus a light Sharpen Simple is usually enough.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| sharpness_factor | FLOAT | 0.700–1 | — |
| enhancement_strength | FLOAT | 0.50-1–1 | — |
| brightness_boost | FLOAT | 0.000–1 | — |
| effect_mode | COMBO | 0 | 5 options: 0, 1, 2, 3, 4 |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |