가이드 · 마이그레이션

FASHN에서 Photta로 마이그레이션하기 변경되는 점과 변경되지 않는 점

한 줄 요약

try-on 연동을 Photta로 이전한다는 것은 새로운 Bearer 키, 새로운 request body, 새로운 상태 경로를 사용하는 것을 의미합니다. 제출, 폴링, 다운로드, 저장으로 이어지는 연동 구조 자체는 변경되지 않습니다.

  • 일반적인 소요 시간: 1.5–4 min
  • 크레딧: 2K에서 5 크레딧 · 4K에서 6 크레딧
  • 처리 방식: 비동기, 폴링

이 페이지의 모든 수치는 다음 출처를 기반으로 합니다: Photta API 문서 · 확인 완료

요약

개발팀이 try-on API를 교체하는 데는 일반적인 이유들이 있습니다. 결과물이 자사 카탈로그에 더 잘 맞거나, 사용량 규모에 따른 이미지당 가격이 유리하거나, 현재 공급업체에서 제공하지 않는 기능(배치 고스트 마네킹, 디테일 클로즈업, 한 시즌 동안 재사용 가능한 생성 모델 등)이 필요하기 때문입니다.

세 가지입니다. 인증 자격 증명, request body, 상태 경로입니다. Photta는 모든 호출에서 Bearer 키로 인증하고, 고유한 필드명을 사용하며, 기능별 상태 endpoint를 통해 작업 상태를 보고합니다. 코드에서 전송하는 모든 값은 사전 조회가 가능한 enum 또는 id 형태로 문서화되어 있습니다.

아키텍처입니다. 둘 다 작업을 제출하고 폴링하는 비동기 API이므로 대기열, 워커, 재시도 정책, 스토리지 설정을 그대로 유지할 수 있습니다. 실제로 마이그레이션 작업은 새로운 파이프라인 구축이 아니라 새 클라이언트 모듈 작성과 필드명 교체 수준에 불과합니다.

이전 대상 endpoint

수기가 아닌 Photta API 공식 문서에서 직접 읽어온 내용입니다.

한눈에 보기

엔드포인트
POST /api/v1/tryon/apparel
인증
Bearer API 키
처리 방식
비동기 — 상태 엔드포인트 폴링
일반적인 소요 시간
1.5–4 min
크레딧
2K에서 5 크레딧 · 4K에서 6 크레딧
화면비
3:4 · 1:1 · 4:3 · 9:16 · 16:9
입력 제한
이미지당 최대 10 MB; JPEG, PNG, WebP
멱등성
아니요

실제로 변경되는 4가지 사항

  • 인증

    Photta 대시보드에서 생성한 단 하나의 Bearer 키를 모든 엔드포인트에 사용합니다. 엔드포인트별 스코프 설정이나 토큰 교환 단계가 없습니다.

  • 요청 본문

    Photta는 문서화된 enum을 포함하는 snake_case 필드와, 리소스 엔드포인트에서 조회하여 캐시할 수 있는 model, pose, background ID를 입력받습니다.

  • 폴링

    completed 또는 failed 상태가 반환될 때까지 3초마다 해당 기능의 상태 엔드포인트를 폴링하세요. 웹훅이 없으므로 외부에 새로 노출해야 할 엔드포인트가 없습니다.

  • 과금 방식

    호출당 credits가 차감됩니다. 의류 try-on 기준 2K는 5, 4K는 6이 작업 시작 시 차감되며 실패 시 자동으로 환불됩니다.

새로운 요청 방식

cURL, Node.js, Python으로 작성된 동일한 호출 코드.

RESPONSE=$(curl -s -X POST https://api.photta.app/api/v1/tryon/apparel \
  -H "Authorization: Bearer $PHOTTA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "product_type": "top",
  "product_images": [
    "https://cdn.yourstore.com/products/shirt-front.jpg"
  ],
  "product_back_image": "https://cdn.yourstore.com/products/shirt-back.jpg",
  "product_category": "t_shirt",
  "mannequin_id": "mnk_f3a9b1",
  "pose_id": "pose_c2d4e5",
  "background": "https://cdn.yourstore.com/backgrounds/studio-loft.jpg",
  "lock_background": true,
  "resolution": "2K",
  "aspect_ratio": "3:4",
  "body_size": "M",
  "expression": "neutral",
  "user_instruction": "Keep the collar pattern crisp and centered."
}')
ID=$(echo "$RESPONSE" | jq -r '.data.id')

마이그레이션 관련 질문

마이그레이션에는 얼마나 걸리나요?

클라이언트 모듈 하나 수준입니다. 새 키, 새 필드 이름, 새 상태 경로만 적용하면 됩니다. 기존 워커가 이미 작업을 제출하고 폴링하는 구조라면 주변 코드는 수정할 필요가 없습니다.

큐 시스템을 변경해야 하나요?

아닙니다. 두 API 모두 비동기식이므로 현재 사용 중인 시스템—Celery, BullMQ, Inngest, cron table 등—의 구조를 그대로 유지할 수 있습니다. 태스크 내부의 호출 코드만 변경하면 됩니다.

이미 생성한 이미지는 어떻게 되나요?

해당 이미지는 자체 스토리지에 저장된 파일이므로 아무것도 변경되지 않습니다. 마이그레이션은 앞으로 렌더링할 작업에만 영향을 미치며, 이미 게시한 콘텐츠에는 영향을 주지 않습니다.

가격은 어떻게 비교되나요?

비교 페이지에는 Photta의 호출당 credit 비용과 FASHN 공식 요금 페이지의 공개 가격을 각 수치를 확인한 날짜와 함께 나란히 명시해 두었습니다. 실제 사용량에 따라 어느 쪽이 더 유리한지 직접 판단할 수 있습니다.

두 API를 동시에 운영할 수 있나요?

네, 마이그레이션 시 가장 안전한 방법입니다. 카탈로그의 일부를 새 엔드포인트로 전송하여 실제 제품 결과물을 비교한 다음 나머지를 전환하세요.

동시 실행 후 전환하기

대기열 복사본의 대상을 새 endpoint로 지정하고 결과물을 직접 비교해 보세요.

  • 1.5–4 min
  • 2K에서 5 크레딧 · 4K에서 6 크레딧
  • 비동기, 폴링