기능 · 아이웨어 스튜디오
아이웨어 가상 try-on API 안경 및 선글라스용
한 줄 요약
Photta의 아이웨어 스튜디오 API는 안경 또는 선글라스 사진 한 장을 완성도 높은 연출 컷으로 변환합니다. 제품 단독 또는 모델 착용 모드를 선택해 POST 요청을 보내고, 3초마다 폴링하여 상태가 completed가 되면 다운로드하세요. 2K 기준 5 credits.
- 일반적인 소요 시간: 20–60 sec
- 크레딧: 2K에서 5 크레딧 · 4K에서 6 크레딧
- 처리 방식: 비동기, 폴링
- 제한 사항: 600 requests/min
- 인증: Bearer 키
이 페이지의 모든 수치는 다음 출처를 기반으로 합니다: Photta API 문서 · 확인 완료
RESPONSE=$(curl -s -X POST https://api.photta.app/api/v1/eyewear-studio \
-H "Authorization: Bearer $PHOTTA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"eyewear_image": "https://cdn.yourstore.com/products/aviator-sunglasses.jpg",
"mode": "product-only",
"sub_tool": "studio-shot",
"backdrop": "gradient",
"lighting": "soft",
"aspect_ratio": "3:4",
"resolution": "2K"
}')
ID=$(echo "$RESPONSE" | jq -r '.data.id')const res = await fetch("https://api.photta.app/api/v1/eyewear-studio", {
method: "POST",
headers: { Authorization: `Bearer ${process.env.PHOTTA_API_KEY}`, "Content-Type": "application/json" },
body: JSON.stringify({
"eyewear_image": "https://cdn.yourstore.com/products/aviator-sunglasses.jpg",
"mode": "product-only",
"sub_tool": "studio-shot",
"backdrop": "gradient",
"lighting": "soft",
"aspect_ratio": "3:4",
"resolution": "2K"
}),
});
const { data } = await res.json(); // data.id, data.statusimport os, requests
res = requests.post(
"https://api.photta.app/api/v1/eyewear-studio",
headers={"Authorization": f"Bearer {os.environ['PHOTTA_API_KEY']}"},
json={
"eyewear_image": "https://cdn.yourstore.com/products/aviator-sunglasses.jpg",
"mode": "product-only",
"sub_tool": "studio-shot",
"backdrop": "gradient",
"lighting": "soft",
"aspect_ratio": "3:4",
"resolution": "2K"
},
)
data = res.json()["data"] # data["id"], data["status"]
한눈에 보기
한눈에 보기
- 엔드포인트
- POST /api/v1/eyewear-studio
- 인증
- Bearer API 키
- 처리 방식
- 비동기 — 상태 엔드포인트 폴링
- 일반적인 소요 시간
- 20–60 sec
- 크레딧
- 2K에서 5 크레딧 · 4K에서 6 크레딧
- 화면비
- 3:4 · 1:1 · 4:3 · 9:16 · 16:9
- 입력 제한
- 이미지당 최대 10 MB; JPEG, PNG, WebP
- 멱등성
- 아니요
요청 및 응답
요청
RESPONSE=$(curl -s -X POST https://api.photta.app/api/v1/eyewear-studio \
-H "Authorization: Bearer $PHOTTA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"eyewear_image": "https://cdn.yourstore.com/products/aviator-sunglasses.jpg",
"mode": "product-only",
"sub_tool": "studio-shot",
"backdrop": "gradient",
"lighting": "soft",
"aspect_ratio": "3:4",
"resolution": "2K"
}')
ID=$(echo "$RESPONSE" | jq -r '.data.id')const res = await fetch("https://api.photta.app/api/v1/eyewear-studio", {
method: "POST",
headers: { Authorization: `Bearer ${process.env.PHOTTA_API_KEY}`, "Content-Type": "application/json" },
body: JSON.stringify({
"eyewear_image": "https://cdn.yourstore.com/products/aviator-sunglasses.jpg",
"mode": "product-only",
"sub_tool": "studio-shot",
"backdrop": "gradient",
"lighting": "soft",
"aspect_ratio": "3:4",
"resolution": "2K"
}),
});
const { data } = await res.json(); // data.id, data.statusimport os, requests
res = requests.post(
"https://api.photta.app/api/v1/eyewear-studio",
headers={"Authorization": f"Bearer {os.environ['PHOTTA_API_KEY']}"},
json={
"eyewear_image": "https://cdn.yourstore.com/products/aviator-sunglasses.jpg",
"mode": "product-only",
"sub_tool": "studio-shot",
"backdrop": "gradient",
"lighting": "soft",
"aspect_ratio": "3:4",
"resolution": "2K"
},
)
data = res.json()["data"] # data["id"], data["status"]202 Accepted / 완료됨
{
"data": {
"id": "eyw_7a1c9e42f05b3d688c2e4f01a9d6b357",
"status": "processing",
"mode": "product-only",
"sub_tool": "studio-shot",
"resolution": "2K",
"aspect_ratio": "3:4",
"credits_used": 5,
"created_at": "2026-08-01T09:15:00Z"
},
"request_id": "req_eyw001"
}{
"data": {
"id": "eyw_7a1c9e42f05b3d688c2e4f01a9d6b357",
"status": "completed",
"mode": "product-only",
"sub_tool": "studio-shot",
"output_url": "https://cdn.photta.app/generated/eyw_7a1c9e42f05b3d688c2e4f01a9d6b357.jpg",
"thumbnail_url": "https://cdn.photta.app/generated/eyw_7a1c9e42f05b3d688c2e4f01a9d6b357-thumb.jpg",
"resolution": "2K",
"aspect_ratio": "3:4",
"credits_used": 5,
"created_at": "2026-08-01T09:15:00Z",
"completed_at": "2026-08-01T09:15:38Z"
},
"request_id": "req_eyw002"
}요청 파라미터
eyewear_image타입: string필수
The eyewear product image — glasses or sunglasses. https URL or base64 data URI. JPEG, PNG, WebP; max 10 MB.
mode타입: string
Generation mode: "product-only" — the eyewear alone, styled by sub_tool; "on-model" — the eyewear worn on an AI model's face (requires mannequin_id).
= product-only
값:product-onlyon-modelsub_tool타입: string
Product-only styling: "studio-shot" — clean studio product shot; "flat-lay" — top-down arrangement on a surface; "lifestyle" — the eyewear placed in a real-world scene; "floating" — the frames suspended mid-air. Sending sub_tool with mode "on-model" returns 400.
= studio-shot
값:studio-shotflat-laylifestylefloatingmannequin_id타입: string
Required when mode is "on-model": the AI model whose face wears the eyewear — an id ("mnk_...") from GET /api/v1/eyewear-studio/mannequins. Sending it in product-only mode returns 400.
face_angle타입: string
On-model only: the angle of the model's face.
= front
값:frontthree-quarterside-profileexpression타입: string
On-model only: the model's facial expression.
= neutral
값:neutralsoft-smileseriousconfidentlighting_style타입: string
On-model only: how the portrait is lit.
= soft-diffused
값:soft-diffusedstudionaturaldramaticframe_fit_style타입: string
On-model only: the overall styling of how the frames are worn.
= casual
값:casualprofessionalfashion-editorialsportybackdrop타입: string
Studio-shot only: the backdrop behind the eyewear.
= white
값:whitegrayblackgradientlighting타입: string
Studio-shot only: the lighting setup.
= soft
값:softharddramaticnaturalsurface타입: string
Flat-lay only: the surface the eyewear lies on.
= marble
값:marblewoodfabricconcretemetalarrangement_style타입: string
Flat-lay only: how the composition is arranged.
= minimal
값:minimalsymmetricscatteredlayeredprops타입: string
Flat-lay only: complementary props placed around the eyewear.
= none
값:noneplantsaccessoriestechscene타입: string
Lifestyle only: the real-world setting.
= coffee-shop
값:coffee-shopbeachurban-streetofficeparkmood타입: string
Lifestyle only: the color mood of the scene.
= warm
값:warmcoolvibrantmoodyangle타입: string
Floating only: the camera angle on the suspended frames.
= front
값:frontthree-quartersidetop-downshadow_style타입: string
Floating only: the shadow cast beneath the frames.
= soft-drop
값:soft-dropnonehard-dropreflectionbackground_color타입: string
Solid background color. Applies in both modes. Overridden by background_prompt when both are sent.
= white
값:whitegrayblackbeigebackground_prompt타입: string
Free-text background description. Max 400 characters — excess is silently truncated. Overrides background_color.
aspect_ratio타입: string
Output aspect ratio.
= 3:4
값:3:41:14:39:1616:9resolution타입: string
Output resolution. 4K cannot be combined with the 1:1 aspect ratio — that request returns 400.
= 2K
값:2K4K
오류
- 400
invalid_request_error - The request is malformed or contains invalid parameters.
- 401
authentication_error - The API key is missing, invalid, or expired.
- 402
insufficient_credits_error - Your account does not have enough credits.
- 404
not_found_error - The requested resource does not exist.
- 409
conflict_error - The request conflicts with current state — e.g. your concurrent-batch cap is reached.
- 429
rate_limit_error - Too many requests. Slow down and retry.Retry-After: 30
- 500
api_error - An internal server error occurred. Retry later.
제한 사항
- API 키당 분당 600회 요청 (고정 윈도우 방식이며, 제한은 모든 요금제에서 동일합니다)
- 429 응답에는 Retry-After: 30초 헤더가 포함됩니다
- 이미지당 최대 10 MB
- 지원 형식: JPEG, PNG, WebP
- 요금제별 동시 배치 수: Free 1 · Hobby 2 · Seller 3 · Brand 4 · Studio 6
- 폴링 전용 — API는 웹훅을 전송하지 않습니다.
안경테 사진 한 장 입력, 스타일링된 아이웨어 컷 출력
모드를 선택하고, 해당 모드의 스타일링을 지정한 뒤 요청, 폴링, 다운로드합니다.
단계 1
API 키 생성
아이웨어 스튜디오는 다른 모든 Photta 기능과 동일한 인증 정보 및 크레딧 잔액을 공유합니다.
단계 2
모드 및 스타일링 선택
`mode`는 `product-only` 또는 `on-model`입니다. product-only는 `sub_tool`(`studio-shot`, `flat-lay`, `lifestyle`, `floating`)을 사용하며 각 도구마다 고유한 제어 옵션을 제공합니다. on-model은 `mannequin_id`와 함께 `face_angle`, `expression`, `lighting_style`, `frame_fit_style`을 사용합니다.
단계 3
아이웨어 작업 POST 요청
`eyewear_image` 및 스타일링 필드와 함께 `/api/v1/eyewear-studio`로 POST 요청을 보냅니다. `background_prompt`는 최대 400자까지 지원하며 `background_color`보다 우선 적용됩니다. 완료 여부는 폴링으로만 확인할 수 있으며, API는 웹훅을 전송하지 않습니다.
단계 4
작업 완료까지 폴링
`data.status`가 `completed` 또는 `failed`가 될 때까지 3초마다 `/api/v1/eyewear-studio/:id`로 GET 요청을 보냅니다. 일반적으로 20~60초 내에 완료됩니다.
단계 5
다운로드 및 저장
완료된 응답 본문에는 `output_url`과 썸네일이 포함됩니다. URL은 일회성 작업 결과 전달용이며 영구 호스팅이 아니므로 파일을 직접 저장해야 합니다.
Node.js, Python, cURL에서 동일하게 사용하는 엔드포인트
Node.js
Node.js 환경의 아이웨어 가상 try-on API
네이티브 fetch를 사용하여 Node.js 백엔드에서 Photta의 아이웨어 가상 try-on API 기능을 호출하세요. SDK는 필요 없습니다: 키를 저장하고 작업을 제출한 뒤 결과를 폴링하면 됩니다.
읽기Python
Python 환경의 아이웨어 가상 try-on API
requests 라이브러리를 사용하여 Python에서 Photta의 아이웨어 가상 try-on API를 호출하세요. 30줄짜리 래퍼이자 httpx를 통한 비동기 지원이 가능하며, Django, FastAPI, Celery에서 원활하게 동작합니다.
읽기cURL
cURL 기반 아이웨어 가상 try-on API
cURL을 사용해 셸에서 Photta의 아이웨어 가상 try-on API 기능을 직접 호출하세요. 제출, polling, 다운로드까지 — 모든 스니펫은 스크립트 파이프라인 구축을 위해 jq와 연동됩니다.
읽기
아이웨어 연출 컷 프로덕션 배포 전 자주 묻는 질문
아이웨어 스튜디오 API는 어떤 기능을 제공하나요?
안경 또는 선글라스 제품 사진 한 장을 입력받아 스타일링된 사진으로 반환합니다. 스튜디오, 플랫레이, 라이프스타일, 플로팅 기법을 적용한 제품 단독 컷이나 선택한 AI 모델 착용 컷으로 생성할 수 있습니다.
아이웨어 컷 생성 비용은 얼마인가요?
어패럴 및 주얼리 try-on과 동일하게 2K 해상도는 5 credits, 4K 해상도는 6 credits입니다. 실패한 작업은 자동으로 환불됩니다.
product-only와 on-model의 차이점은 무엇인가요?
`product-only`는 안경테 자체만 촬영하며 `sub_tool`로 제어합니다. `on-model`은 AI 모델의 얼굴에 안경을 착용시키며 `mannequin_id`, `face_angle`, `expression`, `lighting_style`, `frame_fit_style`로 제어합니다. 선택하지 않은 모드의 필드는 무시됩니다.
각 하위 도구는 어떤 스타일링 옵션을 제공하나요?
`studio-shot`은 `backdrop`과 `lighting`을 지원합니다. `flat-lay`는 `surface`, `arrangement_style`, `props`를 지원합니다. `lifestyle`은 `scene`과 `mood`를 지원합니다. `floating`은 `angle`과 `shadow_style`을 지원합니다. 모든 필드는 enum 형식이므로 정의되지 않은 값은 유추 처리되지 않고 거부됩니다.
자체 AI 모델을 사용할 수 있나요?
네. `mannequin_id`는 GET `/api/v1/eyewear-studio/mannequins`의 모든 마네킹 id를 허용하며, 마네킹 생성 API로 만든 마네킹도 동일한 방식으로 사용할 수 있습니다.
결과를 어떻게 폴링하나요?
`data.status`가 `completed` 또는 `failed`가 될 때까지 3초마다 GET `/api/v1/eyewear-studio/:id`를 호출하세요. 웹훅은 제공되지 않으며, 폴링이 문서화된 완료 신호입니다.
관련 기능
기능
가상 착용(Virtual try-on) API 의류용
의류를 AI 마네킹에 착용시키는 REST API입니다. 비동기식 처리, 1.5~4분의 생성 시간, 2K 기준 5 credits, 4K 기준 6 credits 소요. cURL, Node.js, Python 예제가 제공됩니다.
엔드포인트 보기기능
주얼리 try-on API 목걸이, 반지, 팔찌 및 귀걸이 지원
REST 방식으로 AI 모델에 목걸이, 반지, 팔찌, 귀걸이를 착용해 보세요. 2K 기준 5 credits, 내장 클로즈업 마네킹 제공, 반사광을 정밀하게 반영하는 Photta 공식 렌더링 파이프라인을 활용하세요.
엔드포인트 보기빌드
AI 제품 사진 촬영 서비스 구축하기
Photta의 가상 try-on API를 화이트라벨 SaaS로 재판매하기 위한 창업자 플레이북: 테넌트 키, 배치 fanout, credit별 결제, 현실적인 SLA.
엔드포인트 보기비교
Photta vs FASHN — AI 패션 API 나란히 비교하기
Photta 및 FASHN 비교: 엔드포인트, 크레딧 가격, 요금제 티어, 동시 요청 한도. 2026-04-19 기준 각 사의 공식 가격 정책 페이지에서 수집되었습니다. 가공된 수치는 일절 없습니다.
엔드포인트 보기빠른 시작
5분 안에 첫 번째 Photta 이미지를 생성하세요.
회원가입, API 키 생성, 첫 cURL 호출 실행, 완료될 때까지 폴링, 결과 저장까지. 엔드투엔드로 문서화된 5단계 가이드입니다.
엔드포인트 보기레퍼런스
Photta API 오류
Photta API의 전체 오류 유형 목록과 상태 코드, 오류 본문 포맷, 그리고 재시도할 가치가 있는 오류에 대한 안내입니다.
엔드포인트 보기레퍼런스
Photta API rate limits
Photta API rate limit, 윈도우, Retry-After 헤더, polling 주기, 플랜별 동시성 상한선 등 API 문서에 명시된 모든 내용입니다.
엔드포인트 보기
이 페이지의 모든 수치는 다음 출처를 기반으로 합니다: Photta API 문서 · 확인 완료
5분 만에 API 체험하기
Photta API 키를 발급받고 위 cURL 스니펫을 붙여넣기만 하면, 커피가 다 내려지기도 전에 첫 번째 모델 착용 컷을 받아볼 수 있습니다.
- 20–60 sec
- 2K에서 5 크레딧 · 4K에서 6 크레딧
- 비동기, 폴링
- 600 requests/min
- Bearer 키