UR Soft Composite
Sew the inpaint back in without the tell-tale seam
- inpaint
- original
- mask
- image
- soft_mask
Every remove workflow ends the same way: you fixed the frame, and now you have to put it back without a scar. A hard cut along the mask edge reads instantly - the detailing literature calls this the bbox seam problem, the grey box, the visible patch. UR Soft Composite is the pack's answer: it blends your inpainted result back into the original frame batch through a Gaussian-feathered mask, so the boundary fades into the surrounding pixels instead of slicing along it.
And notably: no BrushNet, no ControlNet, no extra model weight. It's a soft alpha blend, done in pure torch. That's the whole philosophy of this pack - the composite step shouldn't need a neural network to do what a decent blur can.
How it works
Three inputs in, one clean blend out:
- inpaint - your repaired frames (the output of whatever inpaint/edit model you ran the prepared keyframe through).
- original - the untouched original frame batch.
- mask - the mask that defines where the inpaint belongs.
The node blurs the mask into a soft_mask using kernel (default 15) and sigma (default 7.5) - those two dials control how far the blend gradient spreads. Then it composites per pixel: original × (1 − soft) + inpaint × soft. Where the mask is 1, you get the inpaint; where it's 0, you get the original, bit-identical; in between, a smooth transition. If your inpaint came back at a different resolution than the original, it's resized to match, and batches are tiled up to the largest of the three inputs so frame counts always line up.
Outputs
- image - the composited batch. This is your finished result.
- soft_mask - the feathered mask it used, which is genuinely useful for debugging: if a seam still shows, look at the soft_mask and see whether the gradient is as wide as you thought.
Where it sits in the workflow
It's the last node in both recommended flows the README lays out. The full chain: keyframe mask → UR Mask Processor → UR Keyframe Prep → inpaint model → UR Soft Composite → output. If you have a video propagation model in the middle, the soft composite still catches the end and re-seats the repaired frames into the clip.
Common issues
The subtle one: a soft mask cannot fix misalignment, only seam hardness. If your inpaint model regenerated the whole frame (some edit models do), the result won't line up with the original and no amount of feathering will hide the smear - that's the whole reason masked editing exists, and why the pack's own prompt builder pushes "only modify the masked region." Second, crank kernel/sigma too high and the blend bleeds into pixels you wanted untouched - the original is bit-identical outside the mask, so over-feathering is where you actually lose content. Third, keep inpaint and original frame counts sane: the node tiles to match, which is forgiving, but a video where the repaired batch is one frame short will silently repeat a frame rather than tell you. For a static logo on a still clip, defaults are fine; for video with moving content, give the mask some room and let the soft edge carry the frame.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| inpaint | IMAGE | — | |
| original | IMAGE | — | |
| mask | MASK | — | |
| kernel | INT | 151–2049 | — |
| sigma | FLOAT | 7.500–512 | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| soft_mask | MASK | — |