Przewodnik · Migracja

Migracja z FASHN do Photta co się zmienia, a co pozostaje bez zmian

W jednym zdaniu

Przeniesienie integracji try-on do Photta oznacza nowy klucz bearer, nowe body żądania i nową ścieżkę statusu. Struktura integracji — submit, poll, download, store — nie ulega zmianie.

  • Typowy czas: 1.5–4 min
  • Credits: 5 credits w 2K · 6 credits w 4K
  • Przetwarzanie: asynchroniczne, polling

Każda liczba na tej stronie pochodzi z dokumentacji API Photta · sprawdzono

Krótka odpowiedź

Zespoły migrują między API try-on ze standardowych powodów: wyniki lepiej pasują do ich katalogu, cena za obraz wypada korzystniej przy ich wolumenie lub potrzebują funkcji, której obecny dostawca nie oferuje — wsadowego ghost mannequin, zbliżeń detali czy wygenerowanych modeli wykorzystywanych wielokrotnie w trakcie sezonu.

Trzy kwestie: poświadczenia, treść żądania i ścieżka statusu. Photta wymaga klucza bearer przy każdym wywołaniu, stosuje własne nazwy pól i raportuje stan zadania na osobnym endpoincie statusu dla każdej funkcji. Każda wartość wysyłana przez Twój kod jest udokumentowana jako enum lub id, które możesz wcześniej wylistować.

Architektura. W obu przypadkach są to asynchroniczne API działające w modelu submit i poll, więc Twoja kolejka, worker, polityka ponawiania prób i storage działają bez zmian. W praktyce migracja sprowadza się do nowego modułu klienta i nowego zestawu nazw pól, a nie budowy nowego potoku.

Endpoint, na który migrujesz

Pobrane z dokumentacji API Photta, niepisane ręcznie.

W skrócie

Endpoint
POST /api/v1/tryon/apparel
Uwierzytelnianie
Klucz API Bearer
Przetwarzanie
Asynchroniczne — odpytuj endpoint statusu
Typowy czas
1.5–4 min
Credits
5 credits w 2K · 6 credits w 4K
Proporcje obrazu
3:4 · 1:1 · 4:3 · 9:16 · 16:9
Limity wejściowe
Do 10 MB na obraz; JPEG, PNG, WebP
Idempotentne
Nie

Cztery kwestie, które faktycznie się zmieniają

  • Uwierzytelnianie

    Jeden klucz Bearer dla każdego endpointu, generowany w panelu Photta. Brak uprawnień per-endpoint i brak etapu wymiany tokenów.

  • Ciało żądania

    Photta przyjmuje pola w snake_case z udokumentowanymi typami enum oraz identyfikatory modelu, pozy i tła, które pobierasz z endpointów zasobów i cachujesz.

  • Polling

    Odpytuj status endpoint danej funkcji co 3 sekundy, aż zwróci completed lub failed. Nie ma webhooków, więc nie musisz wystawiać niczego publicznie.

  • Rozliczenia

    Credits za wywołanie — 5 przy 2K i 6 przy 4K dla apparel try-on — pobierane w momencie startu zadania i zwracane automatycznie w przypadku błędu.

Nowe żądanie

To samo wywołanie w cURL, Node.js i 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')

Pytania dotyczące migracji

Ile trwa migracja?

To kwestia jednego modułu klienta: nowy klucz, nowe nazwy pól, nowa ścieżka statusu. Jeśli Twój worker już wysyła zadania i wykonuje polling, reszta kodu pozostaje bez zmian.

Czy muszę zmieniać system kolejek?

Nie. Oba API są asynchroniczne, więc cokolwiek stosujesz obecnie — Celery, BullMQ, Inngest, tabelę cron — zachowuje swoją strukturę. Zmieniają się tylko wywołania wewnątrz zadania.

Co z wygenerowanymi wcześniej obrazami?

To pliki w Twoim własnym storage'u i nic w nich się nie zmienia. Migracja wpływa na to, co renderujesz w kolejnym kroku, a nie na to, co zostało już opublikowane.

Jak wypadają ceny w porównaniu?

Strona z porównaniem zestawia koszt Photta w credits za wywołanie z danymi publikowanymi przez FASHN w ich własnym cenniku, wraz z datą odczytania każdej wartości. O tym, co opłaca się bardziej, decyduje Twój wolumen.

Czy mogę używać obu rozwiązań jednocześnie?

Tak, i jest to najbezpieczniejszy sposób na migrację. Przepuść część katalogu przez nowy endpoint, porównaj wyniki na rzeczywistych produktach, a potem przenieś resztę.

Uruchom oba, potem przełącz

Skieruj kopię swojej kolejki na nowy endpoint i samodzielnie porównaj wyniki.

  • 1.5–4 min
  • 5 credits w 2K · 6 credits w 4K
  • asynchroniczne, polling