ACES Tone Map
Make HDR look like a picture (AgX is the good one)
- image
- IMAGE
A float EXR can hold values up to hundreds of times brighter than white. That's the point - but it also means the image looks like a blown-out gray slab until you compress that range back into something a screen can show. ACES Tone Map is that compression step, with a choice of curves, and it's what sits between your HDR tensor and Preview Image when you don't want to do the whole OCIO transform song-and-dance.
It's the blunt instrument in the pack's color toolkit. Where ACES Color Transform moves you between specific color spaces, this node just takes the linear HDR values and maps them to 0–1 with a curve, then optionally encodes them to sRGB. You don't need to know what color space your EXR is in to use it - you feed it highlights that are way over 1.0 and it brings them back in.
How it works
The math is a multiplier plus a curve, applied to the float RGB before a final clip to 0–1:
- ACES fitted - the "photographic" default; the classic fitted curve that rolls highlights off gently. Safe, familiar, slightly neutral.
- Reinhard -
x / (1 + x), the simplest possible rolloff. Fast and clean but it darkens your midtones, which makes images look flatter than the others. - AgX - the Blender-standard look and the one you'll actually reach for. It desaturates highlights the way film emulsions do and holds color better than the others at the bright end. If you only learn one
look, learn this one. - Filmic (Blender) - Blender's older filmic curve, a bit punchier in the mids than AgX.
- DaVinci - a log-ish curve that behaves more like a Resolve-style grade. Good when you want to push exposure around afterwards rather than bake the look in.
exposure (an EV slider, ±10) shifts brightness before the curve - dial it to -1 or -2 when a scene is still clipping. output picks sRGB (encodes the tone-mapped result for direct preview) or Linear sRGB (leaves it linear, for when you're feeding the result back into an HDR pipeline or a save).
The honest caveat: these are approximations of the real curves, not reference implementations. Fine for previews and delivery-looks; if you need a strict match with a VFX house's ACES pipeline, that's what ACES Color Transform with a real OCIO config is for.
The settings you'll touch
look- start withAgX, thenACES fittedas the safe fallbackexposure- the one knob that fixes "still too bright"output-sRGBfor preview,Linear sRGBif more processing follows
Install
From ComfyUI Manager search "ACES EXR Toolkit", or:
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. The node is under image/ACES + EXR.
Where it fits
Typical graph: Load EXR From Path -> ACES Transform -> ACES Tone Map -> Preview Image. If the transform alone leaves the picture washed out, inserting the tone map is the README's own recommended fix. And don't tone-map before saving an HDR file - tone mapping is a display decision. Keep the float data for the file and tone map only the copy you're looking at.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| exposure | FLOAT | 0.00-10–10 | — |
| look | COMBO | 5 options: ACES fitted, Reinhard, AgX, Filmic (Blender), DaVinci | |
| output | COMBO | 2 options: sRGB, Linear sRGB |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |