Nodes/Photography Nodes/Bloom Lens Flares
ComfyUI Node

Bloom Lens Flares

Bloom, dirt, anamorphic streaks, god rays

By TrophiHunter·Created about a year ago·Updated about a year ago· 5
Bloom Lens Flares
  • image
  • tex_dirt
  • tex_sprite
  • IMAGE
enable_bloomtrue
bloom_threshold0.800
bloom_amount0.800
bloom_saturation0.800
bloom_tint_r0.700
bloom_tint_g0.800
bloom_tint_b1.000
bloom_mixmode2
enable_lensdirttrue
lensdirt_intensity0.400
lensdirt_saturation2.000
lensdirt_tint_r1.000
lensdirt_tint_g1.000
lensdirt_tint_b1.000
lensdirt_mixmode1
enable_anam_flaretrue
anam_flare_threshold0.900
anam_flare_amount14.50
anam_flare_curve1.200
anam_flare_color_r0.012
anam_flare_color_g0.313
anam_flare_color_b0.588
anam_flare_blur_strength0.900
anam_flare_blur_kernel_size17
enable_lenztrue
lenz_threshold0.800
lenz_intensity1.000
enable_chap_flaretrue
chap_flare_threshold0.800
chap_flare_count15
chap_flare_dispersal0.250
chap_flare_size0.450
chap_flare_ca_r0.00
chap_flare_ca_g0.01
chap_flare_ca_b0.02
chap_flare_intensity100.00
enable_godraytrue
godray_decay0.990
godray_exposure1.000
godray_weight1.250
godray_density1.000
godray_threshold0.900
godray_samples128
enable_flare_colortrue
flare_luminance0.095
flare_blur200.0
flare_intensity2.07
flare_tint_r0.137
flare_tint_g0.216
flare_tint_b1.000

This is the pack's heavy artillery. Bloom Lens Flares is a full reshade optical stack in one node - bloom, lens dirt, anamorphic horizontal streaks, chromatic-lens ghosts, and volumetric god rays, each independently toggleable with a dozen knobs apiece. The author openly credits it: it's a port of the classic Bloom.fx shader (Marty McFly / Gilcher Pascal's reshade effect) reimplemented for torch. If you want that cinematic "lit through a dirty anamorphic lens" look on a hero shot, this is the node. It's also the most intimidating node in the pack, with roughly forty parameters staring at you.

How it works

It's six stacked sub-effects, each with its own enable switch and parameter block:

  • Bloom (enable_bloom) - threshold, amount, saturation, tint, mix mode. The baseline glow
  • Lens dirt (enable_lensdirt) - a dirt texture (the tex_dirt image input) smeared over highlights, with intensity/saturation/tint. This is what makes it look like you're shooting through a dusty lens
  • Anamorphic flare (enable_anam_flare) - the horizontal blue streaks you get from anamorphic lenses. anam_flare_amount, curve, blur strength and kernel
  • Lens ghosts (enable_chap_flare) - the classic ring of chromatic ghost circles along the light axis (chap_flare_count, dispersal, size, per-channel CA)
  • God rays (enable_godray) - volumetric light shafts (godray_decay, exposure, weight, density, samples)
  • Flare color (enable_flare_color) - a big blurred, tinted bloom (flare_luminance, flare_blur, flare_intensity)

Two required IMAGE inputs beyond the photo: tex_dirt and tex_sprite (the sprite is the streak/ghost source). The pack ships example lens textures under assets/textures/lens/, so you're not stranded.

Inputs that matter

Honestly: the enable_* toggles, and then two or three knobs in whichever sub-effect you actually care about. Don't touch all forty.

  • tex_dirt / tex_sprite - the texture inputs. Point them at the pack's bundled lens textures
  • enable_bloom / enable_anam_flare / enable_godray - the three that sell the cinematic look
  • bloom_threshold - how much of the image is allowed to flare (start high, 0.8+)

One IMAGE out.

Install

Standard pack install:

cd ComfyUI/custom_nodes
git clone https://github.com/TrophiHunter/ComfyUI_Photography_Nodes

Restart, find it under TrophiHunter/Photography. No requirements beyond the pack's torch/PIL - the "dependencies" here are the texture assets, which ship in the repo.

Where people get burned

With every sub-effect enabled at defaults (which they are), the output can be a full-on lens festival - dirt everywhere, streaks, ghosts, rays. If it looks like a JJ Abrams fever dream, it's working as intended, and the fix is brutal curating: enable only what the shot needs. Also the defaults assume you have the textures wired; leaving tex_dirt/tex_sprite unwired makes the node error, so wire them first, then start disabling effects. And this is a late-chain effect - it's a lens artifact, so it goes after color grading but before final grain, same family as Chromatic Aberration.

CategoryTrophiHunter/Photography

Inputs (53)

NameTypeDefaultDescription
imageIMAGE
tex_dirtIMAGE
tex_spriteIMAGE
enable_bloomBOOLEANtrue
bloom_thresholdFLOAT0.8000–1
bloom_amountFLOAT0.8000–1.5
bloom_saturationFLOAT0.8000–1.5
bloom_tint_rFLOAT0.7000–1
bloom_tint_gFLOAT0.8000–1
bloom_tint_bFLOAT1.0000–1
bloom_mixmodeINT20–2
enable_lensdirtBOOLEANtrue
lensdirt_intensityFLOAT0.4000–1
lensdirt_saturationFLOAT2.0000–4
lensdirt_tint_rFLOAT1.0000–1
lensdirt_tint_gFLOAT1.0000–1
lensdirt_tint_bFLOAT1.0000–1
lensdirt_mixmodeINT10–2
enable_anam_flareBOOLEANtrue
anam_flare_thresholdFLOAT0.9000–1
anam_flare_amountFLOAT14.500–40
anam_flare_curveFLOAT1.2000–2
anam_flare_color_rFLOAT0.0120–1
anam_flare_color_gFLOAT0.3130–1
anam_flare_color_bFLOAT0.5880–1
anam_flare_blur_strengthFLOAT0.9000–1
anam_flare_blur_kernel_sizeINT171–127
enable_lenzBOOLEANtrue
lenz_thresholdFLOAT0.8000–1
lenz_intensityFLOAT1.0000–1
enable_chap_flareBOOLEANtrue
chap_flare_thresholdFLOAT0.8000–1
chap_flare_countINT151–127
chap_flare_dispersalFLOAT0.2500–1
chap_flare_sizeFLOAT0.4500–1
chap_flare_ca_rFLOAT0.000–1
chap_flare_ca_gFLOAT0.010–1
chap_flare_ca_bFLOAT0.020–1
chap_flare_intensityFLOAT100.000–100
enable_godrayBOOLEANtrue
godray_decayFLOAT0.9900–1
godray_exposureFLOAT1.0000–1.5
godray_weightFLOAT1.2500–1.5
godray_densityFLOAT1.0000–1.5
godray_thresholdFLOAT0.9000–1
godray_samplesINT1281–1024
enable_flare_colorBOOLEANtrue
flare_luminanceFLOAT0.0950–1
flare_blurFLOAT200.00–400
flare_intensityFLOAT2.070–4
flare_tint_rFLOAT0.1370–1
flare_tint_gFLOAT0.2160–1
flare_tint_bFLOAT1.0000–1

Outputs (1)

NameTypeDescription
IMAGEIMAGE