ImageCompositeBlurred
Paste a detailer crop back onto the original without the ugly hard edge
- overlap_image
- base_image
- IMAGE
- debug overlap
Every detect-crop-refine workflow has the same last step: you denoise a crop at high resolution, and now you have to stick it back on the original. Paste it flat and you get a visible rectangle seam where the inpainted region meets the untouched pixels. ImageCompositeBlurred exists purely to make that seam disappear - it overlaps one image onto another at a given x/y, with the overlap's edges faded to transparent.
This is the second half of the comfyui-yolov8-simple pair. Its sibling, Yolov8DetectionSegmentation, detects and crops; this node is what you wire after the detail pass to put the result back. You can use it with any two images and coordinates, but the intended flow is: Yolov8DS gives you x, y, width, height from a detection, you run your KSampler on the crop, then feed the refined crop and the original into this node with the same coordinates.
How it works
Five required inputs: overlap_image (the thing being pasted), base_image (where it lands), x and y (top-left position), and edge_blur_pixel (default 64). The mechanism is a soft alpha mask: it builds a gradient that fades each of the overlap's four borders from transparent to solid over edge_blur_pixel pixels, then blends overlap * alpha + base * (1 - alpha) into the base at those coordinates. If the overlap sticks out past the base's edge, it's clipped cleanly rather than erroring - negative coordinates and overshoot are both handled. If your overlap image already has an RGBA alpha channel, the node respects it and multiplies it into the feather, which is a nice touch for paste-ins that came from a segmented crop.
Outputs: IMAGE (the composited result) and debug overlap (the overlap region with alpha applied, on a black background - handy for eyeballing where the feather actually landed when the seam is still visible).
The one input you'll actually tune
edge_blur_pixel is the whole personality of this node. At 64 you get a soft, forgiving blend that hides the seam but can slightly wash the edges of your detail pass. Crank it down toward 16 and the boundary gets harder and more faithful - and the seam comes back. It's clamped to a minimum of 1 in the code, so you can't fully disable the feather, which is intentional: a hard-edged composite is what you're trying to avoid in the first place.
Install
It ships in the same pack as Yolov8DS, so the install is identical: ComfyUI Manager, search comfyui-yolov8-simple, install, restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/dskjal/comfyui-yolov8-simple
The pack's only declared dependency is pinned ultralytics==8.3.224 (pulled in by the detection node even if you only use the compositor - it's one small pack, so you get both). No extra model downloads needed for this node; it's pure numpy math on tensors that are already in ComfyUI's IMAGE format.
Honest verdict
This is a small, well-scoped utility, and the feathering is the one genuinely nice thing about it - most homebrew composites do a hard paste, and a hard paste after a detail pass looks bad. The tradeoff is that you're wiring the whole detailer loop yourself instead of using Impact Pack's Detailer (SEGS), which composites with its own masking and denoising handling. If you're already running Impact Pack, you don't need this node. If you're running the minimal two-node setup from this pack and want the loop to not show its work, this is exactly the tool for it - one input to tune, no surprises.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| overlap_image | IMAGE | — | |
| base_image | IMAGE | — | |
| x | INT | 0 | — |
| y | INT | 0 | — |
| edge_blur_pixel | INT | 64 | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |
| debug overlap | IMAGE | — |