Image Vignette & Glow ✨
Vignette for the cinematic frame, bloom for the brights — two film looks, one node
- image
- image
Two of the most-used "make it look like cinema" effects in one node, applied in the right order, each independently disable-able. Image Vignette & Glow is the finishing-pass node for anyone who wants their render to read like it came off a lens and a sensor rather than out of a latent space.
The two halves work separately, so let's take them apart.
Glow/bloom first (it's applied first internally): pixels above glow_threshold (default 0.8, so the bright highlights) are extracted into a bright-pass copy, that copy is blurred, and the blurred brights are added back on top of the original at glow_strength (default 0.5). That's the standard bloom recipe - extract the brights, blur them, add them back - and it's what makes neon signs, windows, and specular highlights "leak" light into their surroundings. glow_radius controls how far that leak spreads (the blur kernel, 1–63). Set glow_strength to 0 and this half turns off entirely.
Vignette second: a radial darkening from the center outward. vignette_radius (default 1.0) controls where the falloff starts - 1.0 reaches the corners of the frame, smaller brings the darkening in tighter, larger pushes it out. vignette_amount (default 0.35) controls how dark the corners get. Set it to 0 and the vignette half is off.
Output is the single graded image. It's pure PyTorch, deterministic, milliseconds - the kind of node you drop at the end of a pipeline right before save and never think about again.
Why you'd reach for it: this is the composition of two moves that the "make AI look real" recipe keeps circling back to. The community's standing list for anti-AI-look finishing is motion blur + camera shake + grain + red-channel aberration + vignetting - and vignette is the one that instantly says "shot through a lens" by concentrating the eye on the center of the frame. Combined with the pack's Image Noise Inject (grain) you can knock out two slices of that list with a single pair of nodes.
Honest calibration: glow_threshold at 0.8 means only genuinely bright pixels bloom - good for highlights. Drop it toward 0.3–0.5 and you're glowing the whole sky, which reads as dreamy/analog rather than film. And both effects are global - there's no mask input here, so you can't vignette only part of a frame or exclude a face from the bloom. For localized glow, that's what the pack's Image Mask Composite (blur effect on a mask) is for. Two different tools, both useful, and knowing which is which is half the battle.
Install
Part of OmniNodes:
cd ComfyUI/custom_nodes
git clone https://github.com/TensorVizion/OmniNodes
Restart ComfyUI, or install "OmniNodes" via ComfyUI Manager. No extra dependencies - pure PyTorch.
Troubleshooting
- Everything is glowing -
glow_thresholdtoo low. Keep it near 0.7–0.85 for highlight-only bloom. - Corners too dark / not dark enough -
vignette_radiuspushes the falloff in/out,vignette_amountsets how dark. They're separate axes. - One effect not applying - check you didn't zero out that half's amount (glow →
glow_strength, vignette →vignette_amount).
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| vignette_amount | FLOAT | 0.350–1 | — |
| vignette_radius | FLOAT | 1.000.2–2 | — |
| glow_threshold | FLOAT | 0.800–1 | — |
| glow_strength | FLOAT | 0.500–2 | — |
| glow_radius | INT | 151–63 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |