🐳HDR
Tone-mapped 'HDR' punch for a single image — no bracketed shots needed
- image
- IMAGE
When you hear "HDR" you probably think of bracketed exposure shots merged into one image - which is a completely different thing from what this node does. 🐳HDR (HDREffectNode) is pseudo-HDR: it takes a single ordinary image and pushes it through tone mapping to get that punchy, high-dynamic-range look - boosted local contrast, recovered highlight detail, lifted shadows - without ever needing a second exposure. If you've seen the "HDR look" in phone cameras and want to fake it convincingly in ComfyUI, this is the node.
The mechanism is classic tone mapping, the same math OpenCV has shipped for years. It computes a luminance image from the RGB channels, applies one of four tone-mapping operators to compress the dynamic range (the dropdown names them: Reinhard, Drago, Mantiuk, 线性/linear - all real, well-known tone-mapping algorithms), then layers on detail enhancement and local contrast. The HDR强度 slider blends the tone-mapped result back against the original, so 0.3 gives a subtle punch and 1.0 goes full HDR-filter. 高光压缩 tames blown highlights, 阴影提升 lifts crushed shadows.
The controls
HDR强度- 0 to 1, default 0.5. The master blend. Start here; this alone is often enough.色调映射- the algorithm. Reinhard is the safe, filmic default; Drago handles very bright scenes well; Mantiuk is the most aggressive/contrasty; 线性 is the flat baseline.细节增强- 0 to 1. Edge-aware detail boost on top of the tone map. Crank it and you get that crunchy texture HDR is known for (and slightly famous for overdoing).局部对比度- 0 to 1. Local (vs global) contrast - the "clarity" slider.高光压缩/阴影提升- the highlight/shadow recovery pair, both 0 to 1.
Input is image, output one IMAGE. Batch-safe, so video frames get a consistent grade.
Install and the honest take
From comfy_Pond_Nodes:
cd ComfyUI/custom_nodes
git clone https://github.com/Pondowner857/comfy_Pond_Nodes
cd comfy_Pond_Nodes && pip install -r requirements.txt
The tone mapping is the classic formula set - Reinhard's L/(1+L), Drago's log-based curve, Mantiuk-style power mapping - implemented in plain numpy right in the node, so that part has no dependency. OpenCV shows up for the detail-enhancement and local-contrast passes (Gaussian blur for unsharp masking, CLAHE for contrast), so keep it installed. Now the honest part: "HDR" nodes are the most overhyped thing in this corner of post-processing. The look they produce is a specific aesthetic (clarity-boosted, contrasty, slightly crunchy) that people either love or find plasticky - it's not more accurate, it's more stylized. Use HDR强度 around 0.2–0.4 for a tasteful grade and resist the urge to max every slider; that's where the "overprocessed HDR" reputation comes from. And if your goal is actually dynamic range you can see, this won't do it - that's a workflow with proper exposure capture, not a tone-map node.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| HDR强度 | FLOAT | 0.500–1 | — |
| 色调映射 | COMBO | 4 options: Reinhard, Drago, Mantiuk, 线性 | |
| 细节增强 | FLOAT | 0.500–1 | — |
| 局部对比度 | FLOAT | 0.500–1 | — |
| 高光压缩 | FLOAT | 0.000–1 | — |
| 阴影提升 | FLOAT | 0.000–1 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |