Position pose part v5.1.0
Stamp a cropped pose part back onto the original image by coordinates
- og_image
- extracted_image
- image
A disarmingly simple node hiding in a pack full of complicated ones. tri3d_position_pose_part takes the original image, a cropped-out piece of it, and a coordinate string, then pastes the piece back at exactly those coordinates. That's the whole job. It's the "put it back" half of an extract-and-return workflow, and its companion tri3d-extract_pose_part (also in this pack) hands you the coordinates in the exact format this node wants.
The use case: you crop a pose part - say, a hand or a leg region - out of a pose or photo, process it in isolation (inpaint, warp, re-detail), and then need it back in place without touching the rest of the image. This is the paste step, and it's batch-safe and dumb in the good way.
How it works
Nothing clever under the hood, which is fine. It parses coords as four comma-separated integers - xmin, xmax, ymin, ymax - and does a plain numpy slice assignment:
og_image[ymin:ymax, xmin:xmax, :] = extracted_image
The extracted image is dropped in at that box, replacing whatever was there. The coords default string is literally "xmin, xmax, ymin, ymax", a placeholder, not a usable value.
The inputs that matter
og_image- the original (or current) image you want the part pasted onto.extracted_image- the cropped piece. It should be sized to fit the box.coords- a STRING like"120, 380, 200, 540". Format:xmin, xmax, ymin, ymax- note the order (xmin, xmax, then ymin, ymax). If you're coming from theextract_pose_partnode, wire itscoordsoutput straight in and you're done.
Output: the composited IMAGE.
Installing it
This is part of the TRI3D-LC/tri3d-comfyui-nodes pack, so one install covers it:
cd ComfyUI/custom_nodes
git clone https://github.com/TRI3D-LC/tri3d-comfyui-nodes
cd tri3d-comfyui-nodes
pip install -r requirements.txt
or ComfyUI Manager → "tri3d-comfyui-nodes", restart, and it's under the TRI3D category.
Where people get burned
The one guaranteed failure: leaving coords at its default. That string doesn't parse as integers, so the node crashes with a ValueError the moment you run it. Anyone who's hit this has done so because they forgot the placeholder is a placeholder. Second, coordinate order - it's xmin, xmax, ymin, ymax, not the xmin, ymin, xmax, ymax most people type first. And third, if extracted_image isn't exactly xmax-xmin by ymax-ymin pixels, the slice just clips or stretches the paste - numpy won't resize it for you. Size the crop to the box, or use the companion extract node so the numbers line up by construction.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| og_image | IMAGE | — | |
| extracted_image | IMAGE | — | |
| coords | STRING | xmin, xmax, ymin, ymax | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |