MVEx Subject Uncrop
Paste Your Processed Video Crops Back Without Seams
- cropped_images
- original_images
- bboxes
- cropped_masks
- images
Crop-and-stitch only works if the stitch is good, and this is the stitch. MVEx Subject Uncrop takes the processed crops from Subject Crop, scales each one back to its original box, and blends it into the original frames with a feathered border. It's the second half of the pack's core loop - crop a stable batch around your subject, run the sampler on the crops, paste back into the full frames without jitter or visible seams.
What it does
The mechanism is simple and robust. For each frame it reads the box from the bboxes input, resizes the crop to exactly that box, and composites it onto the original with an alpha ramp feathered inward from the border. The paste is pixel-exact when the crop size was never changed - if you came straight out of tracked mode, the pixels just go back where they came from and nothing else in the frame is touched, not even through a VAE round-trip. That's the same guarantee that made still-image crop-and-stitch (Inpaint CropAndStitch) the standard, applied to video.
If the crops were resampled somewhere along the way - zoomed mode, upscale_megapixels, or a resize node you dropped in between - it scales them back to the box automatically, so you don't have to remember to undo your own upscaling.
The inputs
- cropped_images - your processed crops.
- original_images - the frames to paste into.
- bboxes - from Subject Crop, one box per frame. A single box is applied to every frame, and when inputs disagree on frame count the extras are dropped (it logs a warning).
- feather (default 16) - blend width in pixels. Sides that touch the image edge aren't feathered, since there's nothing to blend with there. If you see a visible border line, raise it.
- cropped_masks (optional) - confines the paste to the subject's mask instead of the whole box. Important caveat from the author: it's used exactly as given. No auto-blur - if you want a soft edge, blur the mask before feeding it.
The output is simply images: the original frames with the crops blended back in. Wire it to your video save or preview.
The trick that makes A/B testing painless
Input order is bypass-correct by design. If you bypass both Subject Crop and Subject Uncrop, the processed full-frame images pass straight through the uncrop untouched - so toggling the entire crop pipeline on and off is literally two clicks, and you can judge whether the crop pass is buying you anything on a given clip without rebuilding the graph. That's the kind of detail that tells you someone actually lives in these workflows.
Install and gotchas
Part of MaskVidExperiments - one clone, all the nodes. Via Manager (search "MaskVidExperiments") or:
cd ComfyUI/custom_nodes
git clone https://github.com/drozbay/MaskVidExperiments
then restart. No model files, no dependencies beyond ComfyUI itself, needs v0.15.0+.
Common issues are mostly about the boxes and the mask. If the paste lands in the wrong place, check that the bboxes are actually the ones from this clip's Subject Crop - the tooltip notes that extra boxes within a frame are ignored and frame-count mismatches get truncated, so a stale box list is the usual culprit. If the pasted region looks soft or ghosted against the original, you've resampled the crops somewhere and the scale-back is doing what it can - keep the crop size untouched (tracked mode, no upscale) for a pixel-perfect paste, or drop feather a bit. And remember the masks are used as-given: a hard-edged mask pastes a hard edge.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| cropped_images | IMAGE | Processed cropped frames. | |
| original_images | IMAGE | Original frames to paste into. | |
| bboxes | BOUNDING_BOX | [object Object] | Boxes from Subject Crop, one per frame. A single box or single frame is applied to every frame; extra boxes within a frame are ignored. When inputs disagree on frame count, extra frames are dropped. |
| feather | INT | 16 | Blend width in pixels, feathered inward from the crop border. Sides touching the image edge are not feathered. |
| cropped_masksopt | MASK | Confines the paste to the mask, one per crop at any resolution. A single mask is applied to every frame. Used exactly as given; pre-blur the mask for a soft edge. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | Original frames with the crops blended back in. |