Nodes/24oiduts-ComfyUI/🎬 Studio42 PatchDrop
ComfyUI Node

🎬 Studio42 PatchDrop

Drop a patch onto an image β€” feathered, blended, rotated, exactly where you want

By GeekyGhostΒ·Created 12 months agoΒ·Updated 10 months agoΒ· 0
🎬 Studio42 PatchDrop
  • original_image
  • patch_image
  • patch_mask
  • result_image
  • placement_mask
  • preview_image
β—„patch_x0β–Ί
β—„patch_y0β–Ί
β—„patch_width256β–Ί
β—„patch_height256β–Ί
β—„patch_shaperectangleβ–Ί
β—„blend_modenormalβ–Ί
β—„opacity1.00β–Ί
β—„feather_edges0β–Ί
β—„corner_radius20β–Ί
β—„scale1.00β–Ί
β—„rotation0β–Ί
β—„position_modeuse_coordinatesβ–Ί
β—„manual_x0β–Ί
β—„manual_y0β–Ί
β—„resize_patchfalseβ–Ί
β—„preserve_aspecttrueβ–Ί

Studio42 PatchDrop is the second half of the pack's lift-and-drop pair: it takes a patch image and places it onto an original image at pixel-precise coordinates, with masks, blend modes, opacity, feathering, scaling, rotation, and shape-aware placement. It's the node that makes a pasted-in element look placed instead of pasted.

The classic workflow: lift a patch with PatchLift Loader (which hands you x/y/width/height), do something to it, and wire the coordinates straight in here. But it also stands alone - drop a logo, replace a face region, composite a cutout from the Background Remover. If you're building a workflow where "put thing here, exactly" is the requirement, this is the node.

What you set

  • original_image and patch_image - the base and the element.
  • patch_x / patch_y - drop coordinates, Β±2048/4096.
  • patch_mask - optional MASK for transparency control (essential for non-rectangular patches or cutouts).
  • patch_width / patch_height - target size (16–1024), with resize_patch controlling whether the patch is actually resized to fit and preserve_aspect to keep proportions.
  • patch_shape - rectangle, circle, or rounded_rectangle, with corner_radius.
  • blend_mode - 9 modes (normal, multiply, screen, overlay, soft_light, hard_light, difference, lighten, darken).
  • opacity - 0–1.
  • feather_edges - 0–50, the "make the seam disappear" control. This plus a soft blend mode is how pasted things stop looking pasted.
  • scale (0.1–3) and rotation (Β±360Β°).
  • position_mode - use_coordinates, center, or manual (the last two override with presets or manual_x/manual_y).

What comes out

result_image (the composite), placement_mask (the mask of where the patch actually landed - great for debugging or reuse), and preview_image (with overlay indicators).

The honest tips

  • Feather 5–15 and soft_light/overlay are the pack's own recommended starting point for integrated patches; normal + opacity for straight placement.
  • Keep resize_patch off when you want the original quality preserved.
  • position_mode: use_coordinates is what respects the PatchLift outputs; the other modes override them.

Installing it

Same pack, 24oiduts-ComfyUI:

  • ComfyUI Manager: search 24oiduts, install, restart.
  • Manual:
    cd ComfyUI/custom_nodes/
    git clone https://github.com/GeekyGhost/24oiduts-ComfyUI
    pip install -r 24oiduts-ComfyUI/requirements.txt
    then restart.

Pillow/numpy only. The GitHub README is a stale Studio42 template with a "WIP" banner - ignore it.

Troubleshooting

  • Patch lands in the wrong place - position_mode isn't use_coordinates, or you're feeding manual x/y that override it.
  • Hard edges - no feather, or the mask is missing for non-rectangular shapes. Add feather_edges and a proper patch mask.
  • Patch stretched - resize_patch on with preserve_aspect off; either is fine, just know which you want.

The drop node you'd actually keep in a workflow - coordinates in, placed-and-integrated image out.

Category🎬 Studio42/Image Processing

Inputs (19)

NameTypeDefaultDescription
original_imageIMAGEβ€”
patch_imageIMAGEβ€”
patch_xINT0-2048–4096β€”
patch_yINT0-2048–4096β€”
patch_maskoptMASKβ€”
patch_widthoptINT25616–1024β€”
patch_heightoptINT25616–1024β€”
patch_shapeoptCOMBOrectangle3 options: rectangle, circle, rounded_rectangle
blend_modeoptCOMBOnormal9 options: normal, multiply, screen, overlay, soft_light, hard_light, +3
opacityoptFLOAT1.000–1β€”
feather_edgesoptINT00–50β€”
corner_radiusoptINT205–100β€”
scaleoptFLOAT1.000.1–3β€”
rotationoptFLOAT0-360–360β€”
position_modeoptCOMBOuse_coordinates3 options: use_coordinates, center, manual
manual_xoptINT0-2048–4096β€”
manual_yoptINT0-2048–4096β€”
resize_patchoptBOOLEANfalseβ€”
preserve_aspectoptBOOLEANtrueβ€”

Outputs (3)

NameTypeDescription
result_imageIMAGEβ€”
placement_maskMASKβ€”
preview_imageIMAGEβ€”