Nodes/OmniNodes/Image Vignette & Glow ✨
ComfyUI Node

Image Vignette & Glow ✨

Vignette for the cinematic frame, bloom for the brights — two film looks, one node

By TensorVizion·Created 3 months ago·Updated about 8 hours ago· 0
Image Vignette & Glow ✨
  • image
  • image
vignette_amount0.35
vignette_radius1.00
glow_threshold0.80
glow_strength0.50
glow_radius15

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_threshold too low. Keep it near 0.7–0.85 for highlight-only bloom.
  • Corners too dark / not dark enough - vignette_radius pushes the falloff in/out, vignette_amount sets 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).
CategoryTensorVizion/Image

Inputs (6)

NameTypeDefaultDescription
imageIMAGE
vignette_amountFLOAT0.350–1
vignette_radiusFLOAT1.000.2–2
glow_thresholdFLOAT0.800–1
glow_strengthFLOAT0.500–2
glow_radiusINT151–63

Outputs (1)

NameTypeDescription
imageIMAGE