ComfyUI Node

🐳HDR

Tone-mapped 'HDR' punch for a single image — no bracketed shots needed

By Pondowner857·Created about a year ago·Updated 21 days ago· 45
🐳HDR
  • image
  • IMAGE
HDR强度0.50
色调映射
细节增强0.50
局部对比度0.50
高光压缩0.00
阴影提升0.00

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.

Category🐳Pond/颜色

Inputs (7)

NameTypeDefaultDescription
imageIMAGE
HDR强度FLOAT0.500–1
色调映射COMBO4 options: Reinhard, Drago, Mantiuk, 线性
细节增强FLOAT0.500–1
局部对比度FLOAT0.500–1
高光压缩FLOAT0.000–1
阴影提升FLOAT0.000–1

Outputs (1)

NameTypeDescription
IMAGEIMAGE