◎ Radiance Image To Float32
Get your image out of 8-bit jail
- image
- image
Every Radiance workflow worth building starts in the same place: an image in float32. Standard ComfyUI images are clamped, 8-bit-ish tensors where 1.0 is white and there is nowhere to go above it - fine for display, useless for HDR work. ImageToFloat32 is the pack's front door: it converts your image to 32-bit float so the whole chain downstream can carry super-whites and negative values without anyone clamping them.
It's a two-knob node, and the source notes it's been through real bugfixes - the normalize flag was fixed to work per-frame (the old version divided the whole batch by the brightest pixel in any frame, so one hot frame would crush the rest), and source_gamma was actually wired up in v2.1 after being declared-but-unused. That's the level of care to expect.
The inputs
- image - required. Whatever you have; it'll be widened to fp32.
- source_gamma (0.1–4, default 1.0) - the gamma of your source, used to linearize it. 1.0 = assume already linear, 2.2 = sRGB-ish, 2.6 = DCI. If your source is a typical sRGB generation, 2.2 is the honest setting; if it's already linear (a VAE decode or an EXR), leave it at 1.0.
- normalize (default false) - per-frame rescale so data sits in [0,1]. Leave off for true HDR work (you don't want to squish your highlights into a range), turn on when your upstream node handed you absurdly spread values and you just want to see them.
Output: a single image, float32, unclamped.
The honest limits
This node is the entry point, not the magic. It converts precision - the values that exist come through in full fp32 - but it cannot add range. If your source is an 8-bit PNG, you get a float32 version of the same 8 bits of information; the banding in the sky is already baked in. That's the pack's own standing warning, and it's the single most important thing to internalize about Radiance: float gives you headroom to grade, not detail to recover. For genuine HDR, feed it EXR or a float VAE output.
It's also the right node to drop before any of the pack's grading (Float32ColorCorrect, the Grade nodes) or analysis tools (HDRHistogram), because those read float data properly. In fact, for most of the color nodes the conversion happens implicitly - but making it explicit keeps the intent visible in the graph, and it's the one place you set source_gamma once for the whole chain.
Install
Part of Radiance - ComfyUI Manager → search Radiance, or:
cd ComfyUI/custom_nodes
git clone https://github.com/fxtdstudios/radiance.git
cd radiance
pip install -r requirements.txt
Restart. Under FXTD Studios/Radiance/Color.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| normalizeopt | BOOLEAN | false | Normalize each frame independently to [0,1] range. |
| source_gammaopt | FLOAT | 1.000.1–4 | Source gamma to linearize. 1.0 = already linear, 2.2 = sRGB-ish, 2.6 = DCI. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |