FASHN Virtual Try-On V1.5
통합
모델 id
fashn/tryon/v1.5
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://api.doitong.com/v1/run/fashn/tryon/v1.5?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model_image": "example",
"garment_image": "example"
}'
# Still "queued" or "running"? Poll with the id from the response:
curl "https://api.doitong.com/v1/requests/REQUEST_ID?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY"
const API = "https://api.doitong.com/v1";
const headers = {
"Authorization": "Bearer " + process.env.DOITONG_API_KEY,
"Content-Type": "application/json",
};
// Run the model; wait up to 20 s for the finished result in the same call
let res = await fetch(API + "/run/fashn/tryon/v1.5?wait=20", {
method: "POST",
headers,
body: JSON.stringify({
"model_image": "example",
"garment_image": "example"
}),
});
let request = await res.json();
if (!res.ok) throw new Error(request.error.code + ": " + request.error.message);
// Not finished yet: long-poll until it is
while (request.status === "queued" || request.status === "running") {
res = await fetch(API + "/requests/" + request.id + "?wait=20", { headers });
request = await res.json();
}
if (request.status !== "succeeded") throw new Error(JSON.stringify(request.error));
console.log(request.outputs.map((o) => o.url), request.cost.credits + " API credits ($" + request.cost.usd + ")");
import os
import requests
API = "https://api.doitong.com/v1"
headers = {"Authorization": "Bearer " + os.environ["DOITONG_API_KEY"]}
payload = {
"model_image": "example",
"garment_image": "example",
}
# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/fashn/tryon/v1.5", params={"wait": 20}, json=payload, headers=headers)
request = r.json()
if not r.ok:
raise RuntimeError(request["error"]["code"] + ": " + request["error"]["message"])
# Not finished yet: long-poll until it is
while request["status"] in ("queued", "running"):
request = requests.get(API + "/requests/" + request["id"], params={"wait": 20}, headers=headers).json()
if request["status"] != "succeeded":
raise RuntimeError(request["error"])
print([o["url"] for o in request["outputs"]], request["cost"]["credits"], "API credits", "$" + request["cost"]["usd"])
# 1. Connect once (Claude Code; Cursor, VS Code, Claude Desktop: https://doitong.com/ko/developers/docs/mcp)
claude mcp add --transport http doitong-models https://api.doitong.com/v1/mcp \
--header "Authorization: Bearer $DOITONG_API_KEY"
# 2. Your agent calls the "run" tool with:
{
"model_id": "fashn/tryon/v1.5",
"input": {
"model_image": "example",
"garment_image": "example"
}
}
Doitong API를 통해 FASHN Virtual Try-On V1.5 모델(fashn/tryon/v1.5)을 호출합니다. 에이전트용 문서: https://doitong.com/ko/developers/models/fashn/tryon/v1.5.md
POST https://api.doitong.com/v1/run/fashn/tryon/v1.5?wait=20
Authorization: Bearer $DOITONG_API_KEY
Content-Type: application/json
{
"model_image": "example",
"garment_image": "example"
}
응답 상태가 "queued" 또는 "running"이면 "succeeded"가 될 때까지 GET https://api.doitong.com/v1/requests/REQUEST_ID?wait=20을 폴링하세요. 파일은 outputs[].url에 있습니다. POST https://api.doitong.com/v1/quote/fashn/tryon/v1.5에 동일한 본문을 보내면 실행 전에 정확한 가격을 반환합니다.
이 요청: $0.075 75 API 크레딧 이 페이지에서 실행
새 API 키입니다. 지금만 표시되며 이미 아래 코드와 API 키 필드에 입력되어 있습니다. 안전하게 보관하세요. 브라우저에서 실행되는 코드에 절대 넣지 마세요.
FASHN · 이미지
첫 번째 결과가 여기에 표시됩니다
아래에서 요청을 작성하고 API 키로 실행하세요. 출력은 스토리지에 복사되며, 영구 보관하거나 7일 동안 무료로 보관할 수 있습니다.
요청 만들기
컨트롤은 모델 스키마에서 생성됩니다. 값을 변경하면 코드와 가격이 업데이트됩니다.
POST
/run/fashn/tryon/v1.5?wait=20
견적 → $0.075
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://api.doitong.com/v1/run/fashn/tryon/v1.5?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model_image": "example",
"garment_image": "example"
}'
# Still "queued" or "running"? Poll with the id from the response:
curl "https://api.doitong.com/v1/requests/REQUEST_ID?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY"
const API = "https://api.doitong.com/v1";
const headers = {
"Authorization": "Bearer " + process.env.DOITONG_API_KEY,
"Content-Type": "application/json",
};
// Run the model; wait up to 20 s for the finished result in the same call
let res = await fetch(API + "/run/fashn/tryon/v1.5?wait=20", {
method: "POST",
headers,
body: JSON.stringify({
"model_image": "example",
"garment_image": "example"
}),
});
let request = await res.json();
if (!res.ok) throw new Error(request.error.code + ": " + request.error.message);
// Not finished yet: long-poll until it is
while (request.status === "queued" || request.status === "running") {
res = await fetch(API + "/requests/" + request.id + "?wait=20", { headers });
request = await res.json();
}
if (request.status !== "succeeded") throw new Error(JSON.stringify(request.error));
console.log(request.outputs.map((o) => o.url), request.cost.credits + " API credits ($" + request.cost.usd + ")");
import os
import requests
API = "https://api.doitong.com/v1"
headers = {"Authorization": "Bearer " + os.environ["DOITONG_API_KEY"]}
payload = {
"model_image": "example",
"garment_image": "example",
}
# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/fashn/tryon/v1.5", params={"wait": 20}, json=payload, headers=headers)
request = r.json()
if not r.ok:
raise RuntimeError(request["error"]["code"] + ": " + request["error"]["message"])
# Not finished yet: long-poll until it is
while request["status"] in ("queued", "running"):
request = requests.get(API + "/requests/" + request["id"], params={"wait": 20}, headers=headers).json()
if request["status"] != "succeeded":
raise RuntimeError(request["error"])
print([o["url"] for o in request["outputs"]], request["cost"]["credits"], "API credits", "$" + request["cost"]["usd"])
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "run",
"arguments": {
"model_id": "fashn/tryon/v1.5",
"input": {
"model_image": "example",
"garment_image": "example"
},
"wait_seconds": 20
}
}
}
FASHN Virtual Try-On V1.5 정보
`model_image`와 `garment_image`(URL 또는 base64)를 받아 사람에게 의상을 입힌 이미지를 생성합니다. `category`는 tops, bottoms, one-pieces 또는 auto를 지원하고 `garment_photo_type`은 on-model 또는 flat-lay를 처리합니다. `mode`로 속도와 품질을 조정하며 `num_samples`는 1~4개의 이미지를 반환합니다.
매개변수
이름유형
기본값허용됨
설명
model_image필수
유형string
URL 또는 base64 데이터로 제공되는 모델 이미지입니다.
garment_image필수
유형string
URL 또는 base64 데이터로 제공되는 의류 이미지입니다.
category선택 사항
유형enum
기본값auto
topsbottomsone-piecesauto
착용 변환 의류 카테고리입니다. 'auto'는 자동 감지를 시도하도록 요청합니다.
mode선택 사항
유형enum
기본값balanced
performancebalancedquality
속도와 품질의 균형을 위한 작동 모드입니다. 'balanced'는 중간 수준을 추구하고, 'quality'는 처리 속도가 느리지만 더 나은 결과를 제공하며, 'performance'는 품질이 저하될 수 있지만 더 빠르게 실행합니다.
garment_photo_type선택 사항
유형enum
기본값auto
automodelflat-lay
내부 매개변수의 성능 조정을 위한 의류 사진 카테고리입니다. 플랫레이 사진과 고스트 마네킹 이미지는 'flat-lay'를 사용하고, 모델이 착용한 의류 사진은 'model'을 사용합니다. 'auto'에서는 시스템이 카테고리를 직접 식별합니다.
moderation_level선택 사항
유형enum
기본값permissive
nonepermissiveconservative
의류 이미지 검토 정책입니다. 'none'으로 필터를 비활성화하려면 계정 승인이 필요하며, 승인 없이는 해당 선택이 'permissive'처럼 동작합니다. 'permissive'에서는 노골적인 콘텐츠만 차단하고, 'conservative'에서는 속옷과 수영복도 추가로 제외합니다.
seed선택 사항
유형integer | null
재현 가능한 생성을 위한 시드입니다. 무작위성을 고정해 동일한 입력이 같은 결과를 낼 수 있게 하며, 시드를 변경하면 다른 결과가 생성됩니다.
num_samples선택 사항
유형integer
기본값1
1 – 4
한 번의 실행에서 생성할 이미지 수입니다. 여러 시도를 함께 수행해 생성의 무작위성에도 좋은 결과를 얻을 가능성을 높입니다.
segmentation_free선택 사항
유형boolean
기본값true
모델 이미지의 사람 파싱을 비활성화합니다.
output_format선택 사항
유형enum
기본값png
pngjpeg
최대 품질을 위한 'png'와 더 빠른 생성을 위한 'jpeg' 중 이미지 형식을 선택합니다.
enable_safety_checker선택 사항
유형boolean
기본값true
호출자에게 권한이 있으면 false로 설정해 검사를 완화할 수 있습니다.
필수
출력
GET /requests/req_8k2m4q7x1z9c3v5b6n0p2r4t
{
"id": "req_8k2m4q7x1z9c3v5b6n0p2r4t",
"object": "request",
"model": "fashn/tryon/v1.5",
"status": "succeeded",
"created_at": "2026-10-20T12:00:00Z",
"started_at": "2026-10-20T12:00:02Z",
"completed_at": "2026-10-20T12:00:09Z",
"queue_position": null,
"cost": {
"credits": 75,
"usd": "0.075",
"charged": 75,
"refunded": 0
},
"input": {
"model_image": "example",
"garment_image": "example"
},
"output": {
"images": [
{
"url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
"content_type": "image/jpeg",
"file_name": "0-output.jpeg",
"file_size": 1843200
}
]
},
"outputs": [
{
"type": "image",
"url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
"content_type": "image/jpeg",
"file_size": 1843200,
"width": 1024,
"height": 768,
"stored": true
}
],
"error": null,
"metrics": {
"inference_seconds": 6.8
},
"urls": {
"self": "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t",
"cancel": "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t/cancel"
}
}
파일 보관 방식 선택모든 outputs[].url은 스토리지에 저장된 복사본입니다. 계정 설정 또는 ?storage=에 따라 영구 보관(GB-월 단위 과금)하거나 7일 동안 무료로 보관합니다.
모든 모델에서 동일한 구조이미지, 동영상, 오디오 모두 type, url, content_type, width, height 및 duration을 사용합니다. output은 모델 자체의 결과 객체입니다.
출력 필드
- images
- array of object {url, content_type, file_name, file_size}
다른 FASHN Virtual Try-On 변형
더 많은 모델: 이미지 편집
AI 에이전트용: 이 페이지의 Markdown 버전: https://doitong.com/ko/developers/models/fashn/tryon/v1.5.md. 모든 모델 및 가이드: https://doitong.com/developers/llms.txt






