Nodes/ER VFX Nodepack/ER Lens Effects
ComfyUI Node

ER Lens Effects

Make AI images stop looking like they came out of a phone lens

By esperandoelrender·Created 2 days ago·Updated 2 days ago· 0
ER Lens Effects
  • images
  • images
params{}

Diffusion images have perfect optics, and perfect optics read as "AI." Real photographs come out of imperfect lenses - a little barrel distortion here, chromatic fringing toward the edges, a vignette you barely notice, softer corners. ER Lens Effects is the one-stop node for putting that imperfection back, from the ER VFX Nodepack by Héctor Gallego (ER Academy). It's the photographic lens simulation you'd otherwise need three or four separate nodes (or a trip to Photoshop) to assemble.

And it's a look tool as much as a repair tool: distortion is also how you push toward fisheye or anamorphic character, and the presets are there to get you started rather than leave you at neutral.

What it does

The node stacks, in order: distortion (Brown-Conrady barrel/pincushion with a fine k2 adjustment, corners pinned so the frame doesn't swim), chromatic aberration (radial RGB fringing toward the edges), a vignette with amount, softness and a movable center, sharpen (proper unsharp-mask, not a "clarity" lie), a soft highlight glow, corner softness, diffusion (Pro-Mist-style bloom lift) and halation (reddish bleed on the highlights).

Seven lens presets - modern prime, vintage prime, vintage anamorphic, fisheye, smartphone, dreamy diffusion, old film - pre-fill the values as starting points, and everything stays editable after. Per-value and per-group reset buttons plus an A|B before/after toggle mean you can audition a preset without committing.

How the preview works

Like every node in this pack, the live preview runs in the browser with the same math as the Python render. Connect an image (or run once) and the preview loads automatically; the final render goes through the images output at full resolution when you run. Inputs are just images plus a params string the UI serializes the controls into - you interact with the sliders on the node's face, not with sockets.

The knobs a beginner actually sets

  • Lens preset first, always - it's the starting point, not the answer.
  • Distortion small amounts tell the truth about cheap lenses; larger positive goes barrel (fisheye-ish), negative pinches to pincushion.
  • Chromatic aberration - a little reads as a real lens, a lot reads as a broken render. Think single-digit percentages.
  • Diffusion / halation are the two that do the heavy lifting against the "AI clean" look - they soften the clinical sharpness and warm up highlights.

The unsharp-mask relationship is worth knowing from the KB's post-processing doc: sharpen is blur-and-difference, so the two knobs are radius (what counts as "detail") and amount (how hard to add it back) - crank amount and you get halos, which is exactly what the node's halation control is for, minus the glow.

Installing

Ships as part of the ER VFX Nodepack, alongside ER Lens Flare, ER Camera Defocus and ER Lens Camera Dirt (all live under image/adjust). ComfyUI Manager → search "ER VFX Nodepack" → install, or:

cd ComfyUI/custom_nodes
git clone https://github.com/esperandoelrender/ComfyUI-ER-VFX-Nodepack.git

Restart and search "ER". No extra dependencies or model downloads. If you previously installed the standalone er_lens_fx pack, delete it first - this pack replaces it and duplicate registrations will confuse ComfyUI.

Where it slots in: at the very end of your workflow, after upscaling and compositing - lens effects are a finishing pass on the final image, and applying them earlier just gets them blurred away by whatever comes next.

Categoryimage/adjust

Inputs (2)

NameTypeDefaultDescription
imagesIMAGE
paramsoptSTRING{}

Outputs (1)

NameTypeDescription
imagesIMAGE