Nodes/DJZ-Nodes/Halation Bloom
ComfyUI Node

Halation Bloom

Halation, without the film stock

By MushroomFleet·Created 2 years ago·Updated 5 months ago· 78
Halation Bloom
  • images
  • IMAGE
effect_mode
intensity1.0
threshold0.60
radius15
chromatic_aberration0.5
temporal_variation0.20
red_offset1.2

Halation is that soft red-orange halo that bleeds off bright highlights in film photography - the reason a window in a sunset shot glows warm instead of just being white. It's a chemical property of real film (light bouncing off the backing layer and fogging the emulsion), and it's one of the most reliable "this was shot on film" tells. HalationBloom simulates it, with a plain bloom mode if you want a neutral glow instead. It's the kind of effect that does more for a "photographic" look than most people expect from one node.

The modes

  • Halation - channel-specific glow with an emphasis on the red channel (the default red_offset of 1.2 does that). Red spreads the furthest, blue the least, which is exactly how real film halation behaves.
  • Bloom - a uniform multi-channel glow. Cleaner, more "lens flare through a filter" than filmic.
  • Both - halation plus bloom, the full cinematic stack.

The inputs that matter

  • intensity (0–5, default 1) - overall glow strength. Above 1 gets exaggerated fast; 0.5–1.5 is the filmic range.
  • threshold (0–1, default 0.6) - how bright a pixel must be before it starts glowing. Higher = only the hottest highlights bleed (the subtle, correct-for-film setup); lower = everything luminescent gets a halo and the image turns dreamy.
  • radius (1–100, default 15) - glow size. Small values (5–10) are tight and realistic; 40+ is full dream-sequence territory.
  • chromatic_aberration (0–2, default 0.5) - extra color fringing around bright areas, layered on top.
  • temporal_variation (0–1, default 0.2) - makes the glow breathe subtly over a batch of frames (sine-driven modulation). Nice for video, harmless on stills.

Input images, output IMAGE, batch-friendly.

How it works

The node grabs the L channel of LAB color space to build a brightness mask, isolates the pixels above threshold, and runs channel-specific Gaussian blurs (red at radius × red_offset, blue shorter) that get added back over the bright areas. The result is a glow that respects luminance but warms toward red - the actual mechanism of film halation, approximated in a handful of OpenCV calls. It's cheap, deterministic, and stacks cleanly with the other DJZ film nodes.

The honest take

This is one of the pack's sleeper hits. Bloom alone you could get elsewhere, but the halation mode - red offset, channel-specific blur, thresholded to the highlights - is exactly the finishing touch that a photorealism workflow or a film emulation stack wants as its last-but-one step (put FilmGateWeave or grain after it). Where people overshoot: cranking intensity and dropping threshold turns every render into soft-focus Instagram. Keep the threshold up, keep intensity around 1, and let the red offset do the talking.

Categoryimage/effects

Inputs (8)

NameTypeDefaultDescription
imagesIMAGE
effect_modeCOMBO3 options: Halation, Bloom, Both
intensityFLOAT1.00–5
thresholdFLOAT0.600–1
radiusINT151–100
chromatic_aberrationFLOAT0.50–2
temporal_variationFLOAT0.200–1
red_offsetFLOAT1.20.5–2

Outputs (1)

NameTypeDescription
IMAGEIMAGE