ComfyUI Node Runs on cloud

Layer Glow

That halo behind cut-outs and titles, without leaving ComfyUI

By WASasquatch·Created 3 years ago·Updated 4 days ago· 1,844
Layer Glow
  • layers
  • layers
layer_index-1
layer_name
glow_typeouter
size16
spread0.00
color#ffcc66
opacity0.75
blend_modenormal

Layer Glow is the node you reach for when a cut-out subject or a title sits on a busy plate and just disappears into it. An outer glow lays a soft halo of light behind the layer's own pixels - the classic "text needs to read over anything" trick - and an inner glow burns in from the edge, which reads as a rim light rather than a shadow. It's one of the per-layer effects WAS Node Suite v3 added on top of the native LAYERS stack, and it bakes straight into one layer without touching the rest of your composite.

How it works

This node operates on a LAYERS document, the wire type the whole compositor side of this pack speaks. Somewhere upstream, Add Layer (or Layers from Image Batch, or Layers From Bounding Boxes) put pictures into a stack; you pick the layer to light with layer_index or layer_name, and the glow is rendered into that layer's picture and transparency. The stack comes out the layers output unchanged except for that one baked layer, so you can chain another effect behind it and finish with Create Layered Image flattening the lot.

The mechanism is worth knowing because it explains the knobs. The node takes the layer's alpha (what it actually covers), grows it by size, blurs it, tints it your color, and composites it behind the layer. spread is the share of size spent hardening the edge rather than blurring it: 0.0 is a smooth falloff, 0.5 gives a bright core with a soft rim, 1.0 is basically a hard band. So spread 0 looks like a bloom, spread 1 looks like a sticker edge.

A couple of details the tooltips call out that will save you confusion: an outer glow grows that layer's picture and shifts it back on the canvas, so the layer stays where it was visually - nothing slides sideways. And because the halo sits behind the layer's own coverage, a layer that fills its whole frame glows as one big uniform wash. The glow only reads where there's transparency or a mask around the subject. If you want a glow that spills off a plate edge, put a Layers Canvas on the stack first so there's room for it to bleed.

The inputs that matter

  • glow_type - outer halo vs inner rim light.
  • size - how far the light reaches in pixels. 4 is a tight rim, 16 a readable halo, 64 a broad bloom.
  • spread and opacity - edge hardness and strength. A natural glow is low spread, opacity around 0.75.
  • color - hex string; #ffcc66 warm and #66ccff cool both read nicely against dark plates.
  • blend_mode - how the light mixes where it overlaps the layer. screen is your friend; it lightens without flattening the layer underneath.

You pick the layer by layer_index (0 = bottom, -1 = top) or by layer_name if you named things going in. Name matching is case-insensitive, and an empty name falls back to the index.

Installing it

Glow ships in the WAS Node Suite pack, so you install the whole suite once:

cd ComfyUI/custom_nodes
git clone https://github.com/WASasquatch/was-node-suite-comfyui.git

Or use ComfyUI Manager and search "WAS Node Suite v3". The v3 rewrite needs ComfyUI 0.14.0+ and Python 3.10+. Nothing gets pip-installed - v3 runs no requirements of its own, so ignore any old thread telling you to pip install -r requirements.txt (that was v2 advice). First start takes a second or two longer while it writes its config.yaml under <ComfyUI user dir>/was-node-suite/.

Where people trip

The "why is my glow invisible" case is almost always a layer that covers its whole rectangle - there's no edge for the halo to hang off. Trim the cut-out first or mask it. The opposite failure is a glow so broad it eats the picture; keep size under ~20% of the layer's shortest side unless you deliberately want a bloom pass. And if the glow looks flat, it's usually spread too high killing the falloff - drop it toward 0.0 before you start chasing opacity.

CategoryWAS Suite/Image/Layers

Inputs (9)

NameTypeDefaultDescription
layersLAYERSThe stack holding the layer to light. Wire in Add Layer, Layers From Bounding Boxes, or another layer effect to stack effects up.
layer_indexINT-1-1000–1000Which layer to light when layer_name is empty. -1 = the top of the stack, -2 = the one below it, 0 = the bottom, 1 = the next one up.
layer_nameSTRINGName of the layer to light, matched ignoring case and spare space. Empty reads layer_index instead. 'subject' picks the layer Add Layer was given that name.
glow_typeCOMBOouterWhich side of the edge the light spreads over. `outer` sits behind the layer as a halo and grows it, `inner` burns in from the edge and grows nothing.
sizeINT160–128How far the light reaches, in pixels. 4 = a tight rim, 16 = a readable halo, 64 = a broad bloom, 0 = nothing drawn.
spreadFLOAT0.000–1Share of size spent hardening the glow rather than blurring it. 0.0 = a smooth falloff, 0.5 = a bright core with a soft rim, 1.0 = a hard band.
colorSTRING#ffcc66Colour of the light, as hexadecimal digits. #ffffff = white, #ffcc66 = warm, #66ccff = cool. Three digits such as #fc6 work too.
opacityFLOAT0.750–1How strongly the light is laid down. 1.0 = solid, 0.75 = a clear halo, 0.0 = nothing.
blend_modeCOMBOnormalHow the light mixes with the layer's own pixels where the two overlap. `normal` lays the colour down as it is, `screen` lightens without flattening, `linear-dodge` blows the edge out.

Outputs (1)

NameTypeDescription
layersLAYERSThe stack with the glow baked into that layer's picture and transparency. Wire it into Create Layered Image or the next effect.