Nodes/ComfyAngel/Smart Composite πŸͺ½
ComfyUI Node

Smart Composite πŸͺ½

Place overlays by dragging, not by guessing coordinates

By ThepExcelΒ·Created 8 months agoΒ·Updated about a month agoΒ· 14
Smart Composite πŸͺ½
  • canvas
  • overlay
  • mask
  • image
  • x
  • y
β—„quick_positionbottom_rightβ–Ί
β—„x0β–Ί
β—„y0β–Ί
β—„anchorbottom_rightβ–Ί
β—„scale_percent100β–Ί
β—„blend_modenormalβ–Ί
β—„opacity100β–Ί
β—„invert_masktrueβ–Ί

Composite nodes are everywhere in ComfyUI and most of them make you do geometry in your head: "the logo should be 120 pixels from the right and 40 up." Smart Composite πŸͺ½ is the one that says drag it. It layers an overlay image onto a canvas with a visual editor - you drag the overlay around the preview until it looks right, and the node remembers the position. For watermarks, logos, and pasting elements onto a scene, it's the version you'll actually enjoy using.

The inputs that matter

  • canvas - the background image.
  • overlay - the image to place on top.
  • quick_position - a reference point: free, or one of eight (top_left, top_center, … bottom_right). Since v0.6.0 this is the reference, not the final spot.
  • x / y - offsets from the quick_position. Pick bottom_right and x/y shift the overlay from that corner. This changed in v0.6.0: they're offsets now, not absolute coordinates - an old workflow's numbers will land in a different place.
  • anchor - which point of the overlay aligns to the position (its own top-left, center, bottom-right, etc.).
  • scale_percent - resize the overlay 1–500%, default 100.
  • blend_mode - eleven of them: normal, multiply, screen, overlay, soft_light, hard_light, difference, add, subtract, darken, lighten. This is where the pack punches above its weight - real blend math, not just alpha.
  • opacity - 0–100%.
  • mask - optional external mask for overlay transparency, and invert_mask (default true) - ComfyUI's LoadImage mask is inverted (0 = opaque), so the default corrects it. If your mask looks backwards, this is the switch.

Outputs: the composited image, plus the final x and y it actually used (so downstream nodes know where it landed).

How the visual editor works

Click the button on the node and a dialog opens with live preview: drag the overlay directly, hit quick-position buttons for corners and edges, slide scale with live feedback. The position and scale you set in the dialog flow back into the node's widgets - that's the whole point, no coordinate archaeology. The README's suggested setup routes the canvas through an Image Bridge so you get a preview of the background before compositing.

Installing it

cd ComfyUI/custom_nodes
git clone https://github.com/ThepExcel/ComfyAngel.git

Restart ComfyUI, or search "ComfyAngel" in ComfyUI Manager. Just Pillow as a dependency; no models.

The traps are the two v0.6.0 semantic changes: x/y are offsets from quick_position (not absolute), and the mask is inverted by default by design. If a workflow built before v0.6.0 places things oddly or a mask looks wrong, those are the first two things to check. After that, it's the nicest "put this on that" node in the pack.

CategoryComfyAngel/Composite

Inputs (11)

NameTypeDefaultDescription
canvasIMAGEβ€”
overlayIMAGEβ€”
quick_positionCOMBObottom_right10 options: free, top_left, top_center, top_right, middle_left, center, +4
xINT0-8192–8192β€”
yINT0-8192–8192β€”
anchorCOMBObottom_right9 options: top_left, top_center, top_right, middle_left, center, middle_right, +3
scale_percentFLOAT1001–500β€”
blend_modeCOMBOnormal11 options: normal, multiply, screen, overlay, soft_light, hard_light, +5
opacityFLOAT1000–100β€”
maskoptMASKβ€”
invert_maskoptBOOLEANtrueβ€”

Outputs (3)

NameTypeDescription
imageIMAGEβ€”
xINTβ€”
yINTβ€”