Nodes/ComfyUI-CustomNodePacks/Layer Effect: Outer Glow (MEC)
ComfyUI Node

Layer Effect: Outer Glow (MEC)

Outer glow without the paint-bucket look

By Code2Collapse·Created 7 months ago·Updated 2 days ago· 56
Layer Effect: Outer Glow (MEC)
  • layer_image
  • background_image
  • layer_mask
  • image
  • effect_mask
  • report
invert_masktrue
blend_mode
opacity100
brightness5
glow_range48
blur25
light_color#FFBF30
glow_color#FE0000
dissolve_seed0

What it is

A halo around the subject, extending outward from the matte. It's a compositing effect with two very different jobs: the optical one (a practical light bleeding, neon, a screen glow, lens bloom faked in post) and the graphic one (the esports-logo rim light that makes a sticker pop off a background). Same node, wildly different settings.

The LayerEffect nodes in this pack are a torch-native port of chflame163's ComfyUI_LayerStyle drop shadow / glow / stroke family - the eight layer effects, standalone, with no upstream dependency. That matters if you've looked at upstream's install: it's a few hundred nodes, a README heavy enough that brave browsers give up rendering it, a big dependency list, and a handful of nodes that phone home to Google's API if you give them a key. Several community threads asked whether it was safe to install and the honest answer was "the deps are mostly ML libraries, but it's a wide surface". Eight effects don't justify that.

How the glow is built

The matte is grown outward by glow_range and blurred, then the node runs a gradient from the glow colour at the inner edge to the light colour at the outer edge across brightness passes - the tooltip calls brightness the "number of glow passes from core to edge", and it's what gives the halo a gradient instead of a flat smudge. The result is blended onto the plate with the chosen blend_mode and opacity, then the layer is composited on top through its matte.

The default blend mode for the glow nodes is a light-mode list - screen, linear dodge(add), color dodge, lighten and friends sit at the top of the dropdown, because that's what a glow is. Using multiply here is legal and produces a shadow, which is not what you asked for.

effect_mask is the glow footprint: the band outside the subject, not the subject itself. Wire it if you want to grade, blur or grain the glow independently - that's the difference between a glow and light.

Inputs

  • layer_image - the layer. Alpha is used if no mask is wired.
  • layer_mask (optional) - the matte. One of the two is required; a plain 3-channel image with nothing wired raises needs a layer mask.
  • invert_mask - defaults to true, and it inverts. With a standard white-on-subject matte the default makes your background the layer, which is the fastest way to conclude the node is broken. Check this first.
  • brightness - 2–20, default 5. Passes from core to edge. Higher is a denser, more saturated core.
  • glow_range - the initial spread before blur. Clamped internally to frame size, so a silly number is survivable.
  • blur - default 25. For a light bleed this is your real softness control; for a graphic rim you want it low.
  • light_color and glow_color - two stops, inner to outer. Defaults are orange-to-red; neon green inside with cyan outside is the classic screen-glow cheat.
  • blend_mode (30 modes), opacity, dissolve_seed - dissolve is stochastic; the seed is a fixed widget here so it doesn't crawl frame to frame, where upstream reseeded per frame and flickered.
  • background_image (optional) - the plate. Empty means a transparent canvas, i.e. black in the RGB output; that's actually the right way to isolate the glow pass for a later screen composite.

Outputs: image, effect_mask, report.

Getting a good one

A glow that reads as light, rather than as a colour wash, is almost always: low opacity, big blur, small range, and a blend mode that only adds. Start at glow_range 20, blur 40, opacity 40, screen. Then push brightness until the core holds together and no further. If you can see the matte in the result - hard edges under the glow - your glow_range is too small relative to the blur.

For a graphic rim instead: glow_range 6–10, blur 0–4, opacity 100, linear dodge(add), and pick both colours identically.

Install

ComfyUI Manager → search "CustomNodePacks", or:

cd ComfyUI/custom_nodes
git clone https://github.com/Code2Collapse/ComfyUI-CustomNodePacks

Restart ComfyUI. Required pack deps are opencv-python, scipy, safetensors; this node is tier 1 and loads no model. The README's blunt warning applies: don't run pip install -r requirements.txt blind - it lists libraries ComfyUI already provides - check pip list first.

Common issues

  • The glow is inverted / around the background. invert_mask. Always invert_mask.
  • A rectangle of glow. A mask size mismatch used to be silently replaced with solid white upstream - that's fixed here, so if you see it you're on an old commit. Update the pack.
  • It looks like a sticker. brightness too high and blur too low. The glow is supposed to fall off; if it has a defined outer boundary, it isn't glowing, it's outlined.
CategoryMEC/LayerEffects

Inputs (12)

NameTypeDefaultDescription
layer_imageIMAGE
invert_maskBOOLEANtrue
blend_modeCOMBO30 options: screen, linear dodge(add), color dodge, lighten, dodge, hard light, +24
opacityINT1000–100
brightnessINT52–20Number of glow passes from core to edge.
glow_rangeINT48-9999–9999Initial spread for the outer glow; clamped to frame size.
blurINT250–9999
light_colorSTRING#FFBF30
glow_colorSTRING#FE0000
dissolve_seedINT00–2147483647Only used by the 'dissolve' blend mode. Upstream reseeds every frame, so a dissolve flickers through a sequence; a fixed seed here holds still.
background_imageoptIMAGE
layer_maskoptMASK

Outputs (3)

NameTypeDescription
imageIMAGE
effect_maskMASK
reportSTRING