ComfyUI Node Runs on cloud

Layer Bevel

Give a title or badge a physical edge without any 3D

By WASasquatch·Created 3 years ago·Updated 4 days ago· 1,844
Layer Bevel
  • layers
  • layers
layer_index-1
layer_name
styleinner
depth1.00
directionup
size8
soften2
angle135
altitude30
highlight_color#ffffff
highlight_opacity0.75
highlight_blend_modescreen
shadow_color#000000
shadow_opacity0.60
shadow_blend_modemultiply

Text on a flat canvas reads as text on a flat canvas. The moment you give it a bevel - a lit slope running along its edge - it reads as a physical object sitting on the plate, a button, a badge, an embossed logo. That look used to mean Photoshop layer styles; in WAS Node Suite v3 it means WAS Layer Bevel, which builds a slope from the edge of one layer in a stack and lights it. No 3D render, no geometry - just an edge, a slope, and a light.

The node works on one layer of a LAYERS stack, chosen by layer_index (negative counts from the top; -1 is the front) or layer_name. Then style picks where the slope goes: inner runs inside the edge and grows nothing, outer runs outside it and grows the layer (like a stroke with depth), and emboss straddles the edge and grows it too. The tooltip flags the one real gotcha: "An outer bevel and an emboss grow that layer's picture and shift it back, so the layer stays where it was on the canvas" - meaning the added material is accounted for so your element doesn't visually jump sideways. The compositor handles it, but if your beveled layer seems to have crept, this is why.

depth (0–10) sets how steep the slope reads - 0.5 is a soft swell, 1.0 a clear edge, 4.0 a hard metallic lip. direction is the semantics of the whole effect: up reads as raised off the plate, down swaps the lit and unlit sides and reads as stamped into it - an embossed impression instead of a raised button. size is how far the slope runs from the edge in pixels (2 = crisp lip, 8 = readable bevel, 40 = broad dome) and soften adds blur on the slope itself (16 loses the shape's detail into a swell).

Then it's a lighting rig. angle (default 135, counter-clockwise from pointing right) is where the light comes from - 135 is from above-left, the classic UI-light default. altitude (default 30) is how high above the surface it sits - 0 is grazing and strongest, 90 is straight-on and flattens the bevel away entirely. Both highlight and shadow sides get their own color, opacity and blend_mode, so you can make the lit side warm (#ffe0a0 screen) and the shadow side a cool violet (#201040 multiply) for the premium-material look, or keep it neutral white-on-black for the default.

The output is layers - the stack with the bevel baked into that layer's picture and transparency - which feeds Create Layered Image or chains into the next layer effect. And that chaining is worth saying plainly: the suite's other effects (Layer Shadow, Layer Glow, Layer Stroke) all take and return the same LAYERS type, so you stack them in sequence - bevel, then shadow, then a stroke - each one reading the previous effect's output. The order matters and the node tools let you control it, which is the whole point of doing this in a graph rather than in an image editor.

Install

Part of WAS Node Suite v3. ComfyUI Manager, search "WAS Node Suite", or:

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

Restart after. Needs ComfyUI 0.14.0+ and Python 3.10+, no pip packages or model downloads (v3 installs clean, unlike the old pack's dependency pile).

Common issues

  • Bevel looks flat. Raise depth, lower altitude toward grazing, or check soften isn't blurring the slope away.
  • Layer looks shifted after an outer bevel or emboss. That's the growth being drawn behind the layer to keep it in place - expected behaviour, not a bug.
  • Raised when you wanted stamped (or vice-versa). direction - down swaps the lit and unlit sides for the pressed-in look.
CategoryWAS Suite/Image/Layers

Inputs (16)

NameTypeDefaultDescription
layersLAYERSThe stack holding the layer to bevel. Wire in Add Layer, Layers From Bounding Boxes, or another layer effect to stack effects up.
layer_indexINT-1-1000–1000Which layer to bevel 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 bevel, matched ignoring case and spare space. Empty reads layer_index instead. 'subject' picks the layer Add Layer was given that name.
styleCOMBOinnerWhere the slope sits. `inner` runs inside the edge and grows nothing, `outer` runs outside it and grows the layer, `emboss` straddles the edge and grows the layer.
depthFLOAT1.000–10How steep the slope reads. 0.5 = a soft swell, 1.0 = a clear edge, 4.0 = a hard metallic lip, 0.0 = flat.
directionCOMBOupWhich way the slope faces. `up` reads as raised off the plate, `down` swaps the lit and unlit sides and reads as stamped into it.
sizeINT80–128How far the slope runs from the edge, in pixels. 2 = a crisp lip, 8 = a readable bevel, 40 = a broad dome.
softenINT20–64Extra blur on the slope, in pixels. 0 = every corner sharp, 2 = smooth, 16 = the shape's detail is lost into a swell.
angleFLOAT135-360–360Degrees the light comes from, counted counter-clockwise from pointing right. 135 = from above and to the left, 90 = straight down from the top, 0 = from the right.
altitudeFLOAT300–90Degrees the light sits above the surface. 0 = grazing, which is the strongest, 30 = a normal key light, 90 = straight on, which flattens the bevel away.
highlight_colorSTRING#ffffffColour of the lit side, as hexadecimal digits. #ffffff = white, #ffe0a0 = warm metal. Three digits such as #fff work too.
highlight_opacityFLOAT0.750–1How strongly the lit side is laid down. 0.75 = a clear highlight, 1.0 = a hard specular, 0.0 = none.
highlight_blend_modeCOMBOscreenHow the lit side mixes with the layer's own pixels. `screen` lightens without flattening, `normal` paints the colour flat, `linear-dodge` blows it out.
shadow_colorSTRING#000000Colour of the unlit side, as hexadecimal digits. #000000 = black, #201040 = a cool dark violet. Three digits such as #124 work too.
shadow_opacityFLOAT0.600–1How strongly the unlit side is laid down. 0.6 = a natural shadowed edge, 1.0 = a hard black lip, 0.0 = none.
shadow_blend_modeCOMBOmultiplyHow the unlit side mixes with the layer's own pixels. `multiply` darkens, `normal` paints the colour flat, `color-burn` deepens the edge hard.

Outputs (1)

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