Brightness
Gamma, midpoint, and localized lift
- image
- ui_widget
- image
- image_list
A plain brightness slider just multiplies pixel values, which is why it so often looks wrong - it blows out highlights or crushes shadows while your midtones barely move. LF_Brightness is the LF Nodes take that understands exposure, and it's worth reaching for over a naive adjustment because it separates brightness from gamma and lets you pick the tonal midpoint.
The two main controls are:
brightness_strength- −1 to 1. Negative darkens, positive brightens. Combined withmidpoint, it does this around a chosen tonal anchor instead of brute-forcing the whole range.gamma- 0.1 to 3, default 1. Values below 1 brighten the shadows, values above 1 darken the highlights. This is the control that actually rescues an underexposed image without nuking the sky.
There's also a localized_brightness boolean, which "enhances brightness locally in darker regions" - a smarter shadow-lift that doesn't touch the already-bright areas. That's the hidden hero for fixing faces that fell into shadow in a render.
How it fits
Like the rest of the LF filter family, it takes a batch (single tensor or list), returns image and image_list, and shows a KUL_COMPARE before/after widget on the node. Pair it with LF_LoadImages to grade a whole set of renders in one pass, or drop it post-sampling for a quick exposure fix before saving.
The workflow where people really feel this one: a prompt that rendered too dark (models love to do this with "night" or "candlelight" keywords). A quick pass - gamma 0.8, a touch of localized brightness - brings the subject back without the flat, washed look a plain brightness bump gives you.
Installing it
Standard LF Nodes:
cd ComfyUI/custom_nodes
git clone https://github.com/lucafoscili/comfyui-lf
or ComfyUI Manager → LF Nodes → install → restart. No dependencies, no models. The pack is the frozen legacy repo (the author moved on to lf-nodes), so this node is stable and finished.
Where people get burned
midpointdefaults to 0.5, which is a mid-gray anchor. If your image is mostly dark, leave it - but if you're adjusting a highlight-heavy image, moving the midpoint up makes the adjustment act on the brighter end.- Gamma and brightness stack. Set
brightness_strengthfirst, then fine-tune with gamma; doing both at max just makes a hazy mess. - It's a per-frame correction, not a scene-referred exposure tool. For heavy color-grading you want a real color node (the pack also has
LF_ColorAnalysisfor matching); this is for the quick, visible fix.
If "it came out too dark" is a recurring sentence in your life, this is the node that fixes it properly.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | Input image tensor or a list of image tensors. | |
| brightness_strength | FLOAT | 0.00-1–1 | Adjust the brightness of the image. Negative values darken, positive values brighten. |
| gamma | FLOAT | 1.00.1–3 | Adjust the gamma correction. Values < 1 brighten shadows, > 1 darken highlights. |
| midpointopt | FLOAT | 0.500–1 | Defines the tonal midpoint for brightness scaling. |
| localized_brightnessopt | BOOLEAN | false | Enhance brightness locally in darker regions. |
| ui_widgetopt | KUL_COMPARE | [object Object] | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| image_list | IMAGE | — |