OutfitGen

Research · October 19, 2026 · Version 1.0

Which AI model copies a garment from a product photo best? A virtual try-on benchmark

By the OutfitGen Team · Ranked on the AI Image Editing Leaderboard

Virtual try-on means putting a garment from a product photo onto a person in another photo. The OutfitGen Team sent the same 13 try-ons to 13 image models, three times each, including the dedicated try-on model FASHN Try-On v1.6, plus OutfitGen Engine as a disclosed entry, and judged every image blind. Three models got all 13 right. Arms, hands and hair over the garment barely mattered; copying logos, stripes and sleeve length did. No model refused any of the 546 requests.

Figure 1

The same jacket, copied onto the right person and onto the wrong one

Instruction: “Change the outfit in this photo to match the reference clothing image”

Source photo: woman in her late twenties with a dark ponytail, black t-shirt and jeans, standing in a living room
Source photo
Product photo: a cream varsity jacket with green leather sleeves and a chenille R, worn by a bald, bearded man on a studio backdrop
Garment photo
Flux 2 Turbo returned the man from the product photo in the jacket, full length on a studio backdrop; the woman is gone, in all 3 runs
Flux 2 Turbo, wrong person in 3 of 3
Nano Banana 2.1 put the varsity jacket on the same woman in the same room, in all 3 runs
Nano Banana 2.1, right in 3 of 3
The jacket's product photo shows it on a man. Flux 2 Turbo returned that man instead of the woman in all three runs, and so did Flux 2 Flash. Nano Banana 2.1 put the jacket on her in every run, as did nine other models and OutfitGen Engine. Grok Imagine 2.0 returned a sweater.

Key findings

  1. 1

    Nano Banana 2.1, Seedream 5 Flash and GPT Image 2.5 Flare (high) got all 13 try-ons right in every run, and so did OutfitGen Engine, run as a disclosed entry.

  2. 2

    Covering the garment barely mattered: no model uncrossed arms or moved a hand, and only Seedream 5 Pro moved hair. Logos, stripes and sleeve length were the hard part.

  3. 3

    The three Flux 2 models had 8 of the 9 cases where the person changed; Turbo and Flash swapped a woman for the jacket's male model in all three runs.

  4. 4

    The dedicated try-on model, FASHN Try-On v1.6, placed 12th of 13 with 4 of 13 right: it kept every face but warped stripes, smeared logos and added trim or tattoos.

  5. 5

    Grok Imagine 2.0 copied none of the 13 garments: an unrelated outfit in all 39 runs, and only a generic version when two other wordings named the garment.

Why this study

Shoppers want to see a garment on themselves before they buy it, and most general image editors now accept a second photo, so anyone can attempt a try-on with the model they already use. A try-on is only useful if it shows the real product: the same logo, the same stripe, the same sleeve length, on the same person.

Public try-on research, such as VITON-HD (CVPR 2021) and Dress Code (ECCV 2022), scores dedicated try-on networks on academic datasets. We found no public per-model comparison of the general image editors people actually reach for on this job. This study provides one: the same garment photos and subjects for every model, arms, a hand or hair covering the garment, people of different builds, ages and skin tones, a garment shown on a different person to see whether that person is copied too, three runs per case, and the full per-run dataset for others to check, criticize and extend.

Research question

Given a photo of a person and a product photo of a garment, which image models put that exact garment on that person, with its colour, pattern, logo and cut intact, without changing who the person is or how they stand?

Models

ModelMakerReleasedRole in this study
Nano Banana 2.1 (Google)GoogleOct 2026Google's October 2026 image editor, at fal's default settings.
Seedream 5 FlashByteDanceSep 2026ByteDance's fast Seedream 5 editor.
GPT Image 2.5 Flare, high qualityOpenAISep 2026OpenAI's fast image model at fal's default high quality.
GPT Image 2.5 Flare, medium qualityOpenAISep 2026The same model at medium quality.
Muse Image (edit)MetaSep 2026Meta's newest image model.
Nano Banana 2 (Google Gemini 3.1 Flash Image)GoogleFeb 2026Google's image editor, widely used through the Gemini app and API.
Seedream 5 ProByteDanceJul 2026ByteDance's highest-quality Seedream 5 editor.
Flux 2 (edit)Black Forest LabsNov 2025Black Forest Labs' general image editor.
Qwen Image 3 (edit)AlibabaJul 2026Alibaba's newest image editor, run with prompt expansion off (see Method).
Flux 2 FlashBlack Forest LabsDec 2025Fastest Flux 2 variant.
Flux 2 TurboBlack Forest LabsDec 2025Faster, distilled version of Flux 2.
FASHN Try-On v1.6FASHNJun 2025A dedicated virtual try-on model: a person photo and a garment photo in, no instruction. Run in balanced mode.
Grok Imagine Image 2.0 (edit)xAIAug 2026xAI's image editor.
OutfitGen EngineNot rankedOutfitGenOutfitGen's own system, which routes each edit across models, in its Pro mode as of October 2026. A disclosed entry on the same inputs, not ranked.

Rows are in rank order: try-ons done right, then median time per image. GPT Image 2.5 Flare ran at two quality settings, and each setting counts as a model. Seedream 5 Lite, on the leaderboard, was not part of this study. OutfitGen Engine is OutfitGen's own system, shown last and not ranked. Every single model was called through fal's hosted endpoints on 19 October 2026.

Scorecard

Which AI model copies a garment from a product photo best? A virtual try-on benchmark: one row per model configuration, scored on Images delivered, of 39 runs, Clear view, done right of 4, Arms, hand or hair over the garment, of 4, Different builds and ages, of 5, Same person kept, of 13, Time per image vs the fastest (lower is better), Try-ons done right, of 13 (higher is better).
ModelMakerImages delivered, of 39 runsClear view, done right of 4Arms, hand or hair over the garment, of 4Different builds and ages, of 5Same person kept, of 13Time per image vs the fastest (lower is better)Try-ons done right, of 13 (higher is better)
Nano Banana 2.1Google39 of 394 of 44 of 45 of 513 of 131.5x13 of 13
Seedream 5 FlashByteDance39 of 394 of 44 of 45 of 513 of 132.1x13 of 13
GPT Image 2.5 Flare (high)OpenAI39 of 394 of 44 of 45 of 513 of 132.1x13 of 13
GPT Image 2.5 Flare (medium)OpenAI39 of 394 of 43 of 4Read the 23 under the hand as 20 or 28.5 of 513 of 131.5x12 of 13
Muse ImageMeta39 of 394 of 44 of 44 of 5Swapped the dress print in one run.13 of 133.4x12 of 13
Nano Banana 2Google39 of 392 of 4Lost the dress print once; moved a hand into a pocket once.4 of 45 of 513 of 131.0x11 of 13
Seedream 5 ProByteDance39 of 394 of 43 of 4Tucked the hair behind the shoulders in every run.4 of 5Washed the dress out to grey.13 of 133.5x11 of 13
Flux 2Black Forest Labs39 of 393 of 4Short sleeves on the striped top once.2 of 4Short sleeves once; darkened a subject's skin once.1 of 5Short sleeves, a top for a dress, the jacket's model, darker skin.10 of 13Product-photo model or darker skin in 3 cases.2.2x6 of 13
Qwen Image 3Alibaba32 of 397 runs timed out.2 of 4Crew neck and short sleeves on the striped top; a top for the dress.2 of 4Short sleeves or a ringer tee.2 of 5Short sleeves; slimmed a subject once.12 of 132.3x6 of 13
Flux 2 FlashBlack Forest Labs39 of 390 of 4Short sleeves; the jacket's model instead of the woman.3 of 4Short sleeves on the hoodie, arms crossed.2 of 5Short sleeves; the jacket's model in 2 runs.11 of 13The jacket's model in 2 cases.1.0xFastest in this session.5 of 13
Flux 2 TurboBlack Forest Labs39 of 390 of 4Short or see-through sleeves; the jacket's model instead of the woman.2 of 4Short sleeves once; a hem band once.2 of 5The jacket's model; a darker-skinned man in every tee run.10 of 13The jacket's model or darker skin in 3 cases.1.7x4 of 13
FASHN Try-On v1.6FASHN39 of 392 of 4Smeared the anchor; bell sleeves and trim on the dress.0 of 4Warped stripes, smeared logo, doubled sleeve, cropped hem.2 of 5Trim, thicker stripes, new typeface and tattoos.13 of 131.9x4 of 13
Grok Imagine 2.0xAI39 of 390 of 4An unrelated outfit in every run.0 of 4An unrelated outfit; arms, hand and hair kept.0 of 5An unrelated outfit in every run.13 of 131.8x0 of 13
OutfitGen EngineNot rankedOutfitGen39 of 394 of 44 of 45 of 513 of 131.6x13 of 13

A try-on counts as done right when every image the model returned copied the garment (colour, pattern, logo or text, and cut) onto the same person in the same pose. ✓ means every case or run; ! means some; ✗ means a large miss. Times are relative to the fastest model in this session, which ran slower than the leaderboard's September session, so compare them within this table only. Ties in the ranking are broken by median time, which these rounded ratios can hide.

Charts

Figure 2

Try-ons done right, out of 13 (higher is better)

Nano Banana 2.113
Seedream 5 Flash13
GPT Image 2.5 Flare (high)13
GPT Image 2.5 Flare (medium)12
Muse Image12
Nano Banana 211
Seedream 5 Pro11
Flux 26
Qwen Image 36
Flux 2 Flash5
Flux 2 Turbo4
FASHN Try-On v1.64
Grok Imagine 2.00
OutfitGen Engine (not ranked)13
A case counts when every delivered run copied the garment onto the same person in the same pose. Three runs per case. OutfitGen Engine is OutfitGen's own system, shown for disclosure and not ranked.

Figure 3

Where try-ons went wrong (green means every case done right)

Where try-ons went wrong (green means every case done right)
ModelClear viewArms, hand or hair over itDifferent builds and ages
Nano Banana 2.14/44/45/5
Seedream 5 Flash4/44/45/5
GPT Image 2.5 Flare (high)4/44/45/5
GPT Image 2.5 Flare (medium)4/43/45/5
Muse Image4/44/44/5
Nano Banana 22/44/45/5
Seedream 5 Pro4/43/44/5
Flux 23/42/41/5
Qwen Image 32/42/42/5
Flux 2 Flash0/43/42/5
Flux 2 Turbo0/42/42/5
FASHN Try-On v1.62/40/42/5
Grok Imagine 2.00/40/40/5
OutfitGen Engine (not ranked)4/44/45/5
all done rightnone done right
Cases done right out of cases in each group. Across the 13 ranked models, 35 of 52 try-ons with arms, a hand or hair over the garment were done right, against 33 of 52 with a clear view: covering the garment did not lower the score.

Figure 4

Cases where the person changed, out of 13 (fewer is better)

Flux 23
Flux 2 Turbo3
Flux 2 Flash2
Qwen Image 31
Nine other models0
OutfitGen Engine (not ranked)0
A different face, build or skin tone in at least one run. Most were the man from the varsity jacket's product photo replacing the subject, or a pale subject's skin darkened.

Method

Study design: the parameters this comparison was run under.
Study typeVirtual try-on benchmark with blinded judging
Run date19 October 2026
Models13, from 8 makers (Black Forest Labs, ByteDance, Alibaba, Google, OpenAI, xAI, Meta, FASHN); GPT Image 2.5 Flare counted at two settings. OutfitGen Engine ran as a disclosed entry, not ranked
Cases13 try-ons: 4 with a clear view, 4 with arms, a hand or hair over the garment, 5 on people of different builds, ages and skin tones
Garment photos5 synthetic product photos: a logo hoodie, a Breton stripe top and a graphic tee laid flat, a floral wrap dress on a dress form, and a varsity jacket worn by a man
Subject photos9 synthetic photos of 5 adults, fixed seeds, three-quarter length so hems and sleeves show
Runs per model per case3
Total requests546
Outputs judged539
Refused0 of 546
Request pathThe production request path at a paying user's output settings, the same two photos and instruction for every model
JudgingOne blind reviewer, contact sheets with model columns shuffled per case and all three runs side by side, verdicts written before the key was opened
Primary measureTry-ons done right: garment, person and pose all right in every delivered run
  1. Five garments were generated once as product photos with fixed seeds, each built around one hard detail: a wordmark and emblem, stripe spacing, colour blocking with a chenille letter, a dress's length and sleeve length, and a large printed number with a small sleeve logo. The varsity jacket was photographed on a man, to test whether a model copies the person in the product photo along with the garment.
  2. Nine subject photos covered five synthetic adults: a man and a woman shown front-on, with arms crossed, with a hand flat on the chest, and with long hair over both shoulders, plus a plus-size woman, a heavyset older man and a petite older woman. Each wore a plain top so the swap is unambiguous.
  3. Every model received the subject photo, the garment photo and the instruction "Change the outfit in this photo to match the reference clothing image" through one request path, three times per case. Where a maker documents a wording for two-image edits, the instruction was sent in that wording. FASHN Try-On v1.6 takes no instruction and received only the two photos.
  4. Delivered images went into one contact sheet per case with the model columns shuffled. One reviewer judged each column across its three runs without the key: the garment's colour, pattern, logo or text, and cut; whether the person's face, build and skin tone stayed the same; and whether the arms, hand and hair stayed as they were. Verdicts were written before the key was opened.
  5. Changes outside the garment, such as trousers swapped for the ones in the product photo, a zoomed-out crop or a letterboxed frame, were recorded but did not fail a try-on.
  6. Qwen Image 3 ran with fal's prompt expansion off and a fixed 3:4 size, as in the earlier studies; 7 of its 39 runs timed out at the 90-second limit and are excluded. No other run failed.
  7. Grok Imagine 2.0 returned an unrelated outfit in every run, so a follow-up the same day sent it two of the cases with two other wordings, two runs each: one naming the garment, and one in the image-order format other makers document. The follow-up is reported in Findings and is not part of the counts.

Results by case

One representative output per model is shown for each case; the judging used every run, 539 outputs in total.

Logo hoodie, clear view

Instruction: “Change the outfit in this photo to match the reference clothing image”

Look for: Is the ALPINE CO. wordmark spelled right, with the pine emblem, the pocket and full-length sleeves?

Source photo: man in his early thirties in a white t-shirt and jeans, arms at his sides, in a bright room
Source photo
Garment photo: a rust hoodie laid flat with a cream ALPINE CO. wordmark and pine emblem
Garment photo
Nano Banana 2.1: rust hoodie with the ALPINE CO. wordmark and pine emblem, same man and room, in all 3 runs
Nano Banana 2.1
Seedream 5 Flash: rust hoodie with the ALPINE CO. wordmark and pine emblem, same man and room, in all 3 runs
Seedream 5 Flash
GPT Image 2.5 Flare (high): rust hoodie with the ALPINE CO. wordmark and pine emblem, same man and room, in all 3 runs
GPT Image 2.5 Flare (high)
GPT Image 2.5 Flare (medium): rust hoodie with the ALPINE CO. wordmark and pine emblem, same man and room, in all 3 runs
GPT Image 2.5 Flare (medium)
Muse Image: rust hoodie with the ALPINE CO. wordmark and pine emblem, same man and room, in all 3 runs
Muse Image
Nano Banana 2: rust hoodie with the ALPINE CO. wordmark and pine emblem, same man and room, in all 3 runs
Nano Banana 2
Seedream 5 Pro: rust hoodie with the ALPINE CO. wordmark and pine emblem, same man and room, in all 3 runs
Seedream 5 Pro
Flux 2: rust hoodie with the ALPINE CO. wordmark and pine emblem, same man and room, in all 3 runs
Flux 2
Qwen Image 3: hoodie and wordmark copied; one run zoomed out to full body
Qwen Image 3
Flux 2 Flash: hoodie and wordmark copied, but with short sleeves in this run
Flux 2 Flash
Flux 2 Turbo: hoodie and wordmark copied, but with short sleeves in this run
Flux 2 Turbo
FASHN Try-On v1.6: hoodie copied with a slightly larger wordmark, same man, in all 3 runs
FASHN Try-On v1.6
Grok Imagine 2.0: a navy button-down shirt instead of the hoodie; the hoodie appeared in none of 3 runs
Grok Imagine 2.0
OutfitGen Engine: rust hoodie with the ALPINE CO. wordmark and pine emblem, same man and room, in all 3 runs
OutfitGen Engine (not ranked)

Verdict: Ten models and OutfitGen Engine copied the hoodie, wordmark and pine emblem in every run. Flux 2 Turbo and Flux 2 Flash cut the sleeves short in one run each. Grok Imagine 2.0 returned navy shirts and a grey henley instead.

In OutfitGen this is a product-photo job for the AI virtual try-on.

Varsity jacket shown on another person

Instruction: “Change the outfit in this photo to match the reference clothing image”

Look for: Does the jacket arrive on her, without the face, build or trainers of the man in the product photo?

Source photo: woman in her late twenties with a dark ponytail, black t-shirt and jeans, standing in a living room
Source photo
Garment photo: a cream varsity jacket with green leather sleeves and a chenille R, worn by a bald, bearded man
Garment photo
Nano Banana 2.1: the varsity jacket on the same woman in all 3 runs, with her jeans swapped for the product photo's black jeans
Nano Banana 2.1
Seedream 5 Flash: the varsity jacket with the chenille R on the same woman, in all 3 runs
Seedream 5 Flash
GPT Image 2.5 Flare (high): the varsity jacket with the chenille R on the same woman, in all 3 runs
GPT Image 2.5 Flare (high)
GPT Image 2.5 Flare (medium): the varsity jacket with the chenille R on the same woman, in all 3 runs
GPT Image 2.5 Flare (medium)
Muse Image: the varsity jacket with the chenille R on the same woman, in all 3 runs
Muse Image
Nano Banana 2: the jacket on the same woman, but a hand moved into a pocket and green trousers added in this run
Nano Banana 2
Seedream 5 Pro: the varsity jacket on the same woman in all 3 runs, with her jeans swapped for black jeans
Seedream 5 Pro
Flux 2: the varsity jacket with the chenille R on the same woman, in all 3 runs
Flux 2
Qwen Image 3: the varsity jacket with the chenille R on the same woman, in all 3 runs
Qwen Image 3
Flux 2 Flash: the jacket arrived on a bearded man instead of the woman, in all 3 runs
Flux 2 Flash
Flux 2 Turbo: the man from the product photo, full length with trainers on a studio backdrop; the woman is gone in all 3 runs
Flux 2 Turbo
FASHN Try-On v1.6: the varsity jacket with the chenille R on the same woman, in all 3 runs
FASHN Try-On v1.6
Grok Imagine 2.0: a cream cable-knit sweater instead of the jacket
Grok Imagine 2.0
OutfitGen Engine: the varsity jacket on the same woman in all 3 runs, with her jeans swapped for the product photo's black jeans
OutfitGen Engine (not ranked)

Verdict: The identity trap. Flux 2 Turbo and Flux 2 Flash returned the man from the product photo instead of her in all three runs. Nine models and OutfitGen Engine put the jacket on her with face and pose kept in every run. Nano Banana 2 moved a hand into a pocket in one run, and Grok Imagine 2.0 returned sweaters and a blouse.

In OutfitGen this is a product-photo job for the AI virtual try-on.

Logo hoodie, arms crossed over it

Instruction: “Change the outfit in this photo to match the reference clothing image”

Look for: Do the arms stay crossed with the wordmark showing above them, and do the sleeves reach the wrists?

Source photo: the same man in a white t-shirt with his arms crossed over his chest
Source photo
Garment photo: a rust hoodie laid flat with a cream ALPINE CO. wordmark and pine emblem
Garment photo
Nano Banana 2.1: hoodie and wordmark copied above the crossed arms, same man, in all 3 runs
Nano Banana 2.1
Seedream 5 Flash: hoodie and wordmark copied above the crossed arms, same man, in all 3 runs
Seedream 5 Flash
GPT Image 2.5 Flare (high): hoodie and wordmark copied above the crossed arms, same man, in all 3 runs
GPT Image 2.5 Flare (high)
GPT Image 2.5 Flare (medium): hoodie and wordmark copied above the crossed arms, same man, in all 3 runs
GPT Image 2.5 Flare (medium)
Muse Image: hoodie and wordmark copied above the crossed arms, same man, in all 3 runs
Muse Image
Nano Banana 2: hoodie and wordmark copied above the crossed arms, same man, in all 3 runs
Nano Banana 2
Seedream 5 Pro: hoodie and wordmark copied above the crossed arms, same man, in all 3 runs
Seedream 5 Pro
Flux 2: hoodie and wordmark copied above the crossed arms, same man, in all 3 runs
Flux 2
Qwen Image 3: hoodie copied with the arms still crossed, zoomed out to full body in this run
Qwen Image 3
Flux 2 Flash: a short-sleeved hoodie with bare forearms crossed, in 2 of 3 runs
Flux 2 Flash
Flux 2 Turbo: hoodie copied with the arms still crossed; short sleeves in 1 of 3 runs
Flux 2 Turbo
FASHN Try-On v1.6: hoodie copied with the arms still crossed; one run doubled a sleeve into a dark fold
FASHN Try-On v1.6
Grok Imagine 2.0: a brown leather jacket instead of the hoodie; the arms stayed crossed
Grok Imagine 2.0
OutfitGen Engine: hoodie and wordmark copied above the crossed arms, same man, in all 3 runs
OutfitGen Engine (not ranked)

Verdict: Every model kept the arms crossed in every run. Nine models and OutfitGen Engine also copied the hoodie right every time. Flux 2 Flash drew short sleeves in two runs and Flux 2 Turbo in one, FASHN Try-On v1.6 doubled a sleeve into a dark fold once, and Grok Imagine 2.0 returned a leather jacket, a blazer and a plaid shirt.

In OutfitGen this is a product-photo job for the AI virtual try-on.

Breton stripe top, arms crossed over it

Instruction: “Change the outfit in this photo to match the reference clothing image”

Look for: Do the stripes break around the arms and resume at the right spacing, with long sleeves, a boat neck and the red anchor?

Source photo: the same woman in a black t-shirt with her arms crossed
Source photo
Garment photo: a long-sleeved navy and white Breton stripe top laid flat, with a small red anchor
Garment photo
Nano Banana 2.1: Breton stripes and red anchor copied, stripes continuing around the crossed arms, in all 3 runs
Nano Banana 2.1
Seedream 5 Flash: Breton stripes and red anchor copied, stripes continuing around the crossed arms, in all 3 runs
Seedream 5 Flash
GPT Image 2.5 Flare (high): Breton stripes and red anchor copied, stripes continuing around the crossed arms, in all 3 runs
GPT Image 2.5 Flare (high)
GPT Image 2.5 Flare (medium): Breton stripes and red anchor copied, stripes continuing around the crossed arms, in all 3 runs
GPT Image 2.5 Flare (medium)
Muse Image: Breton stripes and red anchor copied, stripes continuing around the crossed arms, in all 3 runs
Muse Image
Nano Banana 2: Breton stripes and red anchor copied, stripes continuing around the crossed arms, in all 3 runs
Nano Banana 2
Seedream 5 Pro: Breton stripes and red anchor copied, stripes continuing around the crossed arms, in all 3 runs
Seedream 5 Pro
Flux 2: Breton top copied, but her skin tone darkened in this run
Flux 2
Qwen Image 3: a short-sleeved crew-neck striped tee instead of the long-sleeved boat neck
Qwen Image 3
Flux 2 Flash: Breton stripes and red anchor copied, stripes continuing around the crossed arms, in all 3 runs
Flux 2 Flash
Flux 2 Turbo: Breton top copied; a navy hem band was added in 1 of 3 runs
Flux 2 Turbo
FASHN Try-On v1.6: Breton top copied with the arms crossed; the stripes warped on the arms in 2 of 3 runs
FASHN Try-On v1.6
Grok Imagine 2.0: a cream cable-knit turtleneck instead of the striped top
Grok Imagine 2.0
OutfitGen Engine: Breton stripes and red anchor copied, stripes continuing around the crossed arms, in all 3 runs
OutfitGen Engine (not ranked)

Verdict: Eight models and OutfitGen Engine carried the stripes around the crossed arms in every run. FASHN Try-On v1.6 warped them on the arms and added extra anchors, Qwen Image 3 drew a short-sleeve crew tee, Flux 2 darkened her skin in one run and Flux 2 Turbo added a hem band in one. Grok Imagine 2.0 returned a turtleneck, a blazer and a blouse.

In OutfitGen this is a product-photo job for the AI virtual try-on.

Varsity jacket on a heavyset older man

Instruction: “Change the outfit in this photo to match the reference clothing image”

Look for: Does the jacket fit his build, with his bald head, grey beard and age kept, rather than the slimmer man in the product photo?

Source photo: heavyset man in his late fifties, bald with a grey beard, in a navy t-shirt and chinos in a home office
Source photo
Garment photo: a cream varsity jacket with green leather sleeves and a chenille R, worn by a slimmer, bald, bearded man
Garment photo
Nano Banana 2.1: the varsity jacket fitted to his own build, same face, beard and age, in all 3 runs
Nano Banana 2.1
Seedream 5 Flash: the varsity jacket fitted to his own build, same face, beard and age, in all 3 runs
Seedream 5 Flash
GPT Image 2.5 Flare (high): the varsity jacket fitted to his own build, same face, beard and age, in all 3 runs
GPT Image 2.5 Flare (high)
GPT Image 2.5 Flare (medium): the varsity jacket fitted to his own build, same face, beard and age, in all 3 runs
GPT Image 2.5 Flare (medium)
Muse Image: the varsity jacket fitted to his own build, same face, beard and age, in all 3 runs
Muse Image
Nano Banana 2: the varsity jacket fitted to his own build, same face, beard and age, in all 3 runs
Nano Banana 2
Seedream 5 Pro: the varsity jacket fitted to his own build, same face, beard and age, in all 3 runs
Seedream 5 Pro
Flux 2: the jacket fitted to him in this run; another run returned the man from the product photo instead
Flux 2
Qwen Image 3: the varsity jacket fitted to his own build in both delivered runs; one run timed out
Qwen Image 3
Flux 2 Flash: the man from the product photo, with darker skin and a dark beard, in place of the subject in 2 of 3 runs
Flux 2 Flash
Flux 2 Turbo: the man from the product photo in a jacket with three garbled R patches
Flux 2 Turbo
FASHN Try-On v1.6: the varsity jacket fitted to his own build, same face, beard and age, in all 3 runs
FASHN Try-On v1.6
Grok Imagine 2.0: a grey blazer over a white shirt instead of the jacket
Grok Imagine 2.0
OutfitGen Engine: the varsity jacket fitted to his own build, same face, beard and age, in all 3 runs
OutfitGen Engine (not ranked)

Verdict: All three Flux 2 models swapped in the man from the product photo in at least one run: Flux 2 Flash in two of three, Flux 2 and Flux 2 Turbo in one each, Turbo with three garbled R patches. Nine models and OutfitGen Engine fitted the jacket to his own build in every run. Grok Imagine 2.0 returned blazers and a check shirt.

In OutfitGen this is a product-photo job for the AI virtual try-on.

Graphic tee on a heavyset older man

Instruction: “Change the outfit in this photo to match the reference clothing image”

Look for: Does RIVERSIDE 23 read right at his chest's scale, with the small red sleeve logo, and does his pale skin stay pale?

Source photo: heavyset man in his late fifties, bald with a grey beard, in a navy t-shirt and chinos in a home office
Source photo
Garment photo: a white t-shirt laid flat with RIVERSIDE 23 printed in navy and a small red sleeve logo
Garment photo
Nano Banana 2.1: the RIVERSIDE 23 tee with the small red sleeve logo, same man, in all 3 runs
Nano Banana 2.1
Seedream 5 Flash: the RIVERSIDE 23 tee with the small red sleeve logo, same man, in all 3 runs
Seedream 5 Flash
GPT Image 2.5 Flare (high): the RIVERSIDE 23 tee with the small red sleeve logo, same man, in all 3 runs
GPT Image 2.5 Flare (high)
GPT Image 2.5 Flare (medium): the RIVERSIDE 23 tee with the small red sleeve logo, same man, in all 3 runs
GPT Image 2.5 Flare (medium)
Muse Image: the RIVERSIDE 23 tee with the small red sleeve logo, same man, in all 3 runs
Muse Image
Nano Banana 2: the RIVERSIDE 23 tee with the small red sleeve logo, same man, in all 3 runs
Nano Banana 2
Seedream 5 Pro: the RIVERSIDE 23 tee with the small red sleeve logo, same man, in all 3 runs
Seedream 5 Pro
Flux 2: tee copied in this run; another run tanned his pale skin several shades
Flux 2
Qwen Image 3: a ringer tee with navy trim, zoomed out to full body
Qwen Image 3
Flux 2 Flash: the RIVERSIDE 23 tee with the small red sleeve logo, same man, in all 3 runs
Flux 2 Flash
Flux 2 Turbo: tee copied on a man with much darker skin; his pale skin changed in all 3 runs
Flux 2 Turbo
FASHN Try-On v1.6: the tee in a different typeface with an enlarged sleeve logo, and forearm tattoos added, in every run
FASHN Try-On v1.6
Grok Imagine 2.0: a three-piece suit and tie instead of the tee
Grok Imagine 2.0
OutfitGen Engine: the RIVERSIDE 23 tee with the small red sleeve logo, same man, in all 3 runs
OutfitGen Engine (not ranked)

Verdict: Eight models and OutfitGen Engine printed RIVERSIDE 23 and the sleeve logo on him in every run. FASHN Try-On v1.6 changed the typeface, enlarged the sleeve logo and added forearm tattoos in every run. Flux 2 Turbo darkened his skin in all three runs and Flux 2 in one. Grok Imagine 2.0 returned a suit and blazers.

In OutfitGen this is a product-photo job for the AI virtual try-on.

Findings

Three models, and OutfitGen Engine, got every try-on right

Nano Banana 2.1, Seedream 5 Flash and GPT Image 2.5 Flare (high) copied all 13 garments onto the right person in all 39 of their runs, and OutfitGen Engine matched them. Nano Banana 2.1 was the quickest of the three, taking about a quarter less time per image than the other two, which were level. GPT Image 2.5 Flare (medium) and Muse Image missed one case each: Flare at medium read the 23 under the subject's hand as 20 or 28, and Muse swapped the dress print in one run. A harder set, with small text, outfits of several garments or back views, is the next step to separate the top models.

Covering the garment barely mattered; detail did

No model uncrossed the arms or moved the hand off the chest in any run. Only Seedream 5 Pro moved hair, tucking it behind the shoulders in all three runs to show the wordmark. The 13 ranked models got 35 of 52 covered try-ons right against 33 of 52 clear ones. What went wrong was the garment's detail: short sleeves on a long-sleeved hoodie or top, a wrap dress turned into a top over jeans, a misread number, warped stripes and smeared logos.

The Flux 2 models copied the person in the product photo

Flux 2, Flux 2 Turbo and Flux 2 Flash account for 8 of the 9 cases where the subject changed; Qwen Image 3 had the ninth, slimming a subject in one run. When the jacket's product photo showed it worn by a man, Flux 2 Turbo and Flux 2 Flash returned that man instead of the woman in all three runs, and all three Flux 2 models did the same at least once on the heavyset man. Flux 2 Turbo also darkened a pale subject's skin in every graphic-tee run.

The dedicated try-on model placed 12th of 13

FASHN Try-On v1.6 is built only for try-on and takes no instruction. It kept every face and body in all 39 runs, including both jacket cases that caught the Flux 2 models. It lost on the garment: stripes warped or thickened, the anchor and sleeve logos smeared or enlarged, white trim and bell sleeves added to the dress, a new typeface on the tee and tattoos on the man wearing it. It got 4 of 13 right: the hoodie and the varsity jacket, twice each.

Grok Imagine 2.0 copied none of the 13 garments

With the study's instruction, Grok Imagine 2.0 dressed the person in an unrelated outfit in all 39 runs: shirts, blazers, sweaters and a suit. It kept the person, the pose and the room every time. In a follow-up with two other wordings, naming the garment got a generic version, a plain grey hoodie or a floral dress in the wrong colour or cut, never the product in the photo.

What this means for OutfitGen

Copying a garment from a product photo is the virtual try-on mode of OutfitGen's clothes changer. OutfitGen Engine, which routes each edit across models, got all 13 try-ons right here, and studies like this one decide which models it trusts for which garments.

AI clothes changerAI virtual try-onAI background changerAI pose changer

Reproducing the study

The study is built to be re-run on the same photos whenever a new model ships. The download below has every run with its blind verdict.

  • Fixed-seed sources. Every subject and garment photo is generated once with a fixed seed and kept, so a future run compares new models on the same people and the same products.
  • Three runs per case per model. A try-on that works once can fail on the next run; a case only counts when every delivered run is right.
  • One request path. Every model receives the same two photos and instruction through the same code, so differences come from the models.
  • A trap case. The varsity jacket is shown on a different person, which is the quickest way to see whether a model copies only the garment.

The corpus

OutfitGen virtual try-on benchmark, October 2026. 546 runs: 13 image models and OutfitGen Engine x 13 try-ons x 3 repetitions, on 9 synthetic subject photos and 5 synthetic garment photos, with the outcome of every run and the blind verdict for each model on each case (garment right, person kept, done right).

Measured

  • Try-ons done right per model (blind)
  • Garment fidelity: colour, pattern, logo or text, cut
  • Identity preservation
  • Pose, hands and hair kept
  • Delivery and refusal per run
Download the dataset (CSV, 546 rows)

One row per test edit: case, instruction, model, maker, repetition and outcome. Refusals are split by channel (input check or blanked output). Free to reuse with attribution.

Column definitions
study
Study identifier, the last part of this page's URL.
run
Row number.
suite
quality (judged edits) or refusal (does the model return an image at all).
case_id
The edit, matching the cases on this page.
case_title
Short description of the edit.
tool
The kind of edit: clothes, background, pose.
instruction
The exact text sent to the model.
source_photo
Identifier of the synthetic source photo.
reference_photo
Identifier of the garment photo, for reference try-on edits.
model
Model and setting tested.
maker
Company that makes the model.
repetition
Which repeat of the same edit, starting at 1.
outcome
delivered, refused, timeout, provider_error, no_image or request_error.
refusal_channel
input_check (rejected before generating) or blanked_output (generated, then returned blank).
nsfw_flag
The provider's own content flag on the response, when it reports one.
output_width
Width in pixels of a delivered image.
output_height
Height in pixels of a delivered image.
judged_garment_right
Blind verdict for this model on this case, across its delivered runs: yes when every run copied the garment's colour, pattern, logo or text and cut. Empty when the study did not judge it.
judged_identity_kept
Blind verdict: yes when every delivered run kept the person's face, build and skin tone.
judged_done_right
Blind verdict: yes when the garment was right, the person kept and the pose, hands and hair unchanged in every delivered run.

Limitations

  • The subjects and garments are AI-generated, not shopper photos or real catalog shots. Real product photos vary more in lighting, folds and angle.
  • The source photos were generated with Flux 2. That could make them slightly easier for the Flux 2 editors, which still placed in the bottom half.
  • Three runs per case bounds luck but not tightly. A model that got a case right 3 of 3 may miss it occasionally at larger volume.
  • One reviewer judged every image. The delivery counts do not depend on judgment; the try-on verdicts do.
  • Every model got one instruction wording, in its maker's documented format where one exists. Grok Imagine 2.0 was also tried with two other wordings and still did not copy the garment.
  • FASHN Try-On v1.6 ran in balanced mode; its slower quality mode was not tested.
  • Changes outside the garment, such as trousers swapped for the product photo's, were recorded but not counted against a try-on.
  • Times come from one session that ran slower than the leaderboard's September session, so they compare models within this study only.
  • Models change without notice. These results describe the models as served on 19 October 2026.

Definitions

Model
One model at one setting. GPT Image 2.5 Flare at medium and at high quality count as two models.
Virtual try-on
Putting a garment from a product photo onto the person in another photo, keeping the person, pose and scene.
Images delivered, of 39 runs
Runs that returned an image, out of 13 cases x 3 runs. No run in this study was refused; the only misses were timeouts.
Clear view, done right of 4
Try-ons done right on the four cases where nothing covers the garment: the hoodie and stripe top on a man, the wrap dress and the varsity jacket on a woman.
Arms, hand or hair over the garment, of 4
Try-ons done right on four cases where crossed arms, a hand flat on the chest or long hair covers part of the garment. The arms, hand or hair have to stay where they were.
Different builds and ages, of 5
Try-ons done right on a plus-size woman, a heavyset older man and a petite older woman, five cases in all. The garment has to fit their body, not the product photo's.
Same person kept, of 13
Cases where every run kept the subject's face, build and skin tone.
Time per image vs the fastest (lower is better)
Median seconds from request to delivered image, divided by the fastest model's median in the same session.
Try-ons done right, of 13 (higher is better)
Cases where every delivered run copied the garment's colour, pattern, logo or text and cut, onto the same person, in the same pose.
Disclosed entry
OutfitGen's own system run on the same inputs and shown for transparency, outside the ranking.

Common questions

Which AI model is best for virtual try-on?

In this October 2026 test, Nano Banana 2.1, Seedream 5 Flash and GPT Image 2.5 Flare (high) copied all 13 garments from product photos onto the right person in every run. Nano Banana 2.1 was the quickest of the three.

Is a dedicated try-on model better than a general image editor?

Not in this test. FASHN Try-On v1.6, built only for try-on, kept every face but got 4 of 13 try-ons right, 12th of 13. Seven general editors got 11 or more right.

Can AI try-on handle crossed arms or long hair over the clothes?

Yes! No model uncrossed the arms or moved a hand in any run, and the covered cases scored as well as the clear ones. Only Seedream 5 Pro moved hair, tucking it back to show a logo.

Why does AI try-on change my face?

Some models copy the person in the product photo along with the garment, or shift the skin tone. In this test Flux 2, Flux 2 Turbo and Flux 2 Flash accounted for 8 of the 9 cases where the person changed, and nine of the 13 models never changed the person.

Can Grok Imagine do virtual try-on?

Not in this test. Grok Imagine 2.0 copied none of the 13 garments: it returned an unrelated outfit in all 39 runs, and a generic version when the garment was named, never the product in the photo.

Does OutfitGen do virtual try-on?

Yes! Add your photo and a product photo to the AI virtual try-on. OutfitGen Engine, which routes each edit across models, got all 13 try-ons in this study right.

How to cite

This study lives at one stable URL. It is updated in place, with a version number and a changelog, so a link made today keeps resolving and a reader can tell which version was read.

Stable URL

https://outfitgen.ai/research/virtual-try-on-2026-10

Citation

OutfitGen. (2026, October 19). Which AI model copies a garment from a product photo best? A virtual try-on benchmark. OutfitGen Research, version 1.0. https://outfitgen.ai/research/virtual-try-on-2026-10

BibTeX

@misc{outfitgen-virtual-try-on-2026-10,
  title  = {Which AI model copies a garment from a product photo best? A virtual try-on benchmark},
  author = {{OutfitGen}},
  year   = {2026},
  month  = {October},
  note   = {OutfitGen Research, version 1.0},
  url    = {https://outfitgen.ai/research/virtual-try-on-2026-10}
}

Version history

  1. Version 1.0, October 19, 2026. First publication. Thirteen models plus OutfitGen Engine, 13 try-ons, three runs each, 546 requests.

References

Related

Run these edits on your own photo

OutfitGen runs these models for you. Upload a photo, describe the change, no account needed to start.

Try the AI Clothes Changer