{"id":1064,"date":"2026-02-24T22:12:31","date_gmt":"2026-02-24T22:12:31","guid":{"rendered":"https:\/\/wiro.ai\/blog\/?p=1064"},"modified":"2026-02-24T22:12:32","modified_gmt":"2026-02-24T22:12:32","slug":"virtual-try-on-v2-6-before-after-outfit-tests","status":"publish","type":"post","link":"https:\/\/wiro.ai\/blog\/virtual-try-on-v2-6-before-after-outfit-tests\/","title":{"rendered":"Virtual Try-On V2: 6 Before\/After Outfit Tests"},"content":{"rendered":"<p>Virtual Try-On V2 takes a model photo plus garment images and generates a new on-model try-on shot. This post runs 6 before\/after tests and shows the exact outputs.<\/p>\n<p>The model tested: <a href=\"https:\/\/wiro.ai\/models\/wiro\/virtual-try-on-v2\">https:\/\/wiro.ai\/models\/wiro\/virtual-try-on-v2<\/a><\/p>\n<h2>What Virtual Try-On V2 does<\/h2>\n<p>Virtual Try-On V2 targets fashion content pipelines. It accepts one human image and up to 13 garment images, then renders a new photo with the outfit applied. It can also generate video, but this test stays on images to keep comparisons clean.<\/p>\n<ul>\n<li>Inputs: inputImageHuman + inputImageClothes[]<\/li>\n<li>Controls used here: style, pose, plan, ratio, outputType<\/li>\n<li>Output: 1 image per run<\/li>\n<\/ul>\n<h2>Test setup<\/h2>\n<p>All 6 runs use the same human photo and the same 3 garment images. Only the shooting settings change.<\/p>\n<h3>Input: human<\/h3>\n<figure><img decoding=\"async\" src=\"https:\/\/wiro.ai\/blog\/wp-content\/uploads\/2026\/02\/vto-human.jpg\" alt=\"Input human photo for Virtual Try-On V2 test\" \/><figcaption>Prompt: inputImageHuman=https:\/\/cdn.wiro.ai\/uploads\/sampleinputs\/virtual-try-on-v2-input-2-4.jpg<\/figcaption><\/figure>\n<h3>Input: garments<\/h3>\n<figure><img decoding=\"async\" src=\"https:\/\/wiro.ai\/blog\/wp-content\/uploads\/2026\/02\/vto-clothes-1.jpg\" alt=\"Garment input 1 for Virtual Try-On V2\" \/><figcaption>Prompt: inputImageClothes[0]=https:\/\/cdn.wiro.ai\/uploads\/sampleinputs\/virtual-try-on-v2-input-2-1.jpg<\/figcaption><\/figure>\n<figure><img decoding=\"async\" src=\"https:\/\/wiro.ai\/blog\/wp-content\/uploads\/2026\/02\/vto-clothes-2.jpg\" alt=\"Garment input 2 for Virtual Try-On V2\" \/><figcaption>Prompt: inputImageClothes[1]=https:\/\/cdn.wiro.ai\/uploads\/sampleinputs\/virtual-try-on-v2-input-2-2.jpg<\/figcaption><\/figure>\n<figure><img decoding=\"async\" src=\"https:\/\/wiro.ai\/blog\/wp-content\/uploads\/2026\/02\/vto-clothes-3.jpg\" alt=\"Garment input 3 for Virtual Try-On V2\" \/><figcaption>Prompt: inputImageClothes[2]=https:\/\/cdn.wiro.ai\/uploads\/sampleinputs\/virtual-try-on-v2-input-2-3.jpg<\/figcaption><\/figure>\n<h2>Before and after results (6 runs)<\/h2>\n<h3>1) Keep original scene (virtual-try-on), standing, wide shot, 9:16<\/h3>\n<p>This run tries to preserve the original scene while swapping the outfit. Look for clean seams at the waist and realistic fabric folds near elbows.<\/p>\n<table>\n<tbody>\n<tr>\n<td>\n<figure><img decoding=\"async\" src=\"https:\/\/wiro.ai\/blog\/wp-content\/uploads\/2026\/02\/vto-human.jpg\" alt=\"Before: original human photo\" \/><figcaption>Prompt: BEFORE (input human)<\/figcaption><\/figure>\n<\/td>\n<td>\n<figure><img decoding=\"async\" src=\"https:\/\/wiro.ai\/blog\/wp-content\/uploads\/2026\/02\/vto-out-1-virtual-try-on-9x16-1-scaled.jpg\" alt=\"After: virtual try-on output in original scene, 9:16\" \/><figcaption>Prompt: style=virtual-try-on, pose=standing, plan=wide-shot, ratio=9:16, outputType=image<\/figcaption><\/figure>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>2) Studio look, standing, wide shot, 9:16<\/h3>\n<p>Studio style pushes cleaner lighting and background control. This is usually the easiest setting for product teams because it matches catalog expectations.<\/p>\n<table>\n<tbody>\n<tr>\n<td>\n<figure><img decoding=\"async\" src=\"https:\/\/wiro.ai\/blog\/wp-content\/uploads\/2026\/02\/vto-human.jpg\" alt=\"Before: original human photo\" \/><figcaption>Prompt: BEFORE (input human)<\/figcaption><\/figure>\n<\/td>\n<td>\n<figure><img decoding=\"async\" src=\"https:\/\/wiro.ai\/blog\/wp-content\/uploads\/2026\/02\/vto-out-2-studio-9x16-1-scaled.jpg\" alt=\"After: studio virtual try-on output, 9:16\" \/><figcaption>Prompt: style=studio, pose=standing, plan=wide-shot, ratio=9:16, outputType=image<\/figcaption><\/figure>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>3) Indoor lifestyle, standing, medium shot, 1:1<\/h3>\n<p>Medium shot trades full-body garment checks for a more product page friendly crop. It works best for tops, jackets, and accessories.<\/p>\n<table>\n<tbody>\n<tr>\n<td>\n<figure><img decoding=\"async\" src=\"https:\/\/wiro.ai\/blog\/wp-content\/uploads\/2026\/02\/vto-human.jpg\" alt=\"Before: original human photo\" \/><figcaption>Prompt: BEFORE (input human)<\/figcaption><\/figure>\n<\/td>\n<td>\n<figure><img decoding=\"async\" src=\"https:\/\/wiro.ai\/blog\/wp-content\/uploads\/2026\/02\/vto-out-3-indoor-1x1-1.jpg\" alt=\"After: indoor lifestyle try-on output, 1:1\" \/><figcaption>Prompt: style=indoor, pose=standing, plan=medium-shot, ratio=1:1, outputType=image<\/figcaption><\/figure>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>4) Outdoor location, standing, wide shot, 16:9<\/h3>\n<p>Wide landscape makes sense for homepage hero sections and lookbook banners. The risk is the outfit getting smaller in-frame.<\/p>\n<table>\n<tbody>\n<tr>\n<td>\n<figure><img decoding=\"async\" src=\"https:\/\/wiro.ai\/blog\/wp-content\/uploads\/2026\/02\/vto-human.jpg\" alt=\"Before: original human photo\" \/><figcaption>Prompt: BEFORE (input human)<\/figcaption><\/figure>\n<\/td>\n<td>\n<figure><img decoding=\"async\" src=\"https:\/\/wiro.ai\/blog\/wp-content\/uploads\/2026\/02\/vto-out-4-outdoor-16x9-1-scaled.jpg\" alt=\"After: outdoor try-on output, 16:9\" \/><figcaption>Prompt: style=outdoor, pose=standing, plan=wide-shot, ratio=16:9, outputType=image<\/figcaption><\/figure>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>5) Studio, side profile, wide shot, 9:16<\/h3>\n<p>Side profile can reveal fit issues fast. Hands, hair, and sleeve edges get harder here, so it is a good stress test.<\/p>\n<table>\n<tbody>\n<tr>\n<td>\n<figure><img decoding=\"async\" src=\"https:\/\/wiro.ai\/blog\/wp-content\/uploads\/2026\/02\/vto-human.jpg\" alt=\"Before: original human photo\" \/><figcaption>Prompt: BEFORE (input human)<\/figcaption><\/figure>\n<\/td>\n<td>\n<figure><img decoding=\"async\" src=\"https:\/\/wiro.ai\/blog\/wp-content\/uploads\/2026\/02\/vto-out-5-studio-side-9x16-1-scaled.jpg\" alt=\"After: studio side profile try-on output, 9:16\" \/><figcaption>Prompt: style=studio, pose=side-profile, plan=wide-shot, ratio=9:16, outputType=image<\/figcaption><\/figure>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>6) Keep original scene (virtual-try-on), sitting, medium shot, 1:1<\/h3>\n<p>Sitting pose changes garment tension at the waist and knees. If the model handles this, it usually handles real-world catalog variety better.<\/p>\n<table>\n<tbody>\n<tr>\n<td>\n<figure><img decoding=\"async\" src=\"https:\/\/wiro.ai\/blog\/wp-content\/uploads\/2026\/02\/vto-human.jpg\" alt=\"Before: original human photo\" \/><figcaption>Prompt: BEFORE (input human)<\/figcaption><\/figure>\n<\/td>\n<td>\n<figure><img decoding=\"async\" src=\"https:\/\/wiro.ai\/blog\/wp-content\/uploads\/2026\/02\/vto-out-6-virtual-sitting-1x1-1.jpg\" alt=\"After: sitting medium shot try-on output, 1:1\" \/><figcaption>Prompt: style=virtual-try-on, pose=sitting, plan=medium-shot, ratio=1:1, outputType=image<\/figcaption><\/figure>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>Quick comparison<\/h2>\n<table>\n<thead>\n<tr>\n<th>Run<\/th>\n<th>Style<\/th>\n<th>Pose<\/th>\n<th>Plan<\/th>\n<th>Ratio<\/th>\n<th>Observed runtime<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>1<\/td>\n<td>virtual-try-on<\/td>\n<td>standing<\/td>\n<td>wide-shot<\/td>\n<td>9:16<\/td>\n<td>~37s<\/td>\n<\/tr>\n<tr>\n<td>2<\/td>\n<td>studio<\/td>\n<td>standing<\/td>\n<td>wide-shot<\/td>\n<td>9:16<\/td>\n<td>~29s<\/td>\n<\/tr>\n<tr>\n<td>3<\/td>\n<td>indoor<\/td>\n<td>standing<\/td>\n<td>medium-shot<\/td>\n<td>1:1<\/td>\n<td>~27s<\/td>\n<\/tr>\n<tr>\n<td>4<\/td>\n<td>outdoor<\/td>\n<td>standing<\/td>\n<td>wide-shot<\/td>\n<td>16:9<\/td>\n<td>~30s<\/td>\n<\/tr>\n<tr>\n<td>5<\/td>\n<td>studio<\/td>\n<td>side-profile<\/td>\n<td>wide-shot<\/td>\n<td>9:16<\/td>\n<td>~33s<\/td>\n<\/tr>\n<tr>\n<td>6<\/td>\n<td>virtual-try-on<\/td>\n<td>sitting<\/td>\n<td>medium-shot<\/td>\n<td>1:1<\/td>\n<td>~36s<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>What it does well (and what to watch)<\/h2>\n<h3>Works well for<\/h3>\n<ul>\n<li>Generating fast outfit previews for PDP images and lookbooks<\/li>\n<li>Trying multiple backgrounds (studio vs indoor vs outdoor) without a new shoot<\/li>\n<li>Producing ratio variants for social and web (1:1, 9:16, 16:9)<\/li>\n<\/ul>\n<h3>Watch-outs<\/h3>\n<ul>\n<li>Side profile and sitting poses can expose fabric warping and edge artifacts<\/li>\n<li>Busy garment photos can confuse layering when multiple items overlap<\/li>\n<li>Medium shots can hide lower-body items by design<\/li>\n<\/ul>\n<h2>Try it<\/h2>\n<p>Model link: <a href=\"https:\/\/wiro.ai\/models\/wiro\/virtual-try-on-v2\">https:\/\/wiro.ai\/models\/wiro\/virtual-try-on-v2<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Virtual Try-On V2 takes a model photo plus garment images and generates a new on-model try-on shot. This post runs 6 before\/after&hellip;<\/p>\n","protected":false},"author":4,"featured_media":1063,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[56],"tags":[76,86,61,60,85],"class_list":["post-1064","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-before-after","tag-ecommerce","tag-fashion","tag-image-editing","tag-image-to-image","tag-virtual-try-on"],"_links":{"self":[{"href":"https:\/\/wiro.ai\/blog\/wp-json\/wp\/v2\/posts\/1064","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wiro.ai\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wiro.ai\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wiro.ai\/blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/wiro.ai\/blog\/wp-json\/wp\/v2\/comments?post=1064"}],"version-history":[{"count":1,"href":"https:\/\/wiro.ai\/blog\/wp-json\/wp\/v2\/posts\/1064\/revisions"}],"predecessor-version":[{"id":1098,"href":"https:\/\/wiro.ai\/blog\/wp-json\/wp\/v2\/posts\/1064\/revisions\/1098"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wiro.ai\/blog\/wp-json\/wp\/v2\/media\/1063"}],"wp:attachment":[{"href":"https:\/\/wiro.ai\/blog\/wp-json\/wp\/v2\/media?parent=1064"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wiro.ai\/blog\/wp-json\/wp\/v2\/categories?post=1064"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wiro.ai\/blog\/wp-json\/wp\/v2\/tags?post=1064"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}