ComfyUI Node

Nuke Exposure

Brighten a flat render without blowing out the whites

By sumitchatterjee13·Created about a year ago·Updated 9 days ago· 59
Nuke Exposure
  • image
  • mask
  • IMAGE
stops0.0
stops_r_offset0.0
stops_g_offset0.0
stops_b_offset0.0
exposure_typestops
multiply1.00
offset0.00
preserve_highlightsfalse
clamp_outputtrue
mix1.00

If your generated image looks like it was shot in a basement, the first tool to reach for isn't a prompt re-roll - it's exposure. NukeExposure is the ComfyUI port of Nuke's Exposure node: it brightens or darkens an image in proper photographic units, so you adjust in f-stops the way a real colorist does, instead of fumbling with a generic "brightness" slider that shifts everything into gray.

This is a color-grade node, not a post-upscale filter. It lives at the end of the pipeline, right before you save or composite. Punch up a dark render, pull back an overexposed one, or balance the tone of a generated element so it matches the plate it's sitting on.

How it works

Exposure works multiplicatively on the RGB values, and the math is exactly what photographers use. In stops mode, the multiplier is 2^stops - one stop is a doubling of light, minus one stop is a halving. The other two modes speak other dialects of the same idea: printer_lights uses the 10^(stops/25) conversion that colorists use when talking to film scanners, and film_density uses 10^(−stops). Most of the time you'll stay on stops and never think about the other two.

Because the adjustment multiplies rather than adds, highlights naturally respond differently from shadows - which is why it reads as "exposure" and not "brightness." Raise one stop and a mid-gray render lifts nicely while your specular whites approach clipping rather than just going gray and flat.

The inputs that matter

  • stops - the exposure shift, −10 to +10, in tenths. The workhorse control; ±2 covers most fixes.
  • exposure_type - stops (default), printer_lights, or film_density. Stops is the one to use.
  • multiply - a raw multiplier applied after the stops conversion, for when you need to push further than the stops range.
  • offset - an additive offset, mainly for lifting crushed blacks.
  • clamp_output - on by default, and leave it on: it clamps the result to 0–1 so you don't send super-bright float values into a node chain that can't handle them. Turn it off only if you're doing HDR-ish work and want values above 1.0 to survive downstream.
  • mix - blends the adjusted image back into the original, 0 to 1. Great for a 0.3 "warm it up" nudge that stays subtle.
  • mask - optional IMAGE mask so the exposure only lands on part of the frame, like brightening a face region without touching the background.

The output is a single IMAGE. Feed it into a save node or continue grading.

Installing it

It's part of the Nuke Nodes pack:

cd ComfyUI/custom_nodes
git clone https://github.com/sumitchatterjee13/nuke-nodes-comfyui.git nuke-nodes
cd nuke-nodes
pip install -r requirements.txt

Or search "Nuke Nodes" in ComfyUI Manager and restart. It lives under the Nuke category. Like the rest of the grade nodes, it's pure PyTorch - no heavy dependencies beyond what ComfyUI already ships, so the OpenImageIO in requirements.txt isn't needed for this node to work.

Common issues

  • Image goes harsh and clipped fast - you're probably on stops and went past ±2, or clamp_output is off and a downstream node is choking on float values. Clamp is your friend.
  • It looks like a brightness slider, not exposure - check the exposure_type. If a loaded workflow set it to film_density, the response curve flips; switch back to stops.
  • The mask area looks wrong - the mask input is an IMAGE, not a MASK. Convert before wiring it in.

If your images read "flat" and "dim," this is the first knob to turn - one stop up and a mediocre render usually turns into a decent one.

CategoryNuke/Color

Inputs (12)

NameTypeDefaultDescription
imageIMAGE
stopsFLOAT0.0-10–10
stops_r_offsetFLOAT0.0-5–5
stops_g_offsetFLOAT0.0-5–5
stops_b_offsetFLOAT0.0-5–5
exposure_typeCOMBOstops3 options: stops, printer_lights, film_density
multiplyFLOAT1.000–10
offsetFLOAT0.00-1–1
preserve_highlightsBOOLEANfalse
clamp_outputBOOLEANtrue
mixFLOAT1.000–1
maskoptMASK

Outputs (1)

NameTypeDescription
IMAGEIMAGE