๐ฆ RS Collage
Compose images by dragging them on a canvas โ with real feathering, not guesswork
- overlay_image
- background_image
- overlay_mask
- IMAGE
Every compositing workflow eventually hits the wall where "paste one image on another" means a chain of math nodes and a prayer about alignment. ๐ฆ RS Collage (RSCollage) replaces that with a canvas: you drag, scale, and rotate an overlay onto a background with visual handles, feather its edges with a live preview, and hit โ๏ธ APPLY when it looks right. The queue actually pauses so you can fine-tune before the composite is locked in.
How it works
You feed it a background_image and an overlay_image. The node holds the render - waits indefinitely for your APPLY or CANCEL - while you manipulate the overlay on a frozen viewport, then converts your normalized on-screen coordinates into absolute pixel transforms on the backend. The corner handles scale proportionally from the center; the edge handles scale on a single axis (so you can change aspect ratio); the yellow top marker rotates around center; and the red cross positions the feather/blur center.
The feathering is the differentiator. Four types - Radial Blur In, Radial Blur Out, Ellipse Blur In, Ellipse Blur Out - with a blur_radius (0โ100) and blur_hardness (0โ100). Softening the overlay's edges before compositing is what stops a pasted layer from looking like a sticker, and seeing the blur live beats tuning a blur radius blind. If your overlay rotates and black corners appear, the node strips them automatically.
Inputs that matter
overlay_image- the foreground layer. For best results, use an image that actually has transparency (PNG/WebP/TIFF with an alpha channel, or the output of a background-removal node like RMBG). The README explicitly suggests running an RGB overlay through the pack's ๐ฆ RS rgb2rgba node first to correct the alpha channel.background_image- the base canvas.overlay_mask(optional) - aMASKused as an additional alpha (inverted on apply, per the README).opacity- 0.0โ1.0 global transparency multiplier.feather_type,blur_radius,blur_hardness- edge softening.
Output: IMAGE, the composited result. Chain nodes by feeding the output into the next node's background input - the README's example workflows rely on that endless-chain trick.
How to install
Part of ComfyUI_RaykoStudio:
cd ComfyUI/custom_nodes
git clone https://github.com/Raykosan/ComfyUI_RaykoStudio.git
Restart ComfyUI, or install via ComfyUI Manager (search "ComfyUI_RaykoStudio"). The README says the pack needs no extra packages beyond its own requirements (torch, numpy, Pillow, opencv-python, and a few more).
Common issues
- Overlay looks like a hard-edged stamp. Check
feather_type- with "None" there's no softening at all. Radial or Ellipse blur with a modest radius is the standard fix. - Stuck waiting. The session is intentionally non-blocking with no timeout: APPLY to finish, CANCEL to abort. If you run it headless or trigger it from the API, it'll wait forever - this is a human-in-the-loop node, not an automation one.
- Edges gone wrong after rotation. The auto black-corner cleanup handles it, but if you scaled via an edge handle, aspect ratio changed too - that's a feature, just be aware.
It's a niche tool - you don't need it for a simple paste - but for building layered composites, cards, or character collages with properly feathered seams, it's one of the friendlier ways to do it in ComfyUI.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| overlay_image | IMAGE | โ | |
| background_image | IMAGE | โ | |
| opacity | FLOAT | 1.000โ1 | โ |
| feather_type | COMBO | None | 5 options: None, Radial Blur In, Radial Blur Out, Ellipse Blur In, Ellipse Blur Out |
| blur_radius | INT | 500โ100 | โ |
| blur_hardness | INT | 00โ100 | โ |
| overlay_maskopt | MASK | โ |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | โ |