Vignette
Vignette — 102 real lens profiles for falloff that looks optical, not Instagram
- image
- image
Vignette is Darkroom's answer to the fact that real lenses darken the corners of the frame and AI images almost never do. Real optics lose light toward the edge - a natural cos⁴ falloff plus mechanical shading from the lens barrel - and that subtle corner darkening is one of the small physical tells that separates a render from a capture. Most "vignette" tools are a radial gradient slapped on top; this one simulates the optics, and it ships with 102 real lens profiles so you can add the exact falloff a Canon 50mm f/1.2 or a vintage prime would produce, or build your own from physics.
The photorealistic use is obvious and it's the honest one: a slight vignette is part of how photos look. But the larger-value use is creative - vignetting draws the eye to the subject, and with the intensity slider going negative it does the opposite (anti-vignette, brightening corners to correct a real lens's falloff). The lens dropdown is the fastest way to get a plausible, non-cartoonish amount: pick a real lens, keep the defaults, adjust intensity.
How it works
The node builds a falloff mask from the center of the frame. With cos4_falloff on (default), it models the physical cos⁴ illumination law - light intensity drops off with the fourth power of the off-axis angle - combined with a mechanical-vignetting transition whose start is set by midpoint and smoothness by feather. roundness stretches the mask from a circle into an ellipse to match sensor/frame shape. Per-channel tint multipliers let the vignette carry a color cast, which is what real lens falloff often does (warmer or cooler corners). The 102 lens profiles just pre-set these parameters to measured optical characteristics; Custom gives you every knob by hand.
The inputs that matter
- lens (103 choices, default Custom) - Canon EF primes and zooms, plus Nikon, Sony, and more. Select a lens for instant realistic values, or Custom for full manual control.
- intensity (−1 to 1, default 0.5) - darkening strength. Negative = anti-vignette (brighten edges), which is how you correct a real lens's falloff on a captured image.
- midpoint (0.1–1, default 0.5) - where falloff begins: 0.1 starts almost at the center, 1.0 keeps the corners-only until the very edge.
- roundness (0.3–2, default 1) - 1.0 is circular, <1 makes a wide ellipse, >1 a tall one.
- feather (0.05–1, default 0.4) - transition smoothness; higher is more gradual.
- cos4_falloff (bool, default true) - the physically-based law on/off. Leave it on; the linear falloff mode is for when you want a flatter, more graphic edge.
- tint_r / tint_g / tint_b (0.5–1.5, default 1) - corner color cast: warm (>1 on red) or cool (>1 on blue).
Output is image. It's spatial, so it stays out of the LUT bake chain - apply after Extract, on the final image.
Install & notes
Standard Darkroom install: Manager → search "Darkroom", or git clone https://github.com/jeremieLouvaert/ComfyUI-Darkroom + pip install -r requirements.txt + restart. The lens data ships in the repo; no downloads.
The trap is subtlety inverted: a vignette that's visible is usually too strong. Real optical falloff is something you feel more than see. Start at intensity 0.3 or below, check the corners at 100%, and if anyone can point at it, halve it. And for a subject-focused creative vignette, keep midpoint around 0.5–0.6 so the falloff doesn't eat the model's face at the frame edge.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| lens | COMBO | Custom | Select a real lens or 'Custom' for manual vignette control |
| intensity | FLOAT | 0.50-1–1 | Darkening intensity. Negative = anti-vignette (brighten edges) |
| midpointopt | FLOAT | 0.500.1–1 | Where falloff begins. 0.1=near center, 1.0=only at corners |
| roundnessopt | FLOAT | 1.00.3–2 | Shape: 1.0=circular, <1=wide ellipse, >1=tall ellipse |
| featheropt | FLOAT | 0.400.05–1 | Transition smoothness. Higher = more gradual falloff |
| cos4_falloffopt | BOOLEAN | true | Use physically-based cos^4 light falloff law |
| tint_ropt | FLOAT | 1.000.5–1.5 | Red tint in vignetted areas. >1 = warm vignette |
| tint_gopt | FLOAT | 1.000.5–1.5 | Green tint in vignetted areas |
| tint_bopt | FLOAT | 1.000.5–1.5 | Blue tint in vignetted areas. >1 = cool vignette |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |