Body Replacement · compétence Open Skill

Body Replacement

Body Replacement est une Open Skill publique sur Digen. Ouvrez-la pour voir ce que ce workflow crée.

@waytitiai

Custom

18 3 10

https://d7qlwi7tl2u27.cloudfront.net/skill-covers/prod/4210253/2026-10-18/7ndwgkxv.jpg

---

allowed-tools:
  - generate_image
  - recognize_image
---

# Body Replacement

## Reference files
- `references/prompt-templates.md`: Three-step prompt templates (crop body-only → outpaint source to body's orientation → composite; plus low-res / high-res / face-preservation / body-detail variants). Read this before writing prompts.

## When to use
- The user wants to put a body photo into a source photo (body swap / body replacement).
- The source photo is a closeup and needs to be expanded/outpainted to fit the full body.
- Seamless blending is required: tone color, lighting, neck/shoulder connection, and pixel/detail matching.
- NSFW/adult photos are supported (use bare `i2i`).

## Steps (three-step workflow — never composite both original photos in one call)
1. Gather the two inputs:
   - **Source photo** (foto sumber): the photo whose face, hairstyle, and environment must be kept.
   - **Body photo** (foto body): the photo whose body will be inserted.
   If either is missing, ask the user to upload it before proceeding.
2. Call `recognize_image` on the **source photo** to capture a detailed description of its face (facial features, expression, hairstyle, skin tone), framing (closeup vs full body), lighting, and environment. Used to lock the source face identity.
3. Call `recognize_image` on the **body photo** to capture (a) its orientation/framing (portrait / landscape / square) and (b) a detailed description of the body's pose (e.g. "lying down with one hand on the head"). Used to preserve framing and pose.
4. **Step 1 — Crop the body photo to body-only.** Call `generate_image` with `model='i2i'`, `input_urls=[body_photo]`, `orientation` matching the body photo's orientation (from step 3), and a prompt that removes the head/face and keeps only the body below the neck (same pose, framing, proportions, skin tone, lighting; no face/head/hair; keep the exact same framing, aspect ratio, and composition — do not crop, rotate, or change orientation). Use `name='Body Crop'` and `entity_type='body_replacement_crop'`.
5. **Step 2 — Outpaint the source photo to the body's orientation.** Call `generate_image` with `model='i2i'`, `input_urls=[source_photo]`, `orientation` matching the body photo's orientation (from step 3), and a prompt that expands/outpaints the source to that frame, keeping the face, hairstyle, and existing environment exactly as-is and seamlessly extending the background to fill the new frame. Use `name='Source Outpaint'` and `entity_type='body_replacement_outpaint'`. This gives a canvas that matches the body's aspect ratio so the body won't be cut off.
6. **Step 3 — Composite onto the outpainted source.** Read `references/prompt-templates.md` and build the composite prompt from the matching template(s). Call `generate_image` with `model='i2i'` (bare channel — supports NSFW; **never** `.hd` / `.hd.lite`), `input_urls=[outpainted_source, cropped_body]` (results of steps 5 and 4), and a prompt that specifies:
   - Place the body from the body-only reference onto the outpainted source, replacing the body below the neck.
   - The body-only reference is used ONLY for its body below the neck — no face is added from it.
   - Keep the source face, facial identity, hairstyle, and environment/background exactly as-is — do not alter them (embed the source-face description from step 2).
   - The body's pose, position, and proportions are the ANCHOR — keep them EXACTLY as in the body-only reference, do not change the pose (embed the pose description from step 3).
   - Blend the new body's skin tone, color grading, and lighting to match the source.
   - Preserve the body's detail from the body-only reference.
   - Adjust the neck/shoulder connection so the head and body join seamlessly.
   - Match the resolution/pixel detail of the body to the source (lower-res source → lower-res body; higher-res source → higher-res body).
   - `name='Body Replacement'` and `entity_type='body_replacement'`.
7. Show the result. If the user w