| name | p-image-try-on |
| description | Use when someone wants virtual try-on โ dress a person in clothes from reference photos for fashion or ecommerce. |
| license | MIT |
| metadata | {"version":"1.0.8","package":"pruna-skills","pruna_model":"p-image-try-on"} |
Prerequisites
Install and load these skills before generating (skip if already in context via @pruna):
| Skill | Description | Install |
|---|
generation-diversity | Use when writing any generative prompt โ ritual seed, explicit structure, scenario axes, and quality gates before paid API calls. | npx skills add PrunaAI/pruna-skills@generation-diversity -y |
image-prompting | Use when crafting still-image prompts for any generative model โ composition, identity sheets, edits, try-on, and photoreal personas. | npx skills add PrunaAI/pruna-skills@image-prompting -y |
pruna-api | Use before any Pruna or Replicate HTTP call โ credentials, upload/poll/download, parallel batches, and agent safety. | npx skills add PrunaAI/pruna-skills@pruna-api -y |
Or install the full suite once: npx skills add PrunaAI/pruna-skills@pruna -y
Follow each skill's Before generating / craft sections โ do not restate guide content here.
Agent habit
In the first reply, name `p-image-try-on` in backticks, confirm PRUNA_API_KEY, then ask for person_image + garment_images. Open intake โ generation-diversity clarification intake when silent. When refs need disambiguation, draft with Prompt craft (dynamic + faithful) โ do not paste skill examples. Redirect background-only / no-garment jobs to p-image-edit.
Prompt craft (dynamic + faithful)
Identity and garments come from person_image + garment_images[]. Optional prompt only disambiguates refs โ it does not invent a new person or outfit.
| Do | Don't |
|---|
Lock person_image and every garment_images[] URL first; omit prompt on clean flat-lays | Describe a new scene, model, or garment the user did not supply |
When refs are ambiguous: the green t-shirt from image 1 and the trousers from image 2 (image-prompting try-on craft) | Mood-only prompts (fashion editorial vibe) or copy this skill's extended example when refs differ |
| Ritual seed before drafting disambiguation wording; vary phrasing when multiple valid mappings exist | Use prompt for background swaps โ redirect to p-image-edit |
Show prompt (if needed) before POST when refs are ambiguous | Silent try-on that changes pose, face, or garments beyond the brief |
Fidelity check (before pay): output must still be the user's person in the user's garment(s). If prompt could apply to a different ref set, rewrite the disambiguation.
When NOT to use
Use a different skill instead:
| Skill | Description | Install |
|---|
p-image | Use when someone wants a fast AI image โ product shots, hero visuals, mood boards, or draft photos from a text prompt. | npx skills add PrunaAI/pruna-skills@p-image -y |
p-image-edit | Use when someone wants to edit an existing photo โ change outfits or backgrounds, compose from reference images, or apply prompt-driven edits. | npx skills add PrunaAI/pruna-skills@p-image-edit -y |
Pricing
Per generation (same for normal and turbo mode):
- $0.015 for the first garment
- $0.008 for each additional garment
Example: 3 garments โ $0.015 + 2 ร $0.008 = $0.031.
Request shape
One person_image, one garment_images[] entry per piece (up to 11), optional reference_pose. The model auto-classifies each garment โ array order does not matter. Mixed categories belong in one call.
prompt โ only when a reference shows multiple garments or is worn on-model; clean flat-lays need no prompt.
preserve_input_size: true (default) โ output dimensions follow the person image.
Runware field map: person โ person_image, garment โ garment_images[], pose โ reference_pose, positivePrompt โ prompt, settings.turbo โ turbo.
HTTP (curl)
Upload images
curl -X POST "https://api.pruna.ai/v1/files" \
-H "apikey: ${PRUNA_API_KEY}" \
-F "content=@/path/to/person.jpg"
curl -X POST "https://api.pruna.ai/v1/files" \
-H "apikey: ${PRUNA_API_KEY}" \
-F "content=@/path/to/garment.png"
Use each response urls.get in input.person_image and input.garment_images[]. Optional: reference_pose.
Create (async โ recommended)
curl -X POST 'https://api.pruna.ai/v1/predictions' \
-H 'Content-Type: application/json' \
-H "apikey: ${PRUNA_API_KEY}" \
-H 'Model: p-image-try-on' \
-d '{
"input": {
"person_image": "https://api.pruna.ai/v1/files/PERSON_FILE_ID",
"garment_images": ["https://api.pruna.ai/v1/files/GARMENT_FILE_ID"]
}
}'
Poll and download: follow pruna-api.
Complete the random seed ritual from generation-diversity before writing prompts โ do not pass the ritual string as API seed.
Create (sync โ quick test only)
curl -X POST 'https://api.pruna.ai/v1/predictions' \
-H 'Content-Type: application/json' \
-H "apikey: ${PRUNA_API_KEY}" \
-H 'Model: p-image-try-on' \
-H 'Try-Sync: true' \
-d '{
"input": {
"person_image": "https://api.pruna.ai/v1/files/PERSON_FILE_ID",
"garment_images": ["https://api.pruna.ai/v1/files/GARMENT_FILE_ID"]
}
}'
Extended input (turbo + pose + prompt)
curl -X POST 'https://api.pruna.ai/v1/predictions' \
-H 'Content-Type: application/json' \
-H "apikey: ${PRUNA_API_KEY}" \
-H 'Model: p-image-try-on' \
-d '{
"input": {
"person_image": "https://api.pruna.ai/v1/files/PERSON_FILE_ID",
"garment_images": [
"https://api.pruna.ai/v1/files/MULTI_GARMENT_SHOT_ID",
"https://api.pruna.ai/v1/files/BOTTOM_ID"
],
"reference_pose": "https://api.pruna.ai/v1/files/POSE_REF_ID",
"prompt": "the green t-shirt from image 1 and the trousers from image 2",
"turbo": true,
"output_format": "jpg",
"output_quality": 95,
"preserve_input_size": true
}
}'
Before generating
- Complete Prerequisites guide reading order (
generation-diversity โ image-prompting try-on craft).
- Ritual seed โ draft optional dynamic + faithful disambiguation
prompt (section above) โ confirm person_image, garment_images (โค6 for finals; 7โ8 usually lands; 9โ11 may drop last items), and optional turbo / reference_pose / prompt.
- Pruna notes: one item per body spot (socks + shoes โ usually shoes win).
turbo (~2.5โ3.5 s) is off by default โ not recommended above ~4 garments for finals. Full-body or three-quarter person crops work best. Omit gloves, mittens, handheld props, pocket squares, suspenders, brooches from garment_images[].
Required input
person_image (string URL)
garment_images (array of string URLs, up to 11)
Common optional fields
seed, output_format (webp / jpg / png, default jpg), output_quality (0โ100, default 95)
preserve_input_size (boolean, default true)
turbo (boolean, default false)
reference_pose (person image URL)
prompt (EXPERIMENTAL โ disambiguate non-flatlay / multi-garment refs)
Typical next steps
Common follow-ons after this skill:
| Skill | Description | Install |
|---|
p-image-upscale | Use when someone wants to upscale or sharpen an existing image for print, large crops, or higher-quality delivery. | npx skills add PrunaAI/pruna-skills@p-image-upscale -y |
p-video | Use when someone wants one short video clip from text or images โ B-roll, start/end frame animation, or a quick motion shot. Not for full multi-scene films or lip-synced hosts. | npx skills add PrunaAI/pruna-skills@p-video -y |
p-video-avatar | Use when someone wants a person on camera speaking a script โ lip-synced host, spokesperson, or narrated avatar from a portrait photo. | npx skills add PrunaAI/pruna-skills@p-video-avatar -y |