HDR Exposure Adjust π‘
The whole node is one multiply
- image
- image
HDR Exposure Adjust is about as thin as a node gets: it multiplies your image's RGB by 2.0 ^ EV and hands it back. One input, one slider, one output. That's it - and it's exactly as trivial as it looks.
So why does it exist? Because true exposure adjustment only works on float data, and this node is honest about that being its entire reason for being. On an 8-bit SDR image, multiplying by 2^2 just blows out the highlights into flat white and loses everything. On a scene-linear float tensor - the kind the pack's EXR loaders and synthetic-HDR nodes produce - multiplying by a power of two is a real exposure change. Midtones shift, highlights roll off naturally, nothing clips until it genuinely should. That's the difference between cranking "brightness" on a JPEG and changing the exposure on a raw file, and this node is the raw-file version.
How it works
The math: out = image * (2.0 ** ev_adjust), applied to the RGB channels. The ev_adjust slider runs from -20 to +20 EV in 0.1 steps. Positive pushes brightness up, negative pushes it down. It's linear, deterministic, and fast - the kind of operation the KB's post-processing notes describe as a "millisecond, deterministic" primitive you should reach for instead of burning a diffusion pass to fake.
Where it shines:
- Dialing the highlights down on an over-bright HDR before tone mapping (drop it -1 or -2 EV)
- Normalizing an HDR tensor before a merge or save
- Matching exposure between two HDR images you're about to A/B or composite
The inputs
image- the float tensorev_adjust- the EV offset, default 0, range -20 to +20
Output is image, same shape as the input. Nothing else. There's no mode, no curve, no clamp - and that's a feature. If you want to clamp or reshape the range, that's the tone map's job, not this node's.
Install
Part of the ACES EXR Toolkit:
cd ComfyUI/custom_nodes
git clone https://github.com/azhagurajpandians/ComfyUI-ACES-EXR-Toolkit.git
python -m pip install -r ComfyUI-ACES-EXR-Toolkit/requirements.txt
Restart ComfyUI; it's under image/ACES + EXR.
Gotchas
The one thing to internalize: this node is only meaningful on float/HDR data. Feed it a clamped 0β1 SDR image and you're just adjusting brightness with extra steps - the +EV side clips immediately. If that's what you're doing, you're better off with a gamma or levels node on the SDR path. Use this when the data is already linear float, which is the pipeline this pack is trying to build.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | β | |
| ev_adjust | FLOAT | 0.0-20β20 | β |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | β |