---
title: ToolRouter — Tool Detail
description: Detailed documentation for a ToolRouter tool including skills, parameters, and examples.
url: https://toolrouter.com/tools/virtual-tryon
---
# Virtual Try-On

Upload a photo of a person and a photo of clothing to see them wearing it. Works with tops, bottoms, dresses, and full outfits. Multiple AI models for different quality and budget needs.

- **Version:** 0.01
- **Categories:** media
- **Workflow:** try_on → list_models → try_on

## Skills (2)

### Try On (`try_on`)

Upload a person photo and a garment photo to generate the person wearing that clothing. Works with tops, bottoms, dresses, and full outfits.

**Parameters:**

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `person_image` | string | Yes | URL of the person photo. The tool server CAN fetch any public URL — always pass it. Should show upper or full body. |
| `garment_image` | string | Yes | URL of the clothing/garment photo. Flat-lay or on-mannequin photos work best. The tool server CAN fetch any public URL. |
| `model` | string | No | Try-on model to use. Default: fashn (best quality). (fashn, quick, kolors, leffa, catvton) |
| `category` | string | No | Garment category. FASHN only. Default: auto (auto-detect). (tops, bottoms, one-pieces, auto) |
| `mode` | string | No | Quality vs speed tradeoff. FASHN only. Default: balanced. (performance, balanced, quality) |
| `garment_photo_type` | string | No | Type of garment photo. FASHN only. Default: auto. (auto, model, flat-lay) |
| `num_samples` | number | No | Number of result variations (1-4). FASHN only. Default: 1. |
| `preserve_pose` | boolean | No | Preserve the person original pose. Quick model only. Default: true. |
| `aspect_ratio` | string | No | Output aspect ratio. Quick model only. Default: 3:4. (1:1, 16:9, 9:16, 4:3, 3:4) |
| `garment_type` | string | No | Garment type. Leffa only. Required for Leffa. Default: upper_body. (upper_body, lower_body, dresses) |
| `cloth_type` | string | No | Clothing type. CAT-VTON only. Default: upper. (upper, lower, overall, inner, outer) |
| `num_inference_steps` | number | No | Number of inference steps (1-50). Leffa and CAT-VTON only. Higher = better quality, slower. |
| `guidance_scale` | number | No | Guidance scale (0-20). Leffa and CAT-VTON only. Higher = stronger garment adherence. |
| `seed` | number | No | Random seed for reproducible results. |
| `output_format` | string | No | Output image format. FASHN and Leffa only. Default: png. (png, jpeg) |

**Returns:** Image of the person wearing the garment, downloadable asset, and shareable page link

**Examples:**

*Try on a shirt:*

```json
{
  "person_image": "https://example.com/person.jpg",
  "garment_image": "https://example.com/shirt.jpg"
}
```

*Try on a dress with FASHN quality mode:*

```json
{
  "person_image": "https://example.com/person.jpg",
  "garment_image": "https://example.com/dress.jpg",
  "category": "one-pieces",
  "mode": "quality"
}
```

*Quick budget try-on:*

```json
{
  "person_image": "https://example.com/person.jpg",
  "garment_image": "https://example.com/top.jpg",
  "model": "quick"
}
```

### List Models (`list_models`)

List all available virtual try-on models with pricing, quality details, supported garment categories, and licensing info.

**Returns:** All available virtual try-on models with pricing, quality, categories, and licensing

**Examples:**

*List all try-on models:*

```json
{}
```

## Quick Start

```bash
# Via CLI
TOOLROUTER_API_KEY=tr_live_xxx npx -y toolrouter-mcp call virtual-tryon try_on --person_image https://example.com/person.jpg --garment_image https://example.com/shirt.jpg

# Via REST API
curl -H "Authorization: Bearer tr_live_xxx" \
     -d '{"tool":"virtual-tryon","skill":"try_on","input":{"person_image":"https://example.com/person.jpg","garment_image":"https://example.com/shirt.jpg"}}' \
     https://api.toolrouter.com/v1/tools/call
```

## Frequently Asked Questions

### What photos work best for a try-on?

Use a full or upper-body person photo with the clothing area visible, plus a flat-lay or mannequin garment photo.

### Can it handle tops, bottoms, dresses, and full outfits?

Yes. The tool supports all of those garment types.

### Which model should I choose?

`fashn` is the best-quality default, `quick` is the cheapest preview, `kolors` is the middle ground, `leffa` adds explicit garment control, and `catvton` is research-only.

### Can I compare models before I try a look?

`list_models` shows the available models with pricing, quality, supported garment categories, and licensing info.

---

## Get Started with ToolRouter

**Already connected?** Call any tool with `use_tool({ tool, skill, input })`. Browse tools with `discover` or visit https://toolrouter.com/llms-full.txt

**New to ToolRouter?** Connect with one command (no API key needed — auto-provisions on first use):

```bash
# MCP (Claude Code, Codex CLI)
claude mcp add toolrouter -- npx -y toolrouter-mcp

# MCP (Cursor, Windsurf, Cline, VS Code, Gemini CLI, Claude Desktop)
{"mcpServers":{"toolrouter":{"command":"npx","args":["-y","toolrouter-mcp"]}}}

# Claude Chat / Claude Cowork / Claude Mobile — add as a connector:
# Settings → Connectors → Add custom connector → URL: https://api.toolrouter.com/mcp

# ChatGPT — add as an app:
# Settings → Apps → Advanced settings → enable Developer mode → Create app → MCP Server URL: https://api.toolrouter.com/mcp

# CLI (works instantly, no restart needed)
npx -y toolrouter-mcp tools                    # browse all tools
npx -y toolrouter-mcp search "seo"             # search by keyword
npx -y toolrouter-mcp call seo analyze_page --url https://example.com
```

Free tools work immediately. For paid tools, visit https://toolrouter.com/claim to add credits.

All platforms: https://toolrouter.com/connect | Full catalog: https://toolrouter.com/llms-full.txt | Docs: https://toolrouter.com/docs