Nodes/ComfyUI-Image-Effects/๐Ÿ’ก Light Leaks
ComfyUI Node

๐Ÿ’ก Light Leaks

Fake film-era flare without leaving ComfyUI

By orion4dยทCreated about a year agoยทUpdated about a year agoยท 28
๐Ÿ’ก Light Leaks
  • image
  • IMAGE
โ—„leak_intensity0.40โ–บ
โ—„leak_colorwarmโ–บ
โ—„leak_count2โ–บ
โ—„leak_positionrandomโ–บ
โ—„blur_amount0.50โ–บ
โ—„custom_hue30โ–บ

Light leaks are the streaks of colored light that bleed onto film when a camera body isn't perfectly light-tight - an accident that people spent decades trying to avoid and now spend money trying to fake. This node hands you that accident as a slider, the way the real thing works: instead of calling any API or running a model, it paints soft colored blobs over your image and blurs them until they look like light spilling through a lens.

If you've ever looked at a "vintage photography" LoRA or preset and wanted just the lighting part without regenerating, this is the cheap post-process version. You can drop it at the end of any workflow - Load Image โ†’ Light Leaks โ†’ Preview - and it fits the same slot the WAS Node Suite and other image-effect packs fill, only with a much smaller footprint. AI-generated images don't naturally come with lens artifacts, so adding them in post is genuinely the standard move for that "shot on film in 1995" look.

What it actually does

The node picks a palette, chooses one or more spots in the frame, and stamps a radial gradient mask there - brightest at the center, fading out with distance, with some noise so it doesn't look like a gradient ramp. That mask is Gaussian-blurred (the blur_amount slider) and then added onto your image in color. It's additive light, so it brightens whatever it touches rather than covering it up, which is what separates a light leak from a vignette or a color overlay.

The knobs that matter:

  • leak_intensity (default 0.4) - how strong the effect is. This is the one you'll actually turn. Start at 0.2 and nudge up; 0.8+ is basically a color wash.
  • leak_color - preset palettes: warm, cool, rainbow, vintage, or custom. Pick custom and the custom_hue slider (0โ€“360) becomes your single color.
  • leak_count (1โ€“5) - how many separate leaks to paint. More than 2 gets busy fast on a portrait; 3+ shines on landscapes.
  • leak_position - random, corners, edges, or center. Corners reads most like a real camera; center is the deliberate "lens flare" look.
  • blur_amount - soften the blobs. Crank it if the edges of the leak look like a hard circle instead of light.

Output is a single IMAGE, so it plugs straight into Preview, Save, or anything downstream.

One honest warning

The leaks are placed with unseeded randomness. There's no seed input, so every run re-rolls where the leaks land. That's fine when you're iterating on the vibe, annoying when you finally nail it and want that exact frame back - rerun and the angle shifts slightly. It's a minor reproducibility sin, common in this pack, but worth knowing before you use it in a batch you plan to compare.

Install

ComfyUI Manager is the easy path: search for ComfyUI-Image-Effects and install. Manual, it's the standard three lines:

cd ComfyUI/custom_nodes
git clone https://github.com/orion4d/ComfyUI-Image-Effects.git
cd ComfyUI-Image-Effects
pip install -r requirements.txt

Then restart ComfyUI. No model files to download - this is pure CPU image math (numpy/OpenCV), so it works offline and on any machine that runs ComfyUI at all. It'll show up under right-click โ†’ Add Node โ†’ Image Effects.

Issues people actually hit

Because the whole pack runs on CPU, don't feed it a batch or a video and expect it to chew through frames - the node only processes the first image in a tensor. And since it's additive color math on top of your image, a leak will blow out already-bright areas; if your whites clip, drop leak_intensity rather than blaming the node.

CategoryImage Effects

Inputs (7)

NameTypeDefaultDescription
imageIMAGEโ€”
leak_intensityFLOAT0.400โ€“1โ€”
leak_colorCOMBOwarm5 options: warm, cool, rainbow, vintage, custom
leak_countINT21โ€“5โ€”
leak_positionoptCOMBOrandom4 options: random, corners, edges, center
blur_amountoptFLOAT0.500โ€“1โ€”
custom_hueoptFLOAT300โ€“360โ€”

Outputs (1)

NameTypeDescription
IMAGEIMAGEโ€”