Orion4D · DCTL Tone Mapper APP
DaVinci-style filmic tone mapping for your renders
- image
- mask
- image
- mask
Generative images have a signature problem: they clip highlights like a cheap phone camera. Whites slam to pure white with no rolloff, which is one of the biggest "this is AI" tells there is. Orion4D_FXMax_DCTLToneMapper (displayed "Orion4D · DCTL Tone Mapper APP") is the pack's answer - a filmic tone mapper inspired by DaVinci Resolve DCTLs that gently compresses highlights into a smooth rolloff, the way real film responds to overexposure.
How it works
A tone mapper is a contrast curve that reshapes luminance so you can push exposure without blowing out. The node gives you five mapping modes under the hood:
- Filmic Soft / Filmic Strong - smooth, cinema-style rolloff curves.
- ACES Approx - a lightweight approximation of the ACES film pipeline's look.
- Reinhard - the classic computer-graphics tone mapping operator.
- Cineon-ish - a log-style response for that scanned-negative feel.
Then the colorist controls kick in: exposure, contrast, pivot (where the midtones sit), highlight rolloff, shadow lift, black floor, and saturation. There's a preserve-luminosity toggle and a strength dial so you can back the whole effect off, plus an output clamp. In practice you'll mostly set exposure and let the presets (Neutral Filmic, Filmic Strong Contrast) pick the curve, then fine-tune rolloff.
Inputs and outputs
Pack-standard schema:
- image - the IMAGE tensor.
- preset - Neutral Filmic or Filmic Strong Contrast.
- raw_settings - "Embedded JSON settings used for workflow portability. Managed automatically by the APP."
- mask (optional) - tone-map only a region.
Outputs: image and mask. Slots in after VAE decode and before any sharpen pass - tone-map first, sharpen second, grain last.
Performance reality check
The README is honest about this one: it's a CPU/NumPy node, so the image round-trips off the GPU for processing. On a single still that's imperceptible. On a large video batch it's a visible delay, and the pack's own advice is to use these color nodes sparingly in video work or rely on PyTorch-native alternatives. For stills - which is what most grading is - it's totally fine.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/orion4d/Orion4D_FXMax.git
# restart ComfyUI
ComfyUI Manager search "Orion4D_FXMax" works. No models, Pillow-only deps. Use the Open APP split-screen to A/B the Filmic Soft vs ACES modes on the same image - they differ more than you'd expect, and one will click with your subject matter.
Gotchas
Don't double-grade: run the tone mapper and then stack a Curves S-curve on top and you'll crush the shadows you just saved. The tone mapper wants to be the last tonal stage before sharpening. And watch the black floor - a non-zero value lifts blacks into a "faded film" look, which is a style, not a default.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| preset | COMBO | 2 options: Neutral Filmic, Filmic Strong Contrast | |
| raw_settings | STRING | Embedded JSON settings used for workflow portability. Managed automatically by the APP. | |
| maskopt | MASK | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| mask | MASK | — |