Capacité · Génération de mannequins
API de génération de mannequins IA pour vos propres modèles
En une phrase
L'API de génération de mannequins de Photta crée un modèle IA photoréaliste à partir des attributs de votre choix, renvoie un mannequin id réutilisable et coûte 4 crédits. Deux générateurs : un pour les vêtements, un calibré pour les gros plans de bijoux.
- Délai typique: 30-60s
- Crédits: 4 crédits
- Traitement: asynchrone, polling
- Limites: 600 requêtes/min
- Authentification: Clé Bearer
Chaque chiffre sur cette page provient de la documentation de l'API Photta · vérifié
RESPONSE=$(curl -s -X POST https://api.photta.app/api/v1/mannequins/generate \
-H "Authorization: Bearer $PHOTTA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"category": "Female",
"ethnicity": "east_asian_korean",
"age": "late_20s",
"skin_tone": "light_medium",
"expression": "neutral",
"hair_style": "long_straight",
"hair_color": "black",
"body_type": "slim",
"height": "average"
}')
ID=$(echo "$RESPONSE" | jq -r '.data.id')const res = await fetch("https://api.photta.app/api/v1/mannequins/generate", {
method: "POST",
headers: { Authorization: `Bearer ${process.env.PHOTTA_API_KEY}`, "Content-Type": "application/json" },
body: JSON.stringify({
"category": "Female",
"ethnicity": "east_asian_korean",
"age": "late_20s",
"skin_tone": "light_medium",
"expression": "neutral",
"hair_style": "long_straight",
"hair_color": "black",
"body_type": "slim",
"height": "average"
}),
});
const { data } = await res.json(); // data.id, data.statusimport os, requests
res = requests.post(
"https://api.photta.app/api/v1/mannequins/generate",
headers={"Authorization": f"Bearer {os.environ['PHOTTA_API_KEY']}"},
json={
"category": "Female",
"ethnicity": "east_asian_korean",
"age": "late_20s",
"skin_tone": "light_medium",
"expression": "neutral",
"hair_style": "long_straight",
"hair_color": "black",
"body_type": "slim",
"height": "average"
},
)
data = res.json()["data"] # data["id"], data["status"]En un coup d'œil
En un coup d'œil
- Endpoint
- POST /api/v1/mannequins/generate
- Authentification
- Clé API Bearer
- Traitement
- Asynchrone — interrogez l'endpoint de statut par polling
- Délai typique
- 30-60s
- Crédits
- 4 crédits
- Limites d'entrée
- Jusqu'à 10 Mo par image ; JPEG, PNG, WebP
- Idempotent
- Non
Requête et réponse
Requête
RESPONSE=$(curl -s -X POST https://api.photta.app/api/v1/mannequins/generate \
-H "Authorization: Bearer $PHOTTA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"category": "Female",
"ethnicity": "east_asian_korean",
"age": "late_20s",
"skin_tone": "light_medium",
"expression": "neutral",
"hair_style": "long_straight",
"hair_color": "black",
"body_type": "slim",
"height": "average"
}')
ID=$(echo "$RESPONSE" | jq -r '.data.id')const res = await fetch("https://api.photta.app/api/v1/mannequins/generate", {
method: "POST",
headers: { Authorization: `Bearer ${process.env.PHOTTA_API_KEY}`, "Content-Type": "application/json" },
body: JSON.stringify({
"category": "Female",
"ethnicity": "east_asian_korean",
"age": "late_20s",
"skin_tone": "light_medium",
"expression": "neutral",
"hair_style": "long_straight",
"hair_color": "black",
"body_type": "slim",
"height": "average"
}),
});
const { data } = await res.json(); // data.id, data.statusimport os, requests
res = requests.post(
"https://api.photta.app/api/v1/mannequins/generate",
headers={"Authorization": f"Bearer {os.environ['PHOTTA_API_KEY']}"},
json={
"category": "Female",
"ethnicity": "east_asian_korean",
"age": "late_20s",
"skin_tone": "light_medium",
"expression": "neutral",
"hair_style": "long_straight",
"hair_color": "black",
"body_type": "slim",
"height": "average"
},
)
data = res.json()["data"] # data["id"], data["status"]202 Accepted / Terminé
{
"data": {
"id": "mmk_r4s5t6",
"status": "processing",
"category": "Female",
"credits_used": 4,
"created_at": "2026-04-10T14:00:00Z"
},
"request_id": "req_mnk002"
}{
"data": {
"id": "mmk_r4s5t6",
"status": "completed",
"mannequin": {
"id": "mnk_v7w8x9",
"name": "Generated Mannequin",
"gender": "female",
"thumbnail_url": "https://cdn.photta.app/mannequins/mnk_v7w8x9-thumb.jpg"
},
"credits_used": 4,
"created_at": "2026-04-10T14:00:00Z",
"completed_at": "2026-04-10T14:00:42Z",
"duration_ms": 42000
},
"request_id": "req_mnk003"
}Paramètres de requête
categoryType: stringRequis
Mannequin category.
Valeurs:FemaleMaleGirlChildBoyChildethnicityType: string
Ethnic appearance.
Valeurs:east_asian_koreaneast_asian_chinesesoutheast_asiansouth_asiannordicwestern_europeaneastern_europeanmediterraneanafricanafrican_americanmiddle_easternlatin_americanbrazilianmixed_asian_europeanpolynesianageType: string
Age range.
Valeurs:early_20slate_20searly_30slate_30s40s50sbaby_1toddler_2_4young_5_7child_8_10preteen_11_13skin_toneType: string
Skin tone.
Valeurs:lightlight_mediummediummedium_darkdarkface_shapeType: string
Face shape.
Valeurs:ovalsquareroundheartoblongdiamondeye_colorType: string
Eye color.
Valeurs:browndark_brownblackbluegreenhazelgrayambereye_shapeType: string
Eye shape.
Valeurs:almondroundmonolidhoodedupturneddownturnedexpressionType: string
Facial expression.
Valeurs:neutralsoft_smilewarm_smileseriousconfidentfriendlyfacial_hairType: string
Facial hair style (Male only).
Valeurs:nonelight_stubblemedium_stubbleshort_beardfull_beardgoateemustachemakeupType: string
Makeup style (Female only).
Valeurs:naturalminimalsoft_glamprofessionaleditorialhair_styleType: string
Hair style. Available options depend on category — use /options endpoint.
hair_colorType: string
Hair color.
Valeurs:blackdark_brownmedium_brownlight_brownauburnredblondeplatinum_blondegraywhitehair_textureType: string
Hair texture.
Valeurs:straightwavycurlycoilybody_typeType: string
Body type. Options depend on category — use /options endpoint.
heightType: string
Height.
Valeurs:shortaveragetallglassesType: string
Glasses.
Valeurs:noneeyeglassessunglassesfrecklesType: string
Freckles.
Valeurs:nonelightprominentpiercingsType: string
Piercings.
Valeurs:noneearnosemultiple
Erreurs
- 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.
Limites
- 600 requêtes par minute par clé API (Fenêtre fixe ; la limite est identique sur tous les forfaits)
- Une 429 renvoie Retry-After: 30 secondes
- Jusqu'à 10 Mo par image
- Formats: JPEG, PNG, WebP
- Lots simultanés par forfait: Free 1 · Hobby 2 · Seller 3 · Brand 4 · Studio 6
- Polling uniquement — l'API n'envoie aucun webhook.
Des attributs en entrée, un modèle réutilisable en sortie
Consultez les options, choisissez les attributs, soumettez, effectuez le polling, puis réutilisez l'id.
Étape 1
Générer une clé API
La génération de mannequins utilise les mêmes identifiants et le même solde de crédits que toutes les autres capacités de Photta.
Étape 2
Consulter le catalogue d'options
GET `/api/v1/mannequins/generate/options` renvoie chaque valeur acceptée, y compris les listes de `hair_style` et `body_type` qui diffèrent selon la catégorie. Alimentez votre formulaire à partir de celui-ci plutôt que de coder en dur les énumérations.
Étape 3
Envoyer le mannequin via POST
POST `/api/v1/mannequins/generate` avec `category` — `Female`, `Male`, `GirlChild` ou `BoyChild` — ainsi que l'un des 17 attributs optionnels : ethnicité, âge, carnation, forme du visage et des yeux, expression, pilosité faciale, maquillage, cheveux, morphologie, taille, lunettes, taches de rousseur et piercings.
Étape 4
Effectuer le polling jusqu'à la fin de la tâche
GET `/api/v1/mannequins/generate/:id` toutes les 3 secondes jusqu'à ce que `data.status` soit `completed` ou `failed` ; le traitement prend généralement de 30 à 60 secondes.
Étape 5
Réutiliser le mannequin
Le corps de la réponse finalisée contient un objet `mannequin` avec son propre id. Transmettez cet id en tant que `mannequin_id` sur les tâches ultérieures de try-on ou d'optique pour conserver le même visage sur chaque prise de vue.
Le même endpoint en Node.js, Python et cURL
Node.js
API de génération de mannequins IA en Node.js
Appelez aPI de génération de mannequins IA de Photta depuis un backend Node.js avec fetch natif. Aucun SDK requis : stockez votre clé, soumettez le job, récupérez le résultat par polling.
LirePython
API de génération de mannequins IA en Python
Appelez aPI de génération de mannequins IA de Photta en Python avec la bibliothèque requests. Un wrapper de trente lignes, compatible asynchrone via httpx, fonctionnant dans Django, FastAPI et Celery.
LirecURL
API de génération de mannequins IA avec cURL
Appelez aPI de génération de mannequins IA de Photta directement depuis le shell avec cURL. Soumettez, effectuez le polling, téléchargez — chaque extrait s'associe à jq pour vos pipelines scriptés.
Lire
Questions que se posent les développeurs avant de générer des modèles
Qu'est-ce qu'un mannequin IA ?
Un modèle généré dont vous définissez l'apparence au lieu d'effectuer un casting. Il est renvoyé sous la forme d'un id, permettant ainsi au même visage, aux mêmes cheveux et au même corps de porter chaque vêtement d'un catalogue.
Combien coûte un mannequin ?
4 crédits, aussi bien pour le générateur de vêtements que pour celui de bijoux. La réutilisation d'un mannequin existant dans un shooting ultérieur ne coûte rien de plus — vous payez pour le try-on, pas pour le modèle.
Quels attributs puis-je définir ?
`category` est obligatoire. Tout le reste est optionnel : ethnicité, âge, carnation, forme du visage, couleur et forme des yeux, expression, pilosité faciale, maquillage, coupe, couleur et texture des cheveux, morphologie, taille, lunettes, taches de rousseur et piercings. L'endpoint des options liste les valeurs acceptées.
À quoi sert le générateur de bijoux ?
POST `/api/v1/mannequins/jewelry/generate` crée un modèle calibré pour les prises de vue de bijoux en gros plan : il prend en compte `jewelry_type`, `shot_type`, `camera_angle`, `background` et `lighting` au lieu des attributs du corps entier, garantissant un rendu parfait du décolleté, de l'oreille ou de la main à courte distance.
Puis-je réutiliser le même modèle sur plusieurs shootings ?
Oui — c'est tout l'intérêt de cet endpoint. Le mannequin id généré est accepté comme `mannequin_id` par le try-on de vêtements, le try-on de bijoux et le studio d'optique.
Comment effectuer le polling pour obtenir le résultat ?
Effectuez un GET sur `/api/v1/mannequins/generate/:id` toutes les 3 secondes jusqu'à ce que `data.status` soit `completed` ou `failed`. Le builder de bijoux effectue son polling sur son propre chemin de statut.
Capacités associées
Fonctionnalités
API de try-on virtuel pour les vêtements
API REST qui positionne des vêtements sur des mannequins générés par IA. Traitement asynchrone, génération en 1.5–4 minutes, 5 crédits en 2K, 6 en 4K. Exemples en cURL, Node.js et Python.
Voir l'endpointFonctionnalités
API de try-on de bijoux pour colliers, bagues, bracelets et boucles d'oreilles
Positionnez colliers, bagues, bracelets et boucles d'oreilles sur des modèles IA via REST. 5 crédits en 2K, mannequins gros plan intégrés, rendu gérant les reflets d'après la documentation de Photta.
Voir l'endpointDévelopper
Intégrez une fonctionnalité de try-on virtuel à votre application
Guide d'implémentation de bout en bout pour intégrer le try-on virtuel avec l'API Photta : upload, soumission, polling via un worker, rendu du résultat. Architecture TypeScript + server-only.
Voir l'endpointComparer
Photta vs Fitroom — choisissez l'API mode adaptée à vos besoins
Comparaison entre Photta et Fitroom : endpoints, coût en crédits par appel, modèle tarifaire et surface d'intégration. Données extraites de chaque site le 2026-04-19. Aucun chiffre inventé.
Voir l'endpointDémarrage rapide
Première image Photta en moins de cinq minutes.
Inscrivez-vous, générez une clé d'API, lancez votre premier appel cURL, effectuez le polling jusqu'à la complétion, persistez le résultat. Cinq étapes documentées de bout en bout.
Voir l'endpointRéférence
Erreurs de l’API Photta
La liste complète des types d’erreurs de l’API Photta avec leurs codes de statut, la structure du corps d’erreur et les échecs pouvant être réessayés.
Voir l'endpointRéférence
Rate limits de l'API Photta
La rate limit de l'API Photta, sa fenêtre, l'en-tête Retry-After, l'intervalle de polling et les plafonds de simultanéité par forfait, tels que documentés dans l'API.
Voir l'endpoint
Chaque chiffre sur cette page provient de la documentation de l'API Photta · vérifié
Testez l'API en cinq minutes
Générez une clé d'API Photta, collez le snippet cURL ci-dessus, et vous obtiendrez votre première photo portée sur modèle avant même que le café ait fini de couler.
- 30-60s
- 4 crédits
- asynchrone, polling
- 600 requêtes/min
- Clé Bearer