W_HSL_Glow

Glow with Intent. Target your colors, control your bloom.

First submitted: 23 October 2026

Updated: 24 October 2026

Author: Wes Heo

Website: https://www.linkedin.com/in/wesheo/

Compatible Nuke versions: 13.0 or later

Compatibility: Linux, Windows

Back in 2018, I built a tool to get better control over what generates a glow in a scene. The original still works today, but I always wanted to take it to the next level. Using Gemini to handle the coding heavy lifting finally unlocked the custom BlinkScript and PySide architecture I needed to make it happen.

W_HSL_Glow v2.0

Most glow tools rely on a simple luminance threshold. This makes isolating a practical LED, a neon sign, or an explosion not very straightforward—often requiring multiple glow nodes in isolation or tedious roto masks to prevent blowing out the rest of the plate.

W_HSL_Glow solves this by pairing an energy-conserving exponential blur with a custom HSL / OKLab extraction engine. Instead of fighting luma thresholds, you can use the built-in PySide Visualizer to flexibly target up to 5 specific hues. Each hue has its own mix control, paired with a global invert toggle for easy color exclusion (e.g., keeping fire out of a global glow)—generating a smooth, controlled bloom.

Key Features:

Precision Color Extraction (HSL & OKLab):

Go beyond luminance. Target up to 5 distinct hue slices simultaneously. Perfect for blooming a specific tail light, a blue neon sign, or an explosion without inadvertently glowing bright neutral sky pixels. Each hue target features its own Mix slider, paired with a global Invert toggle, allowing you to easily exclude specific color ranges (like omitting fire from a global glow) without rotoscoping.

Advanced PySide Visualizer UI: demo

Click "Open Advanced Visualizer..." to launch an interactive, floating HUD. Manipulate your 5 hue targets on a dynamic color wheel, and shape asymmetric band-pass, high-pass, or low-pass curves for Luminance and Saturation with intuitive, modifier-enhanced drag controls.

Viewer Eyedropper Sync: demo

Pick a color directly from your Nuke viewer, and the node instantly calculates the exact HSL/OKLab angle, enables a new Hue slice, and updates the visualizer UI to match.

Energey-Conserving Exponential Pyramid: demo

The blur pyramid uses an exponential tilt algorithm ("Diffusion") to deliver both expansive reach and optical consistency.

Algorithmic Elegance: Rather than forcing the top of the pyramid to compute massive 2048 or 4096 blur sizes to achieve a wide spread, this model hits those same atmospheric scales using highly efficient, constant internal radii—topping out at just 512 pixels at the default size.

Energy Conservation: As you shift the glow from a tight specular core to a wide haze, the overall energy is perfectly conserved. The perceived brightness remains locked, eliminating the need to constantly ride the Intensity slider to compensate for a wider spread.

Plate Sanitization & 5-Color Diagnostics: demo

A single NaN pixel hitting a 2048px blur will turn half your frame into a black hole, and an Inf will blow out the entire image. W_HSL_Glow features an upstream kernel that automatically intercepts and nullifies NaNs, Infs, and negative values before they can destroy your blur pyramid. Switch to Diagnostics mode to view a tonemapped, false-color overlay over your plate to instantly spot NaNs (Red), Infs (Magenta), Negatives (Cyan), Over-Ceiling pixels (Yellow), and active Keyed areas (Green). Adjust the diagnostic plate gain or saturation to pick viewer hues with precision.


Hue-Preserving Soft-Knee Ceiling Limiters:

Limit Source Max: Tame runaway firefly pixels or heavily overexposed lights before core extraction. By constraining extreme energy solely within the keying pipe, you prevent the resulting bloom from blowing out, while leaving pixels in your original source plate completely untouched.

Limit Output Max: Cap the final merged output peak to safely meet the strict QC limits of picky clients and supervisors.

Crucially: Both limiters scale RGB proportionally based on the peak channel, delivering a smooth, hue-preserving roll-off rather than a destructive hard clamp.

Dynamic Size Reach (Optimized Performance):

The Size< slider doesn't just multiply blur radii; it governs a smart reach envelope to optimize performance. At small sizes (e.g., 0.5), it utilizes 8 blurs. At default (1.0), it uses 10 blurs, and dynamically scales up to 12 blurs at larger sizes (2.5+). Wide outer octaves are mathematically zeroed and bypassed when not needed, saving crucial CPU/GPU cycles.

Smart BBox Management:

Choose between containing the glow to the Format, locking it to an incoming CG element's BBox, or letting it expand uncropped, paired with a luminance-weighted soft border.

Self-Healing Architecture & Built-In Documentation:

Sharing BlinkScript tools across different studio pipelines often causes version-mismatch errors. W_HSL_Glow features a self-healing onCreate routine that automatically detects Nuke version changes and recompiles its internal GPU kernels on the fly. You can also manually trigger this via the Recompile / Relink Kernels button located in the node's Info tab, which also houses a complete cheat sheet for all Visualizer UI modifiers and shortcuts.

Important: Please be sure to read the included README file after downloading for comprehensive setup instructions and additional details.

W_HSL_Glow is free for personal and commercial use, and free to share. I’ve deliberately left the BlinkScript and Python code unlocked for educational purposes. Please respect the work: do not extract or repurpose the internal code to distribute as your own tool.

or register to download or rate.

Comments

or register to join the conversation.

Download Verification