Virtual Try On APIs
Explore fal’s Collection Of The Best Virtual Try-On APIs
fal is the best developer-friendly, one-stop shop for AI virtual try-on models. Every virtual try-on model on fal runs through the same SDK pattern, so once you’ve integrated one, switching between Kling Kolors v1.5, FASHN v1.6, image-apps-v2, or FLUX 2 LoRA Gallery is a one-line endpoint change.
How do I run a virtual try-on through fal?
The static try-on endpoints take a person image plus a garment image and return a composited result. Here’s what it looks like after installing `@fal-ai/client` and setting your `FAL_KEY`.
jsimport { fal } from "@fal-ai/client"; const result = await fal.subscribe("fal-ai/kling/v1-5/kolors-virtual-try-on", { input: { human_image_url: "https://your-host.com/person.jpg", garment_image_url: "https://your-host.com/shirt.jpg" } }); console.log(result.data.image.url);
The same call shape works across static virtual try-on endpoints. You swap the endpoint string and adjust the input fields each model expects.
Which models on fal handle image-based virtual try-on?
Here are four models that handle static image-based virtual try-on.
- Kling Kolors v1.5 takes a person image and a garment image, returning a composited output via diffusion-based inpainting. It works well with front-facing model photos paired with flat-lay or clean-background garment shots.
- FASHN v1.6 renders garment details like text and patterns at 864×1296 resolution and accepts both on-model and flat-lay garment photos. Its
`category`parameter handles tops, bottoms, or one-pieces, with auto-detection as the default. - image-apps-v2 try-on takes a person image and clothing image, with a
`preserve_pose`toggle and aspect ratio control for 4K output. - FLUX 2 LoRA Gallery applies LoRA fine-tuning to FLUX.2 for garment transfer, with batch output of 1-4 variations per call and a
`lora_scale`parameter to balance garment visibility against photorealism.
Use these models when you need static try-on results for ecommerce, catalog imagery, personalization flows, or creative styling previews.
How does the real-time virtual try-on endpoint work?
Decart Lucy 2.1 VTON Realtime transforms your webcam feed in real time using a text prompt and an optional reference garment image. It operates over WebRTC rather than the standard request-response queue.
To start a session, you can use `fal.realtime.connect` with the endpoint and send your initial prompt.
jsimport { fal } from "@fal-ai/client"; const connection = fal.realtime.connect("decart/lucy2-vton/realtime", { connectionKey: `session-${Date.now()}`, throttleInterval: 0, onResult: handleResult, }); connection.send({ prompt: "Substitute the current top with a bright red hoodie", reference_image_url: "https://example.com/outfit.png" });
You can update the prompt or reference image mid-session by sending new messages on the same connection, which is useful for shopping flows where the user cycles through garment options.
What controls do these models offer for garment accuracy or output quality?
Each model exposes different parameters for tuning garment accuracy, generation speed, and output quality.
- FASHN v1.6 has the most explicit controls: a
`mode`parameter for the speed-to-quality tradeoff, with`performance`,`balanced`, and`quality`options;`garment_photo_type`to optimize parsing for on-model versus flat-lay inputs; and`num_samples`for batching multiple variations in one call. - FLUX 2 LoRA Gallery uses
`lora_scale`, with a 0-2 range, to control how strongly the LoRA fine-tuning influences the output. It also includes an`acceleration`parameter for faster generation. - Kling Kolors v1.5 keeps its schema minimal: just the two image URLs and an optional
`sync_mode`flag.
Use FASHN when you need more explicit control, FLUX 2 LoRA Gallery when you want LoRA-driven garment transfer and variations, and Kling Kolors when you want a simple two-image try-on flow.
Pricing
Pricing varies by model and unit across fal’s virtual try-on catalog.
| Model | Price |
|---|---|
| FLUX 2 LoRA Gallery | $0.021 / processed megapixel |
| Decart Lucy 2.1 VTON Realtime | $0.02 / second of streaming |
| Kling Kolors v1.5 | $0.07 / generation |
As a worked example, 100 static try-on generations would cost roughly:
- $7 on Kling Kolors v1.5
- Variable cost on FLUX 2 LoRA Gallery, depending on processed megapixels
- $120 for 100 one-minute Decart Lucy 2.1 VTON Realtime sessions
You only pay for what you generate or stream, which lets you compare static try-on quality, real-time responsiveness, and garment control options without rewriting your integration.
Quick Start
Install the client
bashnpm install --save @fal-ai/client
Set your API key
bashexport FAL_KEY="YOUR_API_KEY"
Call a model
jsimport { fal } from "@fal-ai/client"; const result = await fal.subscribe("fal-ai/kling/v1-5/kolors-virtual-try-on", { input: { human_image_url: "https://your-host.com/person.jpg", garment_image_url: "https://your-host.com/shirt.jpg" } }); console.log(result.data.image.url);
The same auth, billing, and queue logic carry across every virtual try-on endpoint, so you can compare models side by side without rewriting integration code.
For real-time try-on, use the WebRTC-based realtime connection flow instead of the standard request-response queue.