---
title: Virtual try-on — FLUX Virtual Try-On | Runware Docs
url: https://runware.ai/docs/models/bfl-flux-virtual-try-on/guides/virtual-try-on
description: How to use FLUX VTO to dress a person in any garment from a reference image. Covers the prompt formula, garment image requirements, multi-garment composites, prompt precision, and how to swap garments across different people and outfits.
---
### [Introduction](https://runware.ai/docs/models/bfl-flux-virtual-try-on/guides/virtual-try-on#introduction)

FLUX VTO takes two images, a person and a garment, and produces a new image of that person wearing that garment. The model **preserves the person's face and body pose** while replacing their clothing with the garment from the reference.

![Flat-lay of a midi-length floral wrap dress with small pink and green flowers on a cream background](https://runware.ai/docs/assets/garment-floral-dress.CPDwkc8q_Z22w1Fj.jpg)

*Garment reference*

![A woman standing on a wooden beach boardwalk wearing a beige tank top and white linen pants](https://runware.ai/docs/assets/person-outdoor.I7p9tTFF_vnKwL.jpg)

> **Prompt**: The person of image 1, maintaining exactly their face and pose, wearing the floral wrap dress of image 2.

The model works with any garment type (tops, dresses, jackets, full outfits) and handles both flat-lay packshots and on-model garment references. The prompt tells the model which garment details to transfer, and it handles the rest: draping, fabric physics, lighting adaptation, and skin-tone-consistent shadow rendering.

### [Fitting room](https://runware.ai/docs/models/bfl-flux-virtual-try-on/guides/virtual-try-on#fitting-room)

Pick a person and a garment to see the try-on result. Every combination was generated from the same set of garment references and person images.

Outfits Custom

 ![Astronaut](https://runware.ai/docs/assets/fit-preset-astronaut.CANrvB-B_rEQQb.webp) Astronaut![Formal](https://runware.ai/docs/assets/fit-preset-formal.Baz9htbx_63QzH.webp) Formal ![Cyberpunk](https://runware.ai/docs/assets/fit-preset-cyberpunk.DB6-Ictt_Z1NRpxj.webp) Cyberpunk ![Pirate](https://runware.ai/docs/assets/fit-preset-pirate._tFSZQ_B_m6znP.webp) Pirate ![Casual elegant](https://runware.ai/docs/assets/fit-preset-elegant.CdB1C9CW_ZqzQly.webp) Casual elegant

![Try-on result: Astronaut outfit](https://runware.ai/docs/assets/fit-result-astronaut.D8uYP1D4_KPLg6.webp)![Try-on result: Formal outfit](https://runware.ai/docs/assets/fit-result-formal.C3hUyJx9_Z1NSMUQ.webp)![Try-on result: Cyberpunk outfit](https://runware.ai/docs/assets/fit-result-cyberpunk.D-QvdXoW_1oqGD7.webp)![Try-on result: Pirate outfit](https://runware.ai/docs/assets/fit-result-pirate.aESc5SE1_f4Y1T.webp)![Try-on result: Casual elegant outfit](https://runware.ai/docs/assets/fit-result-elegant.DGV9k3XY_ZpgkKc.webp)

✕ None ![Cowboy hat](https://runware.ai/docs/assets/fit-hat-cowboy.C1RjsvRK_1KT7f5.webp) Cowboy hat ![Beanie](https://runware.ai/docs/assets/fit-hat-beanie.9Y1JeaG8_Z1S1hYD.webp) Beanie ![Logo cap](https://runware.ai/docs/assets/fit-hat-cap.PS8o6umH_Z26ws3d.webp) Logo cap

 ![White sneakers](https://runware.ai/docs/assets/fit-shoes-sneakers.C6lrrtxu_Z19Yez6.webp) White sneakers![Black boots](https://runware.ai/docs/assets/fit-shoes-boots.3H3n78Pk_Z1vGNot.webp) Black boots ![Sandals](https://runware.ai/docs/assets/fit-shoes-sandals.ClZsduT5_Z1sJg7Y.webp) Sandals

![Person base image](https://runware.ai/docs/assets/person-casual.BexPLLyV_QIjYU.webp) ![Try-on result](https://runware.ai/docs/assets/fit-none-leather-jeans-sneakers.k2wEgFon_Z1LHIIz.webp)![Try-on result](https://runware.ai/docs/assets/fit-none-leather-jeans-boots.kVWE59dW_Z2kNpcU.webp)![Try-on result](https://runware.ai/docs/assets/fit-none-leather-jeans-sandals.C-zD9N1e_ZfM09e.webp)![Try-on result](https://runware.ai/docs/assets/fit-none-leather-skirt-sneakers.BSNHie9Y_uX2uV.webp)![Try-on result](https://runware.ai/docs/assets/fit-none-leather-skirt-boots.BTpwtfbz_ZbA8gY.webp)![Try-on result](https://runware.ai/docs/assets/fit-none-leather-skirt-sandals.BFLa_b6z_Z161Hbz.webp)![Try-on result](https://runware.ai/docs/assets/fit-none-leather-shortskirt-sneakers.Dxo10rcr_Z1cc2DQ.webp)![Try-on result](https://runware.ai/docs/assets/fit-none-leather-shortskirt-boots.DZXpkCOu_2ny1WG.webp)![Try-on result](https://runware.ai/docs/assets/fit-none-leather-shortskirt-sandals.B1_dX4Wk_Z1aiLni.webp)![Try-on result](https://runware.ai/docs/assets/fit-none-leather-faux-sneakers.Bl836521_ZhQPsd.webp)![Try-on result](https://runware.ai/docs/assets/fit-none-leather-faux-boots.DZLqMQGJ_ZUYTWq.webp)![Try-on result](https://runware.ai/docs/assets/fit-none-leather-faux-sandals.D8139fPT_Z28Ak8L.webp)![Try-on result](https://runware.ai/docs/assets/fit-none-knit-jeans-sneakers.ByXwknna_ZU2pez.webp)![Try-on result](https://runware.ai/docs/assets/fit-none-knit-jeans-boots.C11k7mqm_1TfPfS.webp)![Try-on result](https://runware.ai/docs/assets/fit-none-knit-jeans-sandals.BW5wsa0V_E0QoN.webp)![Try-on result](https://runware.ai/docs/assets/fit-none-knit-skirt-sneakers.CrE2UDll_Z2ul0tV.webp)![Try-on result](https://runware.ai/docs/assets/fit-none-knit-skirt-boots.DeKJRJ24_1uRoMv.webp)![Try-on result](https://runware.ai/docs/assets/fit-none-knit-skirt-sandals.DELm7mWU_Wgc8A.webp)![Try-on result](https://runware.ai/docs/assets/fit-none-knit-shortskirt-sneakers.ZQ-zaDzg_Z2coin3.webp)![Try-on result](https://runware.ai/docs/assets/fit-none-knit-shortskirt-boots.mg6M5H6d_4yH8s.webp)![Try-on result](https://runware.ai/docs/assets/fit-none-knit-shortskirt-sandals.e-Ew0EtU_ZnEJ4K.webp)![Try-on result](https://runware.ai/docs/assets/fit-none-knit-faux-sneakers.DoT1ea5c_1pBr0X.webp)![Try-on result](https://runware.ai/docs/assets/fit-none-knit-faux-boots.DP74M1-r_11jJSI.webp)![Try-on result](https://runware.ai/docs/assets/fit-none-knit-faux-sandals.B6RlHI6A_Z5ucTT.webp)![Try-on result](https://runware.ai/docs/assets/fit-none-tee-jeans-sneakers.DcwQVkNA_1nEKXM.webp)![Try-on result](https://runware.ai/docs/assets/fit-none-tee-jeans-boots.O9EmK1OL_cpS38.webp)![Try-on result](https://runware.ai/docs/assets/fit-none-tee-jeans-sandals.GHGIda8j_2tdTjS.webp)![Try-on result](https://runware.ai/docs/assets/fit-none-tee-skirt-sneakers.BjtC4ky8_Z1arFqW.webp)![Try-on result](https://runware.ai/docs/assets/fit-none-tee-skirt-boots.DNen4pjj_Zv2lld.webp)![Try-on result](https://runware.ai/docs/assets/fit-none-tee-skirt-sandals.B48QD0mU_G4cpM.webp)![Try-on result](https://runware.ai/docs/assets/fit-none-tee-shortskirt-sneakers.DPUN3uTb_1dyb00.webp)![Try-on result](https://runware.ai/docs/assets/fit-none-tee-shortskirt-boots.B3lkfqG4_ZVFsze.webp)![Try-on result](https://runware.ai/docs/assets/fit-none-tee-shortskirt-sandals.CJlTQMAV_2iI1sn.webp)![Try-on result](https://runware.ai/docs/assets/fit-none-tee-faux-sneakers.AgFlQqol_1djGHW.webp)![Try-on result](https://runware.ai/docs/assets/fit-none-tee-faux-boots.DK3mJpDM_O7DGO.webp)![Try-on result](https://runware.ai/docs/assets/fit-none-tee-faux-sandals.BcFxnEYv_TlPz2.webp)![Try-on result](https://runware.ai/docs/assets/fit-none-dress-none-sneakers.D5LXaOW-_1dbrTu.webp)![Try-on result](https://runware.ai/docs/assets/fit-none-dress-none-boots.BDdBM7A7_Z2gBsRh.webp)![Try-on result](https://runware.ai/docs/assets/fit-none-dress-none-sandals.BbrxupQ2_Z1CaBJ5.webp)![Try-on result](https://runware.ai/docs/assets/fit-cowboy-leather-jeans-sneakers.jxiTruRV_Z1RhFO2.webp)![Try-on result](https://runware.ai/docs/assets/fit-cowboy-leather-jeans-boots.Cn-oauWj_PwQRl.webp)![Try-on result](https://runware.ai/docs/assets/fit-cowboy-leather-jeans-sandals.DqzWmM3m_Zx9xEN.webp)![Try-on result](https://runware.ai/docs/assets/fit-cowboy-leather-skirt-sneakers.2GVWYsHd_Z1EBtJI.webp)![Try-on result](https://runware.ai/docs/assets/fit-cowboy-leather-skirt-boots.swUGzzXD_Z1doheE.webp)![Try-on result](https://runware.ai/docs/assets/fit-cowboy-leather-skirt-sandals.Crq50OYE_ZksfnM.webp)![Try-on result](https://runware.ai/docs/assets/fit-cowboy-leather-shortskirt-sneakers.BjPGExYM_Za7Ra.webp)![Try-on result](https://runware.ai/docs/assets/fit-cowboy-leather-shortskirt-boots.DqvWOGHs_1D5lnJ.webp)![Try-on result](https://runware.ai/docs/assets/fit-cowboy-leather-shortskirt-sandals.MsALUuFy_SRvaW.webp)![Try-on result](https://runware.ai/docs/assets/fit-cowboy-leather-faux-sneakers.DOjAf7nX_4hGml.webp)![Try-on result](https://runware.ai/docs/assets/fit-cowboy-leather-faux-boots.BLjVNhxZ_1hWFaB.webp)![Try-on result](https://runware.ai/docs/assets/fit-cowboy-leather-faux-sandals.1lS29fBq_Z1mYsGc.webp)![Try-on result](https://runware.ai/docs/assets/fit-cowboy-knit-jeans-sneakers.Cy0-Nzli_Z1oHHBj.webp)![Try-on result](https://runware.ai/docs/assets/fit-cowboy-knit-jeans-boots.BEwW2PXS_YWXM7.webp)![Try-on result](https://runware.ai/docs/assets/fit-cowboy-knit-jeans-sandals.Be-yoDrz_Z1Nizl1.webp)![Try-on result](https://runware.ai/docs/assets/fit-cowboy-knit-skirt-sneakers.Dm_F3Jar_Zamvr9.webp)![Try-on result](https://runware.ai/docs/assets/fit-cowboy-knit-skirt-boots.D2hhctwm_29vARA.webp)![Try-on result](https://runware.ai/docs/assets/fit-cowboy-knit-skirt-sandals.BVv8KIu-_15t5nE.webp)![Try-on result](https://runware.ai/docs/assets/fit-cowboy-knit-shortskirt-sneakers.BN4AgXSr_1uaQYD.webp)![Try-on result](https://runware.ai/docs/assets/fit-cowboy-knit-shortskirt-boots.j44dxXWU_USLrs.webp)![Try-on result](https://runware.ai/docs/assets/fit-cowboy-knit-shortskirt-sandals.E9cgom78_ZpNhch.webp)![Try-on result](https://runware.ai/docs/assets/fit-cowboy-knit-faux-sneakers.CIQEKTZv_ZS6ri8.webp)![Try-on result](https://runware.ai/docs/assets/fit-cowboy-knit-faux-boots.IjiSXLxI_Za3IoY.webp)![Try-on result](https://runware.ai/docs/assets/fit-cowboy-knit-faux-sandals.DdkURBgD_GSOF4.webp)![Try-on result](https://runware.ai/docs/assets/fit-cowboy-tee-jeans-sneakers.BuQOTr-m_18aHQk.webp)![Try-on result](https://runware.ai/docs/assets/fit-cowboy-tee-jeans-boots.B0fdhe_q_2rCT6h.webp)![Try-on result](https://runware.ai/docs/assets/fit-cowboy-tee-jeans-sandals.crqSrJdF_9ONz1.webp)![Try-on result](https://runware.ai/docs/assets/fit-cowboy-tee-skirt-sneakers.DciezIrp_2eXubB.webp)![Try-on result](https://runware.ai/docs/assets/fit-cowboy-tee-skirt-boots.Di-tbGra_2cJLVh.webp)![Try-on result](https://runware.ai/docs/assets/fit-cowboy-tee-skirt-sandals.CAMerrHz_2jlm9u.webp)![Try-on result](https://runware.ai/docs/assets/fit-cowboy-tee-shortskirt-sneakers.BB1_gM5t_Z23aN2c.webp)![Try-on result](https://runware.ai/docs/assets/fit-cowboy-tee-shortskirt-boots.BWvlXWui_Zn7Rsz.webp)![Try-on result](https://runware.ai/docs/assets/fit-cowboy-tee-shortskirt-sandals.DwRt4Kc-_h1j3d.webp)![Try-on result](https://runware.ai/docs/assets/fit-cowboy-tee-faux-sneakers.D6UhrjCK_Z1yws3l.webp)![Try-on result](https://runware.ai/docs/assets/fit-cowboy-tee-faux-boots.DG_U4LtM_Z1rPNgr.webp)![Try-on result](https://runware.ai/docs/assets/fit-cowboy-tee-faux-sandals.D9-zqqwD_1BNiUO.webp)![Try-on result](https://runware.ai/docs/assets/fit-cowboy-dress-none-sneakers.Iflx8eRA_ipFes.webp)![Try-on result](https://runware.ai/docs/assets/fit-cowboy-dress-none-boots.D-mN2OtI_1gWtAi.webp)![Try-on result](https://runware.ai/docs/assets/fit-cowboy-dress-none-sandals.BK6vgMLu_Z158bS4.webp)![Try-on result](https://runware.ai/docs/assets/fit-beanie-leather-jeans-sneakers.K9xYiKfH_ZXmAIF.webp)![Try-on result](https://runware.ai/docs/assets/fit-beanie-leather-jeans-boots.FDHVdw39_Z1VFmh3.webp)![Try-on result](https://runware.ai/docs/assets/fit-beanie-leather-jeans-sandals.BI5tvtTj_1hHtty.webp)![Try-on result](https://runware.ai/docs/assets/fit-beanie-leather-skirt-sneakers.BSlhLWX6_1I9eiB.webp)![Try-on result](https://runware.ai/docs/assets/fit-beanie-leather-skirt-boots.CX8MMpcn_GkDbM.webp)![Try-on result](https://runware.ai/docs/assets/fit-beanie-leather-skirt-sandals.D-yDGhVR_Zec5HA.webp)![Try-on result](https://runware.ai/docs/assets/fit-beanie-leather-shortskirt-sneakers.Cipeu9k4_Z2lQvKz.webp)![Try-on result](https://runware.ai/docs/assets/fit-beanie-leather-shortskirt-boots.DdOMR548_Z2cLobR.webp)![Try-on result](https://runware.ai/docs/assets/fit-beanie-leather-shortskirt-sandals.CBOwjDdk_iJbTi.webp)![Try-on result](https://runware.ai/docs/assets/fit-beanie-leather-faux-sneakers.D4WrBVH-_Z1mOvsS.webp)![Try-on result](https://runware.ai/docs/assets/fit-beanie-leather-faux-boots.aJZZcZTS_ZzC3Vf.webp)![Try-on result](https://runware.ai/docs/assets/fit-beanie-leather-faux-sandals.CUMvUS4q_1tS56p.webp)![Try-on result](https://runware.ai/docs/assets/fit-beanie-knit-jeans-sneakers.BCZC93di_ZUAU4J.webp)![Try-on result](https://runware.ai/docs/assets/fit-beanie-knit-jeans-boots.D1ok1862_Z1VUVxD.webp)![Try-on result](https://runware.ai/docs/assets/fit-beanie-knit-jeans-sandals.0iBoazDE_Zt4py8.webp)![Try-on result](https://runware.ai/docs/assets/fit-beanie-knit-skirt-sneakers.BFWEkPCj_eo8Fb.webp)![Try-on result](https://runware.ai/docs/assets/fit-beanie-knit-skirt-boots.BdIT8W5p_1EsfaM.webp)![Try-on result](https://runware.ai/docs/assets/fit-beanie-knit-skirt-sandals.C8XGb1Uy_Z1x7uBP.webp)![Try-on result](https://runware.ai/docs/assets/fit-beanie-knit-shortskirt-sneakers.4O9Ny2AM_ZP34eD.webp)![Try-on result](https://runware.ai/docs/assets/fit-beanie-knit-shortskirt-boots.C9ILwKiH_1BhyF1.webp)![Try-on result](https://runware.ai/docs/assets/fit-beanie-knit-shortskirt-sandals.Duag36Vc_Z26pdQP.webp)![Try-on result](https://runware.ai/docs/assets/fit-beanie-knit-faux-sneakers.BQ9TMueQ_Z213xUE.webp)![Try-on result](https://runware.ai/docs/assets/fit-beanie-knit-faux-boots.CfDg2_dk_1UlO9j.webp)![Try-on result](https://runware.ai/docs/assets/fit-beanie-knit-faux-sandals.BeHoeQLr_Z29cm02.webp)![Try-on result](https://runware.ai/docs/assets/fit-beanie-tee-jeans-sneakers.B8FSNvHP_k8oRu.webp)![Try-on result](https://runware.ai/docs/assets/fit-beanie-tee-jeans-boots.YVnGe3rh_Z1dKPpj.webp)![Try-on result](https://runware.ai/docs/assets/fit-beanie-tee-jeans-sandals.7pLULZfe_2cpvDC.webp)![Try-on result](https://runware.ai/docs/assets/fit-beanie-tee-skirt-sneakers.CDHABk0-_1egiYB.webp)![Try-on result](https://runware.ai/docs/assets/fit-beanie-tee-skirt-boots.DAwg7rq9_ZERd7w.webp)![Try-on result](https://runware.ai/docs/assets/fit-beanie-tee-skirt-sandals.BwkF0tkZ_28exRd.webp)![Try-on result](https://runware.ai/docs/assets/fit-beanie-tee-shortskirt-sneakers.CCZk0DTW_1GN5vY.webp)![Try-on result](https://runware.ai/docs/assets/fit-beanie-tee-shortskirt-boots.D1TvUcEQ_m0v3.webp)![Try-on result](https://runware.ai/docs/assets/fit-beanie-tee-shortskirt-sandals.y-ZQLaMf_Z2uIAfK.webp)![Try-on result](https://runware.ai/docs/assets/fit-beanie-tee-faux-sneakers.DNwCfgvQ_Z201IlJ.webp)![Try-on result](https://runware.ai/docs/assets/fit-beanie-tee-faux-boots.CuYzaqt2_Z1c5vY8.webp)![Try-on result](https://runware.ai/docs/assets/fit-beanie-tee-faux-sandals.BqoypCti_Z1CvURj.webp)![Try-on result](https://runware.ai/docs/assets/fit-beanie-dress-none-sneakers.ClULC-el_1bK32K.webp)![Try-on result](https://runware.ai/docs/assets/fit-beanie-dress-none-boots.Bzkt5fZu_ZbTCTj.webp)![Try-on result](https://runware.ai/docs/assets/fit-beanie-dress-none-sandals.BxnTfZzw_Z2fm17k.webp)![Try-on result](https://runware.ai/docs/assets/fit-cap-leather-jeans-sneakers.BfMuBPQ8_NfWoS.webp)![Try-on result](https://runware.ai/docs/assets/fit-cap-leather-jeans-boots.BtGFq023_Z1u0Vqr.webp)![Try-on result](https://runware.ai/docs/assets/fit-cap-leather-jeans-sandals.VjdPRRAi_Sofqc.webp)![Try-on result](https://runware.ai/docs/assets/fit-cap-leather-skirt-sneakers.Bl-Ey3Tk_n09es.webp)![Try-on result](https://runware.ai/docs/assets/fit-cap-leather-skirt-boots.B0JZwx76_Z116sKg.webp)![Try-on result](https://runware.ai/docs/assets/fit-cap-leather-skirt-sandals.AMU8gBXS_ZAxNww.webp)![Try-on result](https://runware.ai/docs/assets/fit-cap-leather-shortskirt-sneakers.DJsyM-2T_1npkPD.webp)![Try-on result](https://runware.ai/docs/assets/fit-cap-leather-shortskirt-boots.BYUCb2KW_Z1M5evK.webp)![Try-on result](https://runware.ai/docs/assets/fit-cap-leather-shortskirt-sandals.YUBgC0rE_Z2sXuIr.webp)![Try-on result](https://runware.ai/docs/assets/fit-cap-leather-faux-sneakers.B0ri-o4R_ZsBX4L.webp)![Try-on result](https://runware.ai/docs/assets/fit-cap-leather-faux-boots.s8uFH578_1gTj1D.webp)![Try-on result](https://runware.ai/docs/assets/fit-cap-leather-faux-sandals.D0D8Jblk_2eJtyD.webp)![Try-on result](https://runware.ai/docs/assets/fit-cap-knit-jeans-sneakers.DtvnEfdx_ZaKDe8.webp)![Try-on result](https://runware.ai/docs/assets/fit-cap-knit-jeans-boots.BjsSEQTk_OlFys.webp)![Try-on result](https://runware.ai/docs/assets/fit-cap-knit-jeans-sandals.BNNJM4Sx_Z11pGP8.webp)![Try-on result](https://runware.ai/docs/assets/fit-cap-knit-skirt-sneakers.D8Lzj5wX_Z1yLvgB.webp)![Try-on result](https://runware.ai/docs/assets/fit-cap-knit-skirt-boots.DNYR8Nkz_Z1NFo5f.webp)![Try-on result](https://runware.ai/docs/assets/fit-cap-knit-skirt-sandals.BMaDr0oh_ZA0t6S.webp)![Try-on result](https://runware.ai/docs/assets/fit-cap-knit-shortskirt-sneakers.DPOduYK9_ZtB4By.webp)![Try-on result](https://runware.ai/docs/assets/fit-cap-knit-shortskirt-boots.DC0MEFPl_PEA7Q.webp)![Try-on result](https://runware.ai/docs/assets/fit-cap-knit-shortskirt-sandals.BBiSCxv0_12l2fk.webp)![Try-on result](https://runware.ai/docs/assets/fit-cap-knit-faux-sneakers.Bq0s_mgy_Z1Dpkvb.webp)![Try-on result](https://runware.ai/docs/assets/fit-cap-knit-faux-boots.D3UQcg1u_1SEyiQ.webp)![Try-on result](https://runware.ai/docs/assets/fit-cap-knit-faux-sandals.DWi7dwiN_Z14RQuk.webp)![Try-on result](https://runware.ai/docs/assets/fit-cap-tee-jeans-sneakers.DviI8z35_ZOceh3.webp)![Try-on result](https://runware.ai/docs/assets/fit-cap-tee-jeans-boots.DWtVhJ29_Z1PewDq.webp)![Try-on result](https://runware.ai/docs/assets/fit-cap-tee-jeans-sandals.Dlj29g5K_1g94vx.webp)![Try-on result](https://runware.ai/docs/assets/fit-cap-tee-skirt-sneakers.VqG11IJE_ZlNXNI.webp)![Try-on result](https://runware.ai/docs/assets/fit-cap-tee-skirt-boots.CZaCULxN_Z1juggR.webp)![Try-on result](https://runware.ai/docs/assets/fit-cap-tee-skirt-sandals.D123wtQn_25WyRy.webp)![Try-on result](https://runware.ai/docs/assets/fit-cap-tee-shortskirt-sneakers.BVhrpz6h_1QddhK.webp)![Try-on result](https://runware.ai/docs/assets/fit-cap-tee-shortskirt-boots.CjqVX1nr_11WUM0.webp)![Try-on result](https://runware.ai/docs/assets/fit-cap-tee-shortskirt-sandals.DZGU8wyn_Zzdy8S.webp)![Try-on result](https://runware.ai/docs/assets/fit-cap-tee-faux-sneakers.CN-suRSg_1FabXp.webp)![Try-on result](https://runware.ai/docs/assets/fit-cap-tee-faux-boots.gcGHm_KB_2hQEWp.webp)![Try-on result](https://runware.ai/docs/assets/fit-cap-tee-faux-sandals.CSH45JHs_YExiE.webp)![Try-on result](https://runware.ai/docs/assets/fit-cap-dress-none-sneakers.58Fkg81Z_Z1v5jXB.webp)![Try-on result](https://runware.ai/docs/assets/fit-cap-dress-none-boots.BQS5E4Do_1QHawO.webp)![Try-on result](https://runware.ai/docs/assets/fit-cap-dress-none-sandals.HRIb12H7_ZQW0Bq.webp)

 ![Leather jacket](https://runware.ai/docs/assets/fit-top-leather.d0j1kAml_23YwtX.webp) Leather jacket![Knit sweater](https://runware.ai/docs/assets/fit-top-knit.no7nhdkU_29RfDe.webp) Knit sweater ![Logo tee](https://runware.ai/docs/assets/fit-top-tee.rLW6GGSG_TAr5A.webp) Logo tee ![Red dress](https://runware.ai/docs/assets/fit-top-dress.D_hxIE8w_16zwLo.webp) Red dress

 ![Blue jeans](https://runware.ai/docs/assets/fit-bottom-jeans.36xrCeF9_Z1z6Yvo.webp) Blue jeans![Patterned skirt](https://runware.ai/docs/assets/fit-bottom-skirt.j_w8PlSg_Z6ugvO.webp) Patterned skirt ![Leopard skirt](https://runware.ai/docs/assets/fit-bottom-shortskirt.CfLIBZcn_XKGUD.webp) Leopard skirt ![Faux leather pants](https://runware.ai/docs/assets/fit-bottom-faux.Kl7TEuiC_1wDH6H.webp) Faux leather pants

### [The prompt formula](https://runware.ai/docs/models/bfl-flux-virtual-try-on/guides/virtual-try-on#the-prompt-formula)

VTO prompts follow a fixed structure. The person is always `image 1`, the garment is always `image 2`, and the prompt describes what to transfer:

> [!NOTE]
> The person of image 1, maintaining exactly their face and pose, wearing the **{garment description}** of image 2.

The garment description should name the **category and key visual features** of the garment: "black leather biker jacket", "oversized cream cable-knit sweater", "floral wrap dress". Keep it focused on what the garment *is*, not what the person should look like. The model already knows what the person looks like from image 1.

**Request**:

```json
[
  {
    "taskType": "imageInference",
    "taskUUID": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "model": "bfl:flux@vto",
    "positivePrompt": "The person of image 1, maintaining exactly their face and pose, wearing the floral wrap dress of image 2.",
    "inputs": {
      "referenceImages": [
        { "image": "https://example.com/person.jpg", "role": "person" },
        { "image": "https://example.com/garment.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"
    }
  ]
}
```

Each entry in `referenceImages` carries a `role` of either `person` or `garment`. The model reads the role to know which is which, so **the order of the array doesn't matter**.

#### [What to describe and what to leave out](https://runware.ai/docs/models/bfl-flux-virtual-try-on/guides/virtual-try-on#what-to-describe-and-what-to-leave-out)

**Do describe:** the garment category (jacket, dress, sweater), the material or texture if distinctive (leather, denim, cable-knit), the fit (oversized, tailored), and the color or pattern only if the garment image is ambiguous.

**Don't describe:** the person's pose, expression, hair, background, or any detail that comes from image 1. The prompt formula already locks those with "maintaining exactly their face and pose." Adding redundant descriptions of the person can interfere with the transfer.

### [How much prompt detail matters](https://runware.ai/docs/models/bfl-flux-virtual-try-on/guides/virtual-try-on#how-much-prompt-detail-matters)

The model is trained to work well even with minimal prompts. For most garments, naming the category is enough; the model reads the rest of the visual detail from the garment image. Prompt verbosity starts to pay off in the cases where the image alone can't fully convey what's there, the clearest one being **text or logos printed on the garment**.

The two images below use the same person and the same t-shirt. The only thing that changes is whether the prompt tells the model what the printed text actually says.

![A young man in a sunlit urban summer park wearing a white t-shirt with a five-word slogan rendered as garbled letters across the chest](https://runware.ai/docs/assets/prompt-text-minimal.D9qp2_9p_1eqA23.jpg)

*Minimal: just "the t-shirt"*

> **Prompt**: The person of image 1 wearing the t-shirt of image 2.

![The same man in the summer park wearing a white t-shirt with the text 'Choose joy over fear today' rendered legibly across the chest](https://runware.ai/docs/assets/prompt-text-detailed.oNQnCflS_2iL9NC.jpg)

*Detailed: the exact text*

> **Prompt**: The person of image 1, maintaining exactly their face and pose, wearing the white t-shirt with the text "Choose joy over fear today" printed in bold black letters across the chest of image 2.

Without the words in the prompt, the model knows there's something printed on the chest but ends up approximating the letterforms, often producing a passable design that doesn't actually spell anything. Naming the exact text gives it a target to render against. The same logic applies to small logos, brand text, embroidered labels, and any other element where the image is the source of truth visually but the prompt does the disambiguation.

#### [When precision changes the output](https://runware.ai/docs/models/bfl-flux-virtual-try-on/guides/virtual-try-on#when-precision-changes-the-output)

Some garment properties **can't be inferred from the reference image alone**. The prompt becomes the deciding factor.

**Zip and button states.** A zip-up hoodie can be worn open or closed. The flat-lay image shows it in one state, but the prompt can override that.

![A young man in a sunlit urban skate park at golden hour wearing a navy blue zip-up hoodie, fully zipped](https://runware.ai/docs/assets/hoodie-closed.BIRNz4HE_ZUegoh.jpg)

*Prompt: "fully zipped up"*

> **Prompt**: The person of image 1, maintaining exactly their face and pose, wearing the navy blue zip-up hoodie of image 2, fully zipped up.

![The same man in the skate park wearing the navy blue zip-up hoodie unzipped and open](https://runware.ai/docs/assets/hoodie-open.BfEjiNm6_t0hlx.jpg)

*Prompt: "unzipped and open"*

> **Prompt**: The person of image 1, maintaining exactly their face and pose, wearing the navy blue zip-up hoodie of image 2, fully unzipped and open.

This works for any garment with an open/closed configuration: a blazer buttoned vs unbuttoned, a coat belted vs loose, sleeves rolled vs down.

**Tucked vs untucked.** The prompt can also control how a garment sits relative to the rest of the outfit. The same shirt produces a different silhouette depending on whether the prompt asks for it tucked in or hanging loose.

![A young woman inside a sunlit modern café wearing a light blue button-down shirt fully tucked into her jeans with the waistband visible](https://runware.ai/docs/assets/shirt-tucked.0vpLlllb_ReoCA.jpg)

*Prompt: "fully tucked inside the pants, waistband visible"*

> **Prompt**: The person of image 1, maintaining exactly their face and pose, wearing the light blue button-down shirt of image 2, the shirt fully tucked inside the pants with the waistband clearly visible at the waist and no shirt fabric hanging below the waistline.

![The same woman wearing the light blue button-down shirt untucked and hanging loose over her jeans](https://runware.ai/docs/assets/shirt-untucked.D83SgUKq_ZU04U0.jpg)

*Prompt: "untucked and loose"*

> **Prompt**: The person of image 1, maintaining exactly their face and pose, wearing the light blue button-down shirt of image 2, untucked and hanging loose.

These kinds of styling instructions give you control over how the garment looks in the final image without needing separate garment references for each configuration.

### [Multi-garment outfits](https://runware.ai/docs/models/bfl-flux-virtual-try-on/guides/virtual-try-on#multi-garment-outfits)

VTO accepts a single garment image, but that image can contain multiple pieces arranged on a canvas. To dress someone in a full outfit, merge up to **4 garment items** into one image before sending it.

![Red varsity jacket with white leather sleeves](https://runware.ai/docs/assets/garment-red-varsity.Cp1npGAP_25upvD.jpg)

*Jacket*

![Navy and white striped t-shirt](https://runware.ai/docs/assets/garment-striped-tee.B5TJpdpk_1RmzMR.jpg)

*T-shirt*

![Olive green cargo pants](https://runware.ai/docs/assets/garment-cargo-pants.C3JMNlLt_ZuHY0X.jpg)

*Pants*

![White leather sneakers](https://runware.ai/docs/assets/garment-white-sneakers.GfhJ5O8__1ByMyE.jpg)

*Sneakers*

Arrange the pieces in a **2 × 2 grid on a white background** with tight cropping and minimal padding around each item. The composite image goes into the `garment` input field as a single image.

![A 2 × 2 grid showing a red varsity jacket, striped t-shirt, cargo pants, and white sneakers](https://runware.ai/docs/assets/garment-composite-grid.Bg1TQ6ce_10m9Uv.jpg)

*Composite garment input*

![A man wearing the full composite outfit: red varsity jacket, striped t-shirt, cargo pants, white sneakers](https://runware.ai/docs/assets/composite-outfit.Cg962CeM_z61UI.jpg)

*Try-on result*

> **Prompt**: The person of image 1, maintaining exactly their face and pose, wearing the red varsity jacket with white sleeves and letter "R" over the navy striped t-shirt, olive cargo pants, and white sneakers of image 2.

The prompt lists each piece by name so the model can map them correctly. This matters more with multi-garment composites than with single items because the model needs to understand which region of the composite corresponds to which body part.

> [!WARNING]
> Composite garment images are capped at **4 items**. The model processes at most four pieces; additional items don't work.

### [Swapping garments](https://runware.ai/docs/models/bfl-flux-virtual-try-on/guides/virtual-try-on#swapping-garments)

The same person image can be paired with different garments. Each run produces an independent result with the garment applied to the person's pose and body.

**Set 1**:

![A young woman in an autumn park wearing a black leather biker jacket](https://runware.ai/docs/assets/compare-leather.BWcrBcCn_21N7Mg.jpg)

*Leather jacket*

> **Prompt**: The person of image 1, maintaining exactly their face and pose, wearing the black leather biker jacket of image 2.

![Flat-lay of a black leather biker jacket](https://runware.ai/docs/assets/garment-leather-jacket.vNhFRd1N_Z1ztedB.jpg)

*Garment reference*

**Set 2**:

![The same woman in the autumn park wearing a blue denim jacket](https://runware.ai/docs/assets/compare-denim.NIJ6hQso_2tky4y.jpg)

*Denim jacket*

> **Prompt**: The person of image 1, maintaining exactly their face and pose, wearing the blue denim jacket of image 2.

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

*Garment reference*

**Set 3**:

![The same woman in the autumn park wearing an oversized cream cable-knit sweater](https://runware.ai/docs/assets/compare-knit.CvifnCQO_GE3Jz.jpg)

*Knit sweater*

> **Prompt**: The person of image 1, maintaining exactly their face and pose, wearing the oversized cream cable-knit sweater of image 2.

![Flat-lay of a cream cable-knit sweater](https://runware.ai/docs/assets/garment-knit-sweater.D_Gj5XmB_ZCJMC9.jpg)

*Garment reference*

**Set 4**:

![The same woman in the autumn park wearing a charcoal wool blazer](https://runware.ai/docs/assets/compare-blazer.DWTXgEFM_89Xtf.jpg)

*Blazer*

> **Prompt**: The person of image 1, maintaining exactly their face and pose, wearing the charcoal wool blazer of image 2.

![Flat-lay of a charcoal wool blazer](https://runware.ai/docs/assets/garment-blazer.DYPLcSBE_2uEieq.jpg)

*Garment reference*

**Set 5**:

![The same woman in the autumn park wearing an olive green satin bomber jacket with an embroidered tiger](https://runware.ai/docs/assets/compare-bomber.DnOrvHeg_ZHWqL0.jpg)

*Bomber jacket*

> **Prompt**: The person of image 1, maintaining exactly their face and pose, wearing the olive green satin bomber jacket with the embroidered tiger on the back of image 2.

![Flat-lay of an olive green satin bomber jacket with an embroidered tiger](https://runware.ai/docs/assets/garment-bomber-embroidered.C64nU6PQ_Z19R9xI.jpg)

*Garment reference*

**Set 6**:

![The same woman in the autumn park wearing a beige trench coat](https://runware.ai/docs/assets/compare-trench.eFchnICd_ZjN3hm.jpg)

*Trench coat*

> **Prompt**: The person of image 1, maintaining exactly their face and pose, wearing the beige trench coat of image 2.

![Flat-lay of a beige trench coat](https://runware.ai/docs/assets/garment-trench-coat.g6Ouv_KU_O10uh.jpg)

*Garment reference*

All three results use the same person image. The model **adapts the draping and fabric weight to each garment type**: the leather jacket sits structured across the shoulders, the denim falls with its own stiffness, and the knit sweater has visible cable texture and a looser fit.

### [Different people, same garment](https://runware.ai/docs/models/bfl-flux-virtual-try-on/guides/virtual-try-on#different-people-same-garment)

The garment works as a reusable reference. You can pair it with any person image and the model will adapt the garment to each body.

![A man on a city sidewalk wearing a blue denim jacket](https://runware.ai/docs/assets/person-formal-denim.BoVyMER5_ZVtw2s.jpg)

*Person A + denim jacket*

> **Prompt**: The person of image 1, maintaining exactly their face and pose, wearing the blue denim jacket of image 2.

![A woman on a beach boardwalk wearing the same blue denim jacket](https://runware.ai/docs/assets/person-outdoor-denim.Bb-iYIad_18szSF.jpg)

*Person B + denim jacket*

> **Prompt**: The person of image 1, maintaining exactly their face and pose, wearing the blue denim jacket of image 2.

Each person retains their own face and scene. The garment adapts to each body and lighting condition. This makes VTO useful for e-commerce catalogs where a single garment photo needs to be shown on multiple models without re-shooting.

### [Reference image guidelines](https://runware.ai/docs/models/bfl-flux-virtual-try-on/guides/virtual-try-on#reference-image-guidelines)

The quality of the inputs **directly controls the quality of the output**. Both the person and garment images have specific requirements.

> [!NOTE]
> Inputs **over 2 MP are downscaled to 1 MP** before processing, with the original aspect ratio preserved. Send images at or below 2 MP to control exactly what the model sees.

#### [Person image](https://runware.ai/docs/models/bfl-flux-virtual-try-on/guides/virtual-try-on#person-image)

- **Resolution:** keep the person image **at or below 2 megapixels**. Larger inputs are downscaled to 1 MP automatically, so going higher discards detail you sent.
- **Pose:** full-body or three-quarter shots work best. The model needs to see enough of the body to place the garment.
- **Clothing:** the person can be wearing anything, but **tight-fitting, plain clothing** produces cleaner transfers. Existing clothing patterns or heavy layering can leave artifacts in the output.
- **Background:** clean, uncluttered backgrounds help the model distinguish the person from the scene.

#### [Garment image](https://runware.ai/docs/models/bfl-flux-virtual-try-on/guides/virtual-try-on#garment-image)

- **Resolution:** garment images don't need to be large. **Around 1 megapixel** is enough, and there's no benefit to going higher.
- **Format:** flat-lay packshots (garment laid flat on a white surface) produce the most reliable transfers. On-model references also work but may introduce pose artifacts from the reference model.
- **Lighting:** even, diffused studio lighting. Hard shadows or colored light on the garment will transfer into the output.
- **Cropping:** the garment should fill most of the frame with minimal padding. Tight crops with little background produce the best results, especially in multi-garment composites.

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

1. **Name the garment in the prompt.** The prompt description helps the model understand which part of the garment image to transfer. "Black leather biker jacket" is better than "the clothing." If the garment has multiple pieces, list them: "the green jacket and the black pants of image 2."
    
2. **Describe text, logos, and embroidery.** If the garment has printed text, brand logos, or embroidered graphics, include them in the prompt. The model handles these details better when it knows to look for them. "The white t-shirt with the red logo on the chest" beats "the t-shirt."
    
3. **Specify the garment state when it matters.** Zip-up, button-up, and wrap garments can be worn in different configurations. Add "fully zipped," "unbuttoned and open," or "belted at the waist" to control the output. Without this, the model will pick a state on its own.
    
4. **Use flat-lay garment images when possible.** Flat-lay packshots on white backgrounds produce the cleanest transfers because there's no pose or body shape to conflict with the person image. On-model garment references work but add a layer of ambiguity.
    
5. **Don't describe the person in the prompt.** The model already sees the person from image 1. Adding descriptions of their appearance ("a young woman with brown hair") doesn't help and can interfere with the face and pose preservation.
    
6. **Cap composites at 4 garments.** Use a 2 × 2 grid with tight crops. The model processes at most four pieces per composite. Anything beyond won't work.