Mode 2 — person → person
Inspired by an outfit on someone else? Pass both photos. We extract the garment from one and re-fit it onto the other.
#When to use M2
Mode 2 (M2) is for inspiration → personalization: a customer sees a look on Instagram, sends you the screenshot, and wants it on themselves. There's no flat product image — both inputs are people wearing things.
#Sending the request
bash
curl -X POST https://garmentverse-api-807711804803.asia-south1.run.app/v1/images/tryon \
-H "Authorization: Bearer $GARMENTVERSE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"mode": "person_to_person",
"person_image": "<your_customer_id>",
"reference_person_image": "<inspiration_id>",
"garment": { "category": "dress", "subtype": "a-line" },
"tier": "standard",
"consent_token": true
}'#What transfers (and what doesn't)
- Transfers: the garment shape, colour, fabric, pattern, drape style.
- Does not transfer: the reference person's face, hair, body shape, skin tone, pose details unrelated to the garment.
Identity safety
We block known celebrity face-likenesses on the reference image to prevent unauthorized identity transfer. M2 will fail with
provider_safety_blocked if your reference photo matches a flagged identity.#Which provider runs M2
On tier: "premium", the router prefers outfitanyone (via fal.ai) — it handles full-outfit transfer more robustly than general image models. On standard and draft, generalist models are used (OpenAI, Gemini, Qwen).
You can pin a provider explicitly via the provider param. Note that not every provider supports M2 — check capabilities on the provider list.
#Tips
- Set
category+subtypeeven in M2 — the prompt registry uses them to compose better instructions. - If the reference photo is partial-body (cropped to chest), the result fits less reliably. Full-body references work best.
- For social-app workflows, draft tier is usually enough — fast feedback beats fidelity for inspiration browsing.