FASHN
FASHN Tryon v1.6
fashn-tryon-v1.6
Virtual try-on model: input a person image and a garment image to generate the model wearing the outfit, with native 864x1296 output, flat-lay image input support, and three quality modes
Try fashn-tryon-v1.6
Input
Showcases
View all showcasesOutput
imagePricing
fashn-tryon-v1.6 per image
| Unit Price | $0.1072 |
|---|
Positioning Overview
fashn-tryon-v1.6 is a virtual try-on image model for apparel e-commerce and visual content production: it takes a person photo and a garment product image as input, and outputs a composite image of the model wearing that garment. Compared with the previous generation, native output resolution is increased to 864x1296, with clearer reproduction of fabric textures, patterns, text, and other details, and more natural lighting. It is suitable for developers and e-commerce teams that need to produce on-model effect images in bulk for product detail pages, marketing materials, or design validation.
Core Highlights
- Native 864x1296 resolution output — about a 50% increase over the previous generation, making fabric textures, patterns, and text details clearer and usable at detail-page sizes.
- Compatible with both model images and flat-lay garment materials — specify model, flat-lay, or auto via garment_photo_type for automatic recognition, adapting to different shooting conditions.
- Three quality modes to choose from as needed — performance, balanced, and quality switch between generation speed and rendering precision, making tiered calls convenient in production environments.
- Fixed seed for reproducible results — passing the same seed with the same input yields consistent output, facilitating result reproduction and troubleshooting in batch production.
Capability Description
Try-on composition of person and garment images: submit two URLs for the person image and garment image to get an on-model effect image, output as png or jpeg, which can go directly into product image or material workflows.
Adaptation to garment categories and shooting formats: category supports tops, bottoms, one-pieces, and auto for automatic recognition; garment_photo_type distinguishes on-model garment images from flat-lay images, reducing preprocessing work.
Output quality control: mode selects speed priority or precision priority; moderation_level can block explicit content according to business requirements, and the conservative level also blocks lingerie and swimwear garments.
Reproducible batch generation: with a fixed seed, the same input can reproduce results, making it convenient to locate issues and rerun failed samples in production pipelines.
Applicable Scenarios
- Batch production of apparel product on-model images for e-commerce teams — batch-generate on-model effect images from product flat-lay images plus model images, for store detail-page main images and style display.
- Visual validation during apparel design sampling — quickly generate images using design drafts or sample garment photos together with model photos, to confirm fit and pattern presentation before investing in actual photography.
- Rapid image generation for multiple styles of marketing materials — generate images separately for the same model paired with multiple styles, for producing multi-variant materials such as campaign pages and social media placements.
- Converting flat product images into on-model display — convert existing flat-lay or invisible-mannequin shooting materials into on-model wearing effects, revitalizing the existing product image library.
Limitations and Selection Advice
This model targets full-body apparel display scenarios at a fixed resolution, and the output size cannot be adjusted arbitrarily. In quality mode, rendering precision is higher but takes longer; batch tasks need to allocate tiers between speed and effect. Generating multiple results per request is a common practice to improve usability, but it correspondingly increases billing. The conservative moderation level blocks lingerie and swimwear garments; when such items are involved, a looser level should be selected. If the business values long-running production stability more than precision, it is necessary to evaluate whether to use a more mature previous-generation version.
What's new
View changelog →- New model New model: fashn-tryon-v1.6 virtual try-on via POST /v1/task…
Frequently asked questions
View all FAQs →-
What is FASHN Try-On v1.6?
It is a dedicated virtual try-on model. Upload one person photo and one garment image, and it returns a portrait image of the person wearing the garment. No prompt or text description is involved.
-
Does FASHN Try-On v1.6 need a prompt?
No. It takes a person photo and a garment image only; the try-on result comes from those images plus optional category, mode and garment-photo-type settings.
-
Do I need to upload both images?
Yes. Both the person photo and the garment image are required; the Playground and API reject a request missing either one.
-
Which garment categories are supported?
Tops, bottoms and one-pieces, plus automatic detection. Start with auto when the category is unclear, then set it explicitly if detection is wrong.
Create a generation task
https://api.hiapi.ai/v1/tasks Headers
AuthorizationstringRequiredAccount API key. Required on every request. Example: Bearer YOUR_HIAPI_API_KEY. Get your API key
Content-TypestringOptionalThe request body is always parsed as JSON; when sent, only application/json (optionally with charset) is accepted — any other value returns 415. Example: application/json.
Idempotency-KeystringOptionalIdempotency key, up to 255 bytes. Retries with the same key from the same account create the task only once; replays return the original taskId.
On network timeouts or client retries, the same key creates the task only once — no double charges (scope: the API key's account). Use a business-unique identifier as the key (e.g. "order-42"); replays return the original taskId, and keys expire 24 hours after the first request. See the Unified Async API overview for the full scenario matrix.
Body
modelstringRequiredCurrent fixed value: fashn-tryon-v1.6
routestringOptionalCurrent fixed value: default
inputobjectRequired
Business parameters for fashn-tryon-v1.6 and route default — see the parameter table below.
modestringOptionalDefault: "balanced"Trade-off mode controlling generation quality and speed, takes a string enum value, default balanced; performance is faster, quality mode is slower but richer in detail.
performancebalancedqualityseedintegerOptionalRandom seed, takes an integer; the same seed with the same input reproduces the result.
categorystringOptionalDefault: "auto"Garment category, takes a string, default auto, i.e., the category is automatically detected from the garment image.
topsbottomsone-piecesautomodel_imagestringRequiredminLength 1pattern ^https?://Photo of a person wearing the garment, takes an http(s) URL.
garment_imagestringRequiredminLength 1pattern ^https?://Product image of the garment to try on, takes an http(s) URL.
output_formatstringOptionalDefault: "png"Output image format, takes a string, default png; png has the highest quality, jpeg is faster.
pngjpegmoderation_levelstringOptionalDefault: "permissive"Content moderation level, takes a string, default permissive; permissive blocks explicit content, conservative also blocks lingerie and swimwear content.
nonepermissiveconservativesegmentation_freebooleanOptionalDefault: trueBoolean switch, default true; when enabled, disables human parsing on the person image.
garment_photo_typestringOptionalDefault: "auto"Garment image type, takes a string, default auto; model means an image of a model wearing the garment, flat-lay means a flat-lay or invisible mannequin image, auto means automatic detection.
automodelflat-laycallbackobjectOptional
Terminal-state notification config. When omitted, no callback is delivered — poll the task yourself. See the callback note below.
Provide callback.url when creating a task and HiAPI POSTs to your service once the task reaches a terminal state — no polling needed. The callback payload mirrors the task detail structure; signature verification, delivery retries and idempotency are documented on the Unified Async API overview page.
urlstringRequiredRequired when callback is present. A POST is sent to this URL once the task reaches a terminal state; must be a valid http(s) URL.
whenstringOptionalDefault: "final"Only final is supported today — notified on both success and fail.
finalstoragestringOptionalDefault: "temp"Artifact storage tier: temp (default, retained about 7 days) or persistent (long-term, billed by size). Insufficient balance or exceeding the storage cap silently downgrades to temp; the effective tier is shown in the task detail response.
temppersistentRequest examples
# Submit an async task; returns a taskId immediately (no waiting for generation)
curl -X POST "https://api.hiapi.ai/v1/tasks" \
-H "Authorization: Bearer $HIAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "fashn-tryon-v1.6",
"input": {
"mode": "balanced",
"category": "auto",
"model_image": "…",
"garment_image": "…",
"output_format": "png",
"moderation_level": "permissive",
"segmentation_free": true,
"garment_photo_type": "auto"
}
}' const res = await fetch("https://api.hiapi.ai/v1/tasks", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.HIAPI_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "fashn-tryon-v1.6",
input: {
"mode": "balanced",
"category": "auto",
"model_image": "…",
"garment_image": "…",
"output_format": "png",
"moderation_level": "permissive",
"segmentation_free": true,
"garment_photo_type": "auto"
}
}),
});
const task = await res.json();
// { code: 200, message: "success", data: { taskId } } import os, requests
res = requests.post(
"https://api.hiapi.ai/v1/tasks",
headers={"Authorization": f"Bearer {os.environ['HIAPI_API_KEY']}"},
json={
"model": "fashn-tryon-v1.6",
"input": {
"mode": "balanced",
"category": "auto",
"model_image": "…",
"garment_image": "…",
"output_format": "png",
"moderation_level": "permissive",
"segmentation_free": True,
"garment_photo_type": "auto"
}
},
)
print(res.json()) # { code, message, data: { taskId } } 200 OK
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-01HZTQ8BX2N3GM3YFK4Z9D7VQR"
}
} 400 Bad Request
{
"code": 400,
"message": "invalid request",
"data": null,
"error_code": "INVALID_REQUEST"
} Get task detail
https://api.hiapi.ai/v1/tasks/:id Response fields
taskIdstringRequiredTask ID, always prefixed with tk-hiapi-.
modelstringRequiredResolved full model name. Tasks submitted with the route parameter return base@route (e.g. gpt-image-2/text-to-image@ext); otherwise identical to the name passed at creation.
routestringOptionalPresent only when the task was submitted with an explicit route parameter; echoes the submitted value.
statusstringRequiredTask status.
queued Queued, not started yet.
handling Being processed.
archiving Processing finished, artifacts being prepared.
success Terminal: completed, artifacts available (output returned).
fail Terminal: failed (error returned).
After submission, check status: success and fail are terminal, everything else is non-terminal. Poll every 1–3 seconds until terminal. On success, download artifacts from output[].url and transfer them before expireAt; pass storage: "persistent" at creation time when long-term retention is needed.
creatednumberRequiredTask creation time (Unix seconds).
completednumberRequiredUnix seconds when the task reached a terminal state; fixed to 0 while not terminal.
outputarrayOptional
Present only when status == success. Artifact list — always an array; a single task may return multiple types at once (e.g. video + first_frame).
Array [ object ]
Array items
urlstringRequiredArtifact URL, directly downloadable.
typestringRequiredCurrent possible values: video, image, audio, first_frame, last_frame, thumbnail; more may be added later.
expireAtnumberRequiredUnix seconds until which the artifact remains accessible; download or transfer before it expires.
errorobjectOptional
Present only when status == fail.
codestringRequiredBusiness error code.
messagestringRequiredError description.
Response examples
Success
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-01HZTQ8BX2N3GM3YFK4Z9D7VQR",
"model": "happyhorse-1-0",
"status": "success",
"created": 1777282033,
"completed": 1777282099,
"output": [
{
"url": "https://cdn.hiapi.ai/tasks/.../video.mp4",
"type": "video",
"expireAt": 1777886899
}
]
}
} Processing (non-terminal)
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-...",
"model": "happyhorse-1-0",
"status": "archiving",
"created": 1777282033,
"completed": 0
}
} Failed
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-...",
"model": "happyhorse-1-0",
"status": "fail",
"created": 1777282033,
"completed": 1777282099,
"error": {
"code": "TASK_FAILED",
"message": "task failed"
}
}
} Articles
View all articles →Related Models
View all models →Same Type
-
Nano Banana 2 Lite Google $0.033 /image -
FLUX.1 Fill Pro Black Forest Labs $0.071 /image -
Ideogram V4 Ideogram $0.050 /image -
Ideogram V4.5 Ideogram $0.011 /image -
Qwen Image 2.1 Alibaba $0.020 /image -
BRIA Product Shot Bria $0.058 /image -
851 Labs Background Remover 851 Labs $0.002 /image -
Grok Imagine Image 2.0 xAI $0.052 /image -
Grok Imagine Quality xAI $0.070 /image -
Muse Image 1.0 Meta $0.015 per task -
FLUX 1.1 Pro Black Forest Labs $0.050 /image -
Qwen Image 3.0 Alibaba $0.036 /image











