Image
Virtual try-on
Put a garment on a photo of a person and get back one still image. It is the same
POST /v1/images endpoint as image edit,
with the photos passed in input_references (URL or base64 data URL) — but here
the order of the references matters:
- The first reference is always the person photo; every later reference is a garment image.
- At least 2 references are required — fewer returns a
400. Models that take a single garment also return a400for more than 2 references. promptis optional for every try-on model. Where the upstream model has a text field it is forwarded; where it has none, apromptyou send is ignored.- Billed per image (some rows scale with input/output megapixels). The exact charge, platform fee included, is in the response
usage.cost; current prices are on the models catalog.
import requests
resp = requests.post(
"https://videorouter.sh/api/v1/images",
headers={"Authorization": "Bearer llmr_sk_live_..."},
json={
"model": "fal/virtual-try-on-v2",
# person photo FIRST, then the garment image(s)
"input_references": [
{"type": "image_url", "image_url": {"url": "https://example.com/person.jpg"}},
{"type": "image_url", "image_url": {"url": "https://example.com/jacket.jpg"}},
],
},
).json()
Which models
Ten models across four providers. They all share the request shape above; they differ in how many garment images they accept:
fal/fashn-tryon-v1.6Fal (FASHN)1 garmentnot usedfal/google-virtual-try-onFal (Google)1 garmentnot usedfal/virtual-try-on-v2Fal1 garmentnot usedfal/flux-pro-vtoFal (Black Forest Labs)1 garmentoptional (a default is sent)fal/flux-2-lora-virtual-tryonFal1 or more garmentsoptional (a default is sent)fal/bria-virtual-try-onFal (Bria)1–3 garmentsoptionalwavespeed/bria-virtual-try-onWaveSpeedAI (Bria)1–3 garmentsoptionalreplicate/p-image-try-onReplicate (Pruna)1–11 garmentsoptionalflux-vto-v2Black Forest Labs (direct)1 garmentoptionalflux-vto-v1Black Forest Labs (direct)1 garmentoptionalEvery model here also shows up under the Virtual Try-On filter on the models catalog. Multi-host models fail over to the next-cheapest host automatically — see Provider selection.
Not yet supported
There are no garment-category, pose-preservation or mask parameters — the model infers the fit from the
garment photo. stream: true is rejected outright, same as generation.