Smart Composite πͺ½
Place overlays by dragging, not by guessing coordinates
- canvas
- overlay
- mask
- image
- x
- y
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. Pickbottom_rightand 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, andinvert_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.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| canvas | IMAGE | β | |
| overlay | IMAGE | β | |
| quick_position | COMBO | bottom_right | 10 options: free, top_left, top_center, top_right, middle_left, center, +4 |
| x | INT | 0-8192β8192 | β |
| y | INT | 0-8192β8192 | β |
| anchor | COMBO | bottom_right | 9 options: top_left, top_center, top_right, middle_left, center, middle_right, +3 |
| scale_percent | FLOAT | 1001β500 | β |
| blend_mode | COMBO | normal | 11 options: normal, multiply, screen, overlay, soft_light, hard_light, +5 |
| opacity | FLOAT | 1000β100 | β |
| maskopt | MASK | β | |
| invert_maskopt | BOOLEAN | true | β |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | β |
| x | INT | β |
| y | INT | β |