Vignette Effect
The cheap shortcut to 'this was shot on a lens'
- image
- IMAGE
Real lenses darken at the edges. It's called vignetting, every cheap or wide-open lens does some of it, and diffusion models almost never generate it - which is one of those subtle tells that an image is AI. Vignette Effect from TrophiHunter's Photography Nodes pack is the fix: it darkens the corners of your image toward a lens-like falloff, and it's one of the highest value-per-effort moves you can make in a photorealism pipeline. That and a hint of film grain is most of the distance between "render" and "photo."
How it works
The node builds a mask from each pixel's distance to the center of the frame, normalized to an ellipse (or circle - your pick). Then it applies an exponential falloff whose shape is governed by two knobs: falloff_size controls how quickly the darkening builds toward the edges, and sigma softens the transition. The mask is multiplied into the image, and opacity blends the whole thing back so you can dial it from "barely there" to "tunnel vision." It's all tensor math on the GPU - effectively free, and it handles batches of frames no problem.
Inputs that matter
image- IMAGE in, IMAGE out.strength- 0 to 1, default 1. Overall intensity of the darkening.vignette_size- 0 to 1, default 0.8. How far from the center the falloff starts. Lower = the vignette starts closer to the middle (stronger corners).vignette_shape-ellipse(default, matches a wide frame) orcircle.falloff_size- 0 to 1, default 0.8. Higher is a harsher, more defined edge; lower is a longer, gentler roll-off.sigma- 0 to 1, default 0.7. Softness of the transition.opacity- 0 to 100, default 100. The blend amount, Photoshop-style.
The output IMAGE wires into your Save or Preview. In the pack's example workflow it comes after the sharpen group - the right order, since sharpening after a vignette would sharpen the vignette's own edges.
Installing it
Part of the Photography Nodes pack:
cd ComfyUI/custom_nodes
git clone https://github.com/TrophiHunter/ComfyUI_Photography_Nodes
# restart, then find it under TrophiHunter/Photography
Or ComfyUI Manager → search "Photography Nodes" by TrophiHunter. No models, no extra dependencies - it's pure torch.
Troubleshooting
The defaults are strong: full opacity, strength 1. That's a dramatic corner darkening that reads as "instagram filter" on most images. For the subtle lens look, drop opacity to 50–70 and strength to around 0.5, then taste from there. If you pick circle on a wide image, the vignette clips top and bottom - that's expected, since a circle is sized to the width. And if the falloff edge looks like a hard ring, lower falloff_size and raise sigma until it disappears. Done right, nobody can point at the corners and tell you why it feels like a photograph.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| strength | FLOAT | 1.0000–1 | — |
| vignette_size | FLOAT | 0.8000–1 | — |
| vignette_shape | COMBO | ellipse | 2 options: ellipse, circle |
| falloff_size | FLOAT | 0.8000–1 | — |
| sigma | FLOAT | 0.7000–1 | — |
| opacity | INT | 1000–100 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |