---
title: Dressing a person in a full outfit — P-Image-Try-On | Runware Docs
url: https://runware.ai/docs/models/prunaai-p-image-try-on/guides/virtual-try-on
description: How to dress a person in a full outfit with Pruna P-Image-Try-On, passing each garment as its own reference and matching a target pose.
---
### [Introduction](https://runware.ai/docs/models/prunaai-p-image-try-on/guides/virtual-try-on#introduction)

P-Image-Try-On dresses a person in a **complete outfit from separate garment photos**. You pass the person's image plus one reference per garment, each tagged with its role, and the model returns a single image of the person wearing all of them, with their identity and body kept intact.

![A man wearing a brown fedora, round sunglasses, a rust corduroy overshirt, grey trousers, brown loafers, and a leather crossbody bag](https://runware.ai/docs/assets/outfit-hero.Bvi4KwY9_Z15DOB8.jpg)

The look above came from **six separate garment images**, a hat, sunglasses, an overshirt, trousers, loafers, and a bag, plus one photo of the person. There's no composite to prepare, and you never say which item is a hat or a shoe: the model **sorts each garment to the right part of the body** on its own. One request takes up to 11 garments.

This guide covers the request shape, dressing a full outfit, working with many garments, matching a target pose, restyling individual pieces, and the turbo setting.

### [Request shape](https://runware.ai/docs/models/prunaai-p-image-try-on/guides/virtual-try-on#request-shape)

Every input is an entry in `inputs.referenceImages`, and each entry carries a `role`. Use exactly **one `person`, one to eleven `garment` entries, and an optional `pose`**. The model reads the roles, so the order of the array doesn't matter and you don't tag which garment covers which region.

**Request**:

```json
[
  {
    "taskType": "imageInference",
    "taskUUID": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "model": "prunaai:p-image@try-on",
    "inputs": {
      "referenceImages": [
        { "image": "https://example.com/person.jpg", "role": "person" },
        { "image": "https://example.com/overshirt.jpg", "role": "garment" },
        { "image": "https://example.com/trousers.jpg", "role": "garment" }
      ]
    }
  }
]
```

**Response**:

```json
{
  "data": [
    {
      "taskType": "imageInference",
      "taskUUID": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "imageUUID": "f1e2d3c4-b5a6-7890-1234-567890abcdef",
      "imageURL": "https://im.runware.ai/image/os/a14d18/ws/2/ii/f1e2d3c4-b5a6-7890-1234-567890abcdef.jpg"
    }
  ]
}
```

- `inputs.referenceImages` is an array of `{ image, role }` entries. `image` accepts a URL, a UUID from a previous generation or the [Image Upload API](https://runware.ai/docs/platform/image-upload) , a data URI, or a base64 string.
- `role` is `person` (exactly one), `garment` (one to eleven), or `pose` (at most one).
- `positivePrompt` is optional. You only need it to disambiguate when a garment reference isn't a clean flat-lay, for example naming which item to use from a photo that shows several.
- `settings.turbo` and `settings.preserveInputSize` tune speed and output size, covered below.

### [Dressing a full outfit](https://runware.ai/docs/models/prunaai-p-image-try-on/guides/virtual-try-on#dressing-a-full-outfit)

To assemble the look from the top of the page, each piece goes in as its own `garment` entry next to the person. These are the six references behind it:

![A full-body studio photo of a man in a plain grey t-shirt and dark trousers on a white background](https://runware.ai/docs/assets/person-studio.D6gwA_es_1sU3KD.jpg)

*Person reference*

> **Prompt**: A full-body studio photograph of a man in his early thirties with short dark hair and a trimmed beard, standing and facing the camera in a relaxed neutral pose with arms at his sides, wearing a plain light-grey crew-neck t-shirt and plain dark trousers, full body visible from head to feet, even soft studio lighting on a seamless white background, sharp focus, e-commerce model reference, no text.

![A brown felt fedora with a black band](https://runware.ai/docs/assets/garment-fedora.FwpyYgsX_Z1bTCEl.jpg)

*Hat*

> **Prompt**: A flat-lay product photograph of a brown felt fedora hat with a black grosgrain band, photographed from directly above on a clean white surface, soft even studio lighting, e-commerce packshot, no model, no text.

![Round tortoiseshell sunglasses with gold arms](https://runware.ai/docs/assets/garment-sunglasses.auZ_i8Bl_Z15tfzt.jpg)

*Sunglasses*

> **Prompt**: A flat-lay product photograph of round tortoiseshell sunglasses with thin gold metal arms, photographed from directly above on a clean white surface, soft even studio lighting, e-commerce packshot, no model, no text.

![A rust-orange corduroy overshirt](https://runware.ai/docs/assets/garment-overshirt.se7Srpy5_Z1MCp60.jpg)

*Overshirt*

> **Prompt**: A flat-lay product photograph of a rust-orange corduroy overshirt with a chest pocket and buttons, laid flat on a clean white surface with the sleeves arranged neatly, soft even studio lighting, e-commerce packshot, no model, no text.

![Pleated grey wool trousers](https://runware.ai/docs/assets/garment-trousers.C8-qX_Xp_15NVi3.jpg)

*Trousers*

> **Prompt**: A flat-lay product photograph of pleated grey wool trousers laid flat on a clean white surface with the legs straight, soft even studio lighting, e-commerce packshot, no model, no text.

![A pair of brown leather penny loafers](https://runware.ai/docs/assets/garment-loafers.66qgBJvv_1sHSB5.jpg)

*Loafers*

> **Prompt**: A flat-lay product photograph of a pair of brown leather penny loafers placed side by side and seen from directly above on a clean white surface, soft even studio lighting, e-commerce packshot, no model, no text.

![A cognac leather crossbody bag](https://runware.ai/docs/assets/garment-bag.C_mqejhA_191lT3.jpg)

*Bag*

> **Prompt**: A flat-lay product photograph of a cognac-brown leather crossbody bag with a thin shoulder strap and a brass buckle, photographed from directly above on a clean white surface, soft even studio lighting, e-commerce packshot, no model, no text.

Seven references go in, one image comes out. The garments here span **six different regions**, head, eyes, torso, legs, feet, and shoulder, and the model resolves each one without instruction. Mixing categories in a single call is the point: you don't run six passes or merge anything first.

```json
[
  {
    "taskType": "imageInference",
    "taskUUID": "b2c3d4e5-f6a7-8901-bcde-f23456789012",
    "model": "prunaai:p-image@try-on",
    "inputs": {
      "referenceImages": [
        { "image": "https://example.com/person.jpg", "role": "person" },
        { "image": "https://example.com/fedora.jpg", "role": "garment" },
        { "image": "https://example.com/sunglasses.jpg", "role": "garment" },
        { "image": "https://example.com/overshirt.jpg", "role": "garment" },
        { "image": "https://example.com/trousers.jpg", "role": "garment" },
        { "image": "https://example.com/loafers.jpg", "role": "garment" },
        { "image": "https://example.com/bag.jpg", "role": "garment" }
      ]
    }
  }
]
```

### [Working with many garments](https://runware.ai/docs/models/prunaai-p-image-try-on/guides/virtual-try-on#working-with-many-garments)

P-Image-Try-On is **built for big, mixed outfits**. Below, ten deliberately clashing pieces, a bucket hat, heart-shaped sunglasses, a striped scarf, an open leopard shirt, a graphic tee, a watch, plaid shorts, pixel-art socks, high-tops, and a messenger bag, go in as ten separate `garment` entries on one person.

![A yellow bucket hat](https://runware.ai/docs/assets/garment-bucket-hat.D5Ot4-3D_Z10uoJe.jpg)

*Bucket hat*

> **Prompt**: A flat-lay product photograph of a bright yellow canvas bucket hat, photographed from directly above on a clean white surface, soft even studio lighting, e-commerce packshot, no model, no text.

![Pink heart-shaped sunglasses](https://runware.ai/docs/assets/garment-heart-sunglasses.wuFJYjBb_ZJLntE.jpg)

*Sunglasses*

> **Prompt**: A flat-lay product photograph of pink heart-shaped sunglasses with red tinted lenses, photographed from directly above on a clean white surface, soft even studio lighting, e-commerce packshot, no model, no text.

![An orange and purple striped knit scarf](https://runware.ai/docs/assets/garment-scarf.B73ZRKrK_ZIaUWB.jpg)

*Scarf*

> **Prompt**: A flat-lay product photograph of a chunky knit scarf with bold orange and purple horizontal stripes, laid out straight on a clean white surface, soft even studio lighting, e-commerce packshot, no model, no text.

![An open leopard-print short-sleeve shirt](https://runware.ai/docs/assets/garment-open-shirt.DpTqY0xQ_ZENKKf.jpg)

*Open shirt*

> **Prompt**: A flat-lay product photograph of a leopard-print short-sleeve shirt laid flat fully unbuttoned and open on a clean white surface, soft even studio lighting, e-commerce packshot, no model, no text.

![A lime-green graphic t-shirt](https://runware.ai/docs/assets/garment-graphic-tee.DgyjJOGD_2ewxeK.jpg)

*Graphic tee*

> **Prompt**: A flat-lay product photograph of a lime-green cotton t-shirt with a bold abstract geometric graphic printed on the chest, laid flat on a clean white surface, soft even studio lighting, e-commerce packshot, no model, no text.

![A large gold wristwatch](https://runware.ai/docs/assets/garment-watch.Dx9N93Ct_15ckqP.jpg)

*Watch*

> **Prompt**: A flat-lay product photograph of a large gold wristwatch with a chunky link bracelet, photographed from directly above on a clean white surface, soft even studio lighting, e-commerce packshot, no model, no text.

![Red and green tartan plaid shorts](https://runware.ai/docs/assets/garment-plaid-shorts.BIVtJnDL_ZhXdoi.jpg)

*Shorts*

> **Prompt**: A flat-lay product photograph of red and green tartan plaid shorts, laid flat on a clean white surface, soft even studio lighting, e-commerce packshot, no model, no text.

![Green pixel-art knee-high socks](https://runware.ai/docs/assets/garment-striped-socks.CNIFKZl5_FGCDF.jpg)

*Socks*

> **Prompt**: A flat-lay product photograph of a pair of tall knee-high socks with a blocky green pixel-art pattern in a Minecraft video-game style, each sock printed with a pixelated creeper-style face, laid flat side by side on a clean white surface, soft even studio lighting, e-commerce packshot, no model, no text.

![Red high-top canvas sneakers](https://runware.ai/docs/assets/garment-high-tops.CpdM5Fch_1mH9jD.jpg)

*High-tops*

> **Prompt**: A flat-lay product photograph of a pair of red high-top canvas sneakers, placed side by side and seen from directly above on a clean white surface, soft even studio lighting, e-commerce packshot, no model, no text.

![A navy canvas crossbody messenger bag](https://runware.ai/docs/assets/garment-messenger-bag.Ca_fOAuQ_14v4Kh.jpg)

*Messenger bag*

> **Prompt**: A flat-lay product photograph of a navy-blue canvas crossbody messenger bag with tan leather trim and a buckled front flap, photographed from directly above on a clean white surface, soft even studio lighting, e-commerce packshot, no model, no text.

The model **placed nine of the ten in a single pass**, far more than one composite reference could carry. Sending the same wardrobe in smaller cuts shows where it turns selective:

![The man in nine of the ten garments, wearing the red high-tops but no socks](https://runware.ai/docs/assets/outfit-overload.CHeR8UMw_3xuog.jpg)

*Ten in, nine worn*

![The same outfit at eight garments, feet in plain white sneakers with no socks](https://runware.ai/docs/assets/outfit-overload-trimmed.Bax1Lgc0_ZrbcU2.jpg)

*Eight in, socks and shoes dropped*

![The outfit at seven garments, again in plain white sneakers with no socks](https://runware.ai/docs/assets/outfit-no-bag.BeH-_aio_1eM22.jpg)

*Seven in, socks and shoes dropped*

![The same seven-garment outfit with the shoes left out, now wearing the green pixel-art socks](https://runware.ai/docs/assets/outfit-no-shoes.MzbdbDsV_Z22AHfP.jpg)

*Seven in, shoes left out, socks land*

Two things are worth planning around, and neither makes the model less capable:

**About seven or eight garments is the reliable zone**, which matches the provider's recommendation. Below it, everything lands. Above it the model usually still delivers, as it did here, but the last piece or two aren't guaranteed.

**When two garments want the same spot, expect just one.** Socks and shoes both go on the feet, so in every outfit above that sent both, the socks dropped and the shoes sometimes defaulted to plain sneakers. Send the socks without shoes and they land cleanly, it's a tie the model has to break, not a refusal.

So for a dependable result, keep an outfit to roughly seven or eight pieces and one item per body spot. Past that, treat the extra garments as a bonus the model will often, but not always, place.

### [Matching a pose](https://runware.ai/docs/models/prunaai-p-image-try-on/guides/virtual-try-on#matching-a-pose)

A `pose` reference is a second person image whose **body position the result adopts**, while the identity stays the one from the `person` reference. It lets you restage the same person and outfit without finding a new source photo in the pose you want.

![The man standing in a neutral front-facing pose](https://runware.ai/docs/assets/person-studio.D6gwA_es_1sU3KD.jpg)

*Person*

![A man facing the camera in a relaxed, open standing pose with his arms loose at his sides](https://runware.ai/docs/assets/pose-reference.DARfiJc3_ZUVCeL.jpg)

*Pose reference*

> **Prompt**: A full-body studio photograph of a man facing the camera directly and looking into the lens with an easy, friendly expression, standing in a relaxed open posture with his weight evenly balanced, feet a comfortable width apart, and both arms loose and a little away from his sides with open relaxed hands, shoulders back and chest open, plain neutral clothing, full body visible from head to feet, seamless light-grey background, even lighting, sharp focus, pose reference, no text.

![The original man, in the overshirt and trousers, now standing in the relaxed open pose](https://runware.ai/docs/assets/pose-result.Ds-r_CI__Z2bPN9w.jpg)

*Result*

The result keeps the person's face from the first reference and the garments from the `garment` entries, but **takes the stance from the pose image**. Add it as one more entry with `role: "pose"`:

```json
"referenceImages": [
  { "image": "https://example.com/person.jpg", "role": "person" },
  { "image": "https://example.com/overshirt.jpg", "role": "garment" },
  { "image": "https://example.com/trousers.jpg", "role": "garment" },
  { "image": "https://example.com/pose.jpg", "role": "pose" }
]
```

### [Restyling with different pieces](https://runware.ai/docs/models/prunaai-p-image-try-on/guides/virtual-try-on#restyling-with-different-pieces)

The person and the pieces you keep act as a **fixed base**. Swap one `garment` reference and rerun to see the same person in a different top, each result independent.

**Set 1**:

![The man wearing the rust corduroy overshirt with grey trousers and loafers](https://runware.ai/docs/assets/swap-overshirt.odY4uuVe_Za6wJH.jpg)

*Corduroy overshirt*

![Flat-lay of the rust corduroy overshirt](https://runware.ai/docs/assets/garment-overshirt.se7Srpy5_Z1MCp60.jpg)

*Garment reference*

**Set 2**:

![The same man wearing a charcoal chunky cardigan with the same trousers and loafers](https://runware.ai/docs/assets/swap-cardigan.DoY083MD_2ocRbe.jpg)

*Chunky cardigan*

![Flat-lay of the charcoal chunky cardigan](https://runware.ai/docs/assets/garment-cardigan.DhNIet58_Z2nj47x.jpg)

*Garment reference*

**Set 3**:

![The same man wearing a navy double-breasted peacoat with the same trousers and loafers](https://runware.ai/docs/assets/swap-peacoat.utTy0JyJ_ZIyhN9.jpg)

*Navy peacoat*

![Flat-lay of the navy double-breasted peacoat](https://runware.ai/docs/assets/garment-peacoat.Db0TSGYa_Z1NLjml.jpg)

*Garment reference*

**Set 4**:

![The same man wearing a blue denim trucker jacket with the same trousers and loafers](https://runware.ai/docs/assets/swap-denim-jacket.BXdIb0FP_ZlAvAk.jpg)

*Denim jacket*

![Flat-lay of the blue denim trucker jacket](https://runware.ai/docs/assets/garment-denim-jacket.CaxiaS0x_Z1jadS4.jpg)

*Garment reference*

**Set 5**:

![The same man wearing an olive-green blazer with the same trousers and loafers](https://runware.ai/docs/assets/swap-blazer.C016BSqU_10wzxh.jpg)

*Olive blazer*

![Flat-lay of the olive-green wool blazer](https://runware.ai/docs/assets/garment-blazer.CsPninEH_ZHXc0i.jpg)

*Garment reference*

The trousers, loafers, person, and framing hold steady across every result. **Only the top changes**, which is what makes this practical for showing one model in a range of products, or one product on a range of models by swapping the `person` reference instead.

### [Turbo mode](https://runware.ai/docs/models/prunaai-p-image-try-on/guides/virtual-try-on#turbo-mode)

`settings.turbo` applies all the garment edits in a single larger pass, which **runs faster than the default at the same price**. The same four-piece outfit, generated both ways:

![The man in a fedora, rust overshirt, grey trousers, and loafers](https://runware.ai/docs/assets/turbo-normal.B0NhfKcA_bWMwB.jpg)

*Normal*

![The same man in the same outfit, generated with turbo](https://runware.ai/docs/assets/turbo-turbo.ikvb12f5_ZEsF1S.jpg)

*Turbo*

Side by side, the turbo pass tracks the normal one while finishing faster, at the same price. It takes the same garment range as the default, with **around four garments the recommended sweet spot** for turbo.

```json
[
  {
    "taskType": "imageInference",
    "taskUUID": "c3d4e5f6-a7b8-9012-cdef-345678901234",
    "model": "prunaai:p-image@try-on",
    "inputs": {
      "referenceImages": [
        { "image": "https://example.com/person.jpg", "role": "person" },
        { "image": "https://example.com/overshirt.jpg", "role": "garment" },
        { "image": "https://example.com/trousers.jpg", "role": "garment" }
      ]
    },
    "settings": { "turbo": true }
  }
]
```

Reach for turbo when you're generating at volume, ideally on small outfits of around four pieces.

### [Input guidelines](https://runware.ai/docs/models/prunaai-p-image-try-on/guides/virtual-try-on#input-guidelines)

The output quality tracks the input quality, and the person image matters most.

> [!NOTE]
> By default (`settings.preserveInputSize: true`) the result comes back at the person image's resolution. The model works at its own internal resolution and resizes, so the dimensions you send for the person set the dimensions you get back.

- **Person image:** a full-body or three-quarter shot works best. The model needs to see the whole body to place garments, and tightly cropped or partial photos can leave artifacts.
- **Garment images:** flat-lay packshots on a plain background read most reliably. Worn or on-model photos also work, and if one image shows several garments, name the target in `positivePrompt`.
- **Declined items:** handheld accessories (umbrellas, phones, wallets) and small extras like gloves or pocket squares aren't supported as garments, so leave them out of the reference list. A request built around them comes back as an error rather than a result.

With the inputs in good shape, the model takes care of fit and placement on its own, including how separate pieces layer.

### [Tips](https://runware.ai/docs/models/prunaai-p-image-try-on/guides/virtual-try-on#tips)

1. **Tag roles instead of writing a prompt.** With clean flat-lay garments, the roles carry everything the model needs. Save `positivePrompt` for the case where a reference shows more than one garment and you have to name the target.
    
2. **One item per body spot.** Two garments competing for the same place, like socks and shoes on the feet, usually leave you with just one. For big outfits, also keep to about seven or eight pieces, beyond that the model often delivers but doesn't promise.
    
3. **Add a pose reference to restage.** When you have the right person and outfit but the wrong stance, a `pose` entry borrows the body position without changing the identity.
    
4. **Use turbo for volume.** It runs faster than the default at the same price and takes the same garment range, with around four pieces the recommended sweet spot.