๐ก Light Leaks
Fake film-era flare without leaving ComfyUI
- image
- IMAGE
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, orcustom. Pickcustomand thecustom_hueslider (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, orcenter. Corners reads most like a real camera;centeris 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.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | โ | |
| leak_intensity | FLOAT | 0.400โ1 | โ |
| leak_color | COMBO | warm | 5 options: warm, cool, rainbow, vintage, custom |
| leak_count | INT | 21โ5 | โ |
| leak_positionopt | COMBO | random | 4 options: random, corners, edges, center |
| blur_amountopt | FLOAT | 0.500โ1 | โ |
| custom_hueopt | FLOAT | 300โ360 | โ |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | โ |