HDRI to Irradiance (FAST)
Instant irradiance maps when you're iterating, not shipping
- hdri
- irradiance_map
An irradiance map is what your environment contributes to diffuse lighting - and for many purposes, a heavily blurred version of the environment is a surprisingly good approximation of it. That's exactly what this node trades on: instead of the physically sampled hemisphere convolution of its sibling EnvironmentMapToIrradiance, it just downscales the HDRI and blurs it. The result is "close enough" for iteration, and it's effectively instant. That's the whole value proposition - speed when the exact numbers don't matter yet.
The implementation is delightfully blunt, and the source is open about it. It takes your equirectangular HDRI, downscales it to your chosen output_size (256x128, 512x256, or 1024x512), then applies blur_strength passes of a simple 3x3 box blur. More passes = softer and more spatially uniform, which reads as "smoother diffuse lighting." Because the blur operates with replicate padding at the edges, you don't get weird dark borders at the map's seams. The whole thing runs in a handful of tensor ops, hence the "FAST" in the name.
Inputs are just hdri, blur_strength (default 8, range 1–20), and output_size. Output is irradiance_map, a standard IMAGE.
Now the honest take, because the "FAST" is doing a lot of work here. A box blur is not a true diffuse convolution - a real irradiance map integrates over a hemisphere with cosine weighting, which this doesn't. For physically correct lighting in a final render, you want the pack's EnvironmentMapToIrradiance (which actually does hemisphere sampling with 128 or 512 samples per pixel). This node is for the phase where you're picking an HDRI, trying five environments to see which mood works, or building a preview chain - at that stage the difference between "blurred sky" and "true irradiance" is invisible, and the difference in waiting time is not.
So: use it when you're exploring, and swap to the accurate version when you lock the environment. That division of labor is exactly how the pack ships them, and it's a sensible one. It's also a great little teaching node if you want to see how far blur-approximation actually gets you - sometimes surprisingly far.
Install: Manager → search "Texture Alchemy", or:
cd ComfyUI/custom_nodes
git clone https://github.com/amtarr/ComfyUI-TextureAlchemy
Restart, then Texture Alchemist/Lighting → HDRI to Irradiance (FAST). No dependencies, no models - pure torch blur math, instant on GPU. Shared gotchas: the README's copy step references the pack's pre-rebrand folder name, and if Manager blocks a Git-URL install, that's ComfyUI's security level - clone by hand.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| hdri | IMAGE | — | |
| blur_strength | INT | 81–20 | Number of blur passes (more = softer) |
| output_size | COMBO | 512x256 | Output resolution |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| irradiance_map | IMAGE | — |