Guide · Migration

Migrer de FASHN vers Photta ce qui change, ce qui ne change pas

En une phrase

Migrer une intégration de try-on vers Photta implique une nouvelle clé Bearer, un nouveau corps de requête et un nouveau chemin de statut. La structure de l'intégration — soumettre, poller, télécharger, stocker — ne change pas.

  • Délai typique: 1.5–4 min
  • Crédits: 5 crédits en 2K · 6 crédits en 4K
  • Traitement: asynchrone, polling

Chaque chiffre sur cette page provient de la documentation de l'API Photta · vérifié

La réponse courte

Les équipes changent d'API de try-on pour des raisons classiques : le rendu convient mieux à leur catalogue, le coût unitaire par image est plus avantageux à leur volume, ou elles requièrent une fonctionnalité non proposée par leur fournisseur actuel — ghost mannequin en batch, gros plans sur les détails, modèles générés réutilisables sur toute une saison.

Trois éléments : l'identifiant, le corps de la requête et le chemin de statut. Photta s'authentifie avec une clé Bearer à chaque appel, utilise ses propres noms de champs et renvoie l'état du job sur un endpoint de statut dédié à chaque fonctionnalité. Chaque valeur envoyée par votre code est documentée sous forme d'enum ou d'id que vous pouvez lister au préalable.

L'architecture. Les deux sont des API asynchrones avec soumission et polling ; votre file d'attente, votre worker, votre stratégie de retry et votre stockage restent pleinement opérationnels. En pratique, une migration consiste en un nouveau module client et un nouveau jeu de noms de champs, et non en un nouveau pipeline.

L'endpoint cible de votre migration

Extrait de la documentation de l'API Photta, non rédigé à la main.

En un coup d'œil

Endpoint
POST /api/v1/tryon/apparel
Authentification
Clé API Bearer
Traitement
Asynchrone — interrogez l'endpoint de statut par polling
Délai typique
1.5–4 min
Crédits
5 crédits en 2K · 6 crédits en 4K
Rapports d'aspect
3:4 · 1:1 · 4:3 · 9:16 · 16:9
Limites d'entrée
Jusqu'à 10 Mo par image ; JPEG, PNG, WebP
Idempotent
Non

Les quatre changements réels

  • Authentification

    Une seule clé bearer sur chaque endpoint, créée dans votre tableau de bord Photta. Aucun scope par endpoint et aucune étape d’échange de token.

  • Le corps de la requête

    Photta accepte des champs en snake_case avec des énumérations documentées, ainsi que des identifiants pour le mannequin, la pose et l'arrière-plan que vous listez via les endpoints de ressources et mettez en cache.

  • Polling

    Interrogez le status endpoint de la fonctionnalité toutes les 3 secondes jusqu’à ce qu’il renvoie completed ou failed. Il n’y a aucun webhook, rien de nouveau n’a donc besoin d’être exposé publiquement.

  • Fonctionnement de la facturation

    Des credits par appel — 5 en 2K et 6 en 4K pour le try-on de vêtements — débités au lancement de la tâche et remboursés automatiquement en cas d’échec.

La nouvelle requête

Le même appel en cURL, Node.js et 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')

Questions sur la migration

Combien de temps prend une migration ?

Il s’agit d’un seul module client : une nouvelle clé, de nouveaux noms de champs, un nouveau chemin de statut. Si votre worker gère déjà la soumission et le polling, le code périphérique ne bouge pas.

Dois-je modifier ma file d’attente ?

Non. Les deux API étant asynchrones, la structure reste identique, peu importe ce que vous utilisez aujourd’hui — Celery, BullMQ, Inngest, une table cron. Seuls les appels au sein de la tâche changent.

Qu’advient-il des images que j’ai déjà générées ?

Ce sont des fichiers présents sur votre propre stockage et rien ne change à leur sujet. Migrer impacte vos prochains rendus, pas ce que vous avez déjà publié.

Comment se comparent les tarifs ?

La page de comparaison confronte le coût par appel en credits de Photta à ce que FASHN publie sur sa propre page de tarification, avec la date à laquelle chaque chiffre a été relevé. Votre propre volume détermine la solution la plus avantageuse.

Puis-je exécuter les deux en parallèle ?

Oui, et c’est la manière la plus sûre de faire la transition. Envoyez une fraction de votre catalogue vers le nouvel endpoint, comparez le résultat sur des produits réels, puis basculez le reste.

Exécutez les deux, puis basculez

Acheminez une copie de votre file d'attente vers le nouvel endpoint et comparez vous-même les résultats.

  • 1.5–4 min
  • 5 crédits en 2K · 6 crédits en 4K
  • asynchrone, polling