# Multivue vers modèle 3D
> **POST** `/v3/generation/multiview-to-model`
Générez un modèle 3D à partir d'images multivues.
## Paramètres de la demande
### En-têtes de demande
| Paramètre | Tapez | Obligatoire | Par défaut | Descriptif |
| :-: | :-: | :-: | :-: | :-: |
| Content-Type | chaîne | Oui | - | `application/json` |
| Authorization | chaîne | Oui | - | `Bearer {api_key}` |
| Paramètre | Tapez | Obligatoire | Par défaut | Descriptif |
| :-: | :-: | :-: | :-: | :-: |
| inputs | objet[] \ | chaîne[4] | Oui | - | Images multivues. **Trois formats — utilisez-en exactement un, ne mélangez pas.** **view-key (recommandé)** : `[{"front":"..."},{"back":"..."}]` avec les clés `front`/`left`/`back`/`right` ; les valeurs sont URL, `file_token` ou `{url}` / `{file_token}` / `{object:{bucket,key}}` imbriquées. L'ordre n'a pas d'importance ; au moins 2 vues requises, dont `front`. **positionnel hérité** : tableau fixe à 4 chaînes `[front, left, back, right]` ; une chaîne vide saute un emplacement. **task_id** : `[{"task_id":"<uuid>"}]` (tableau à un seul élément) pour réutiliser la sortie à 4 vues d'une tâche `generate_multiview_image` ou `edit_multiview_image` antérieure ; la tâche source doit être `success` |
| model | chaîne | Non | `tripo-v3.1` | Version modèle AI. Valeurs prises en charge : `tripo-p1`, `tripo-turbo`, `tripo-v3.1`, `tripo-v3.0`, `tripo-v2.5`, `tripo-v2.0` |
| face_limit | entier | Non | Adaptatif | Polycount maximum pour la sortie |
| texture | booléen | Non | `true` | Activer les cartes de texture |
| pbr | booléen | Non | `true` | Activez les matériaux PBR. Lorsqu'il est activé, `texture` est forcé à `true` |
| texture_seed | entier | Non | Aléatoire | Graine aléatoire pour la génération de texture |
| texture_quality | chaîne | Non | `standard` | Qualité des textures. Valeurs prises en charge : `standard`, `detailed`, `extreme` |
| geometry_quality | chaîne | Non | `standard` | Qualité de la géométrie. `standard` (équilibré), `detailed` (mode Ultra) |
| auto_size | booléen | Non | `false` | Redimensionnez automatiquement le modèle aux dimensions réelles en mètres |
| quad | booléen | Non | `false` | Générez un maillage quadruple. Lorsqu'il est activé, le format de sortie est forcé à FBX |
| smart_low_poly | booléen | Non | `false` | Générez un modèle low-poly avec un style de topologie conçu à la main |
| generate_parts | booléen | Non | `false` | Générez des pièces segmentées modifiables. Non compatible avec `texture`, `pbr`, `quad` ou `smart_low_poly` — voir la note ci-dessous |
| compress | chaîne | Non | - | Type de compression. `geometry` (compression méshopt) |
| export_orientation | chaîne | Non | `+x` | Orientation export. Valeurs disponibles : `-x`, `-y`, `+y` |
**Remarques sur `generate_parts` :**
Non compatible avec `texture`, `pbr`, `quad` ou `smart_low_poly` :
- `texture=true` ou `pbr=true` — y compris l'omission de `texture`, qui vaut `true` par défaut — la requête est rejetée avec le code d'erreur `1004`.
- `quad=true` — quad est ignoré ; les pièces retournées sont des maillages triangulaires.
- `smart_low_poly=true` — smart_low_poly est prioritaire et les pièces ne sont PAS produites.
Pour générer des pièces, définissez `texture=false` et `pbr=false`, et n'envoyez ni `quad` ni `smart_low_poly`.
**Remarques sur `export_orientation` :**
- S'applique uniquement à cette génération. Si le modèle doit être utilisé dans des tâches de post-traitement (texture, rig, reciblage, conversion, ...), il est recommandé de **ne pas** définir ce paramètre.
- Lorsqu'il est défini, le post-traitement peut affecter le résultat final en raison d'une orientation incorrecte du modèle, tout en rapportant `status: success` — aucune erreur n'est levée. À utiliser avec prudence.
- Si vous prévoyez de post-traiter le modèle, laissez ce paramètre vide et convertissez l'orientation à la dernière étape via `/v3/models/convert`.
Les paramètres suivants ne sont valides que lorsque `model >= tripo-v3.0` : `texture_quality`, `geometry_quality`, `auto_size`, `quad`, `smart_low_poly`, `generate_parts`, `compress`.
## formats d'entrées
### clé de vue (recommandé)
Chaque élément du tableau est un objet avec exactement une clé parmi `front`, `left`, `back` ou `right`. L'ordre n'a pas d'importance ; le serveur canonise en `[front, left, back, right]`. `front` est requis ; au moins deux vues doivent être non vides.
**Avec URL :**
```json
{
"inputs": [
{"front": "https://example.com/front.png"},
{"back": "https://example.com/back.png"},
{"right": "https://example.com/right.png"}
],
"model": "tripo-v3.1",
"texture": false,
"geometry_quality": "detailed"
}
```
**Avec file_tokens (obtenu via le fichier de téléchargement API) :**
```json
{
"inputs": [
{"front": "3154b4b0-4647-4032-aa82-827441ae92ef"},
{"back": "58ea3eab-6a08-4deb-98f9-e60f1802954d"},
{"right": "584b0e07-8576-4eb4-bf49-2e149e0252f6"}
],
"model": "tripo-v3.1",
"texture": false,
"geometry_quality": "detailed"
}
```
### positionnel hérité
Exactement quatre chaînes dans l'ordre `[front, left, back, right]`. Utilisez une chaîne vide `""` pour ignorer une vue.
```json
{
"inputs": [
"file_front_token",
"",
"https://example.com/back.png",
"https://example.com/right.png"
]
}
```
### task_id (réutiliser la tâche multi-vues)
Transmettez le ID d'une tâche `generate_multiview_image` ou `edit_multiview_image` précédente pour réutiliser sa sortie à 4 vues pour la génération 3D. `inputs` doit être un tableau à un seul élément avec un objet `task_id` — ne pas mélanger avec des emplacements de clé de vue ou de position. La tâche source doit avoir le statut `success`.
```json
{
"inputs": [
{"task_id": "550e8400-e29b-41d4-a716-446655440000"}
],
"model": "v3.1-20260211",
"texture": true,
"pbr": true
}
```
## Exemples de demande
### curl
```bash
curl -X POST https://openapi.tripo3d.ai/v3/generation/multiview-to-model \
-H "Content-Type: application/json" \
-H "Authorization: Bearer {api_key}" \
-d '{
"inputs": [
"https://example.com/front.png",
"https://example.com/back.png",
"https://example.com/left.png",
"https://example.com/right.png"
],
"model": "tripo-v3.1",
"texture": true,
"pbr": true,
"texture_quality": "detailed"
}'
```
### Python
```python
import requests
url = "https://openapi.tripo3d.ai/v3/generation/multiview-to-model"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer {api_key}"
}
payload = {
"inputs": [
"https://example.com/front.png",
"https://example.com/back.png",
"https://example.com/left.png",
"https://example.com/right.png"
],
"model": "tripo-v3.1",
"texture": True,
"pbr": True,
"texture_quality": "detailed"
}
response = requests.post(url, headers=headers, json=payload)
print(response.json())
```
### JavaScript
```javascript
const url = "https://openapi.tripo3d.ai/v3/generation/multiview-to-model";
const response = await fetch(url, {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer {api_key}"
},
body: JSON.stringify({
inputs: [
"https://example.com/front.png",
"https://example.com/back.png",
"https://example.com/left.png",
"https://example.com/right.png"
],
model: "tripo-v3.1",
texture: true,
pbr: true,
texture_quality: "detailed"
})
});
const data = await response.json();
console.log(data);
```
## Réponse
### Réponse réussie
```json
{
"code": 0,
"data": {
"task_id": "task_abc123"
}
}
```
### Champs de réponse
| Paramètre | Tapez | Descriptif |
| :-: | :-: | :-: |
| code | entier | Code d'état. `0` indique le succès |
| data.task_id | chaîne | Identifiant de tâche unique utilisé pour interroger la progression et les résultats de la génération |
## Codes d'erreur
| Code d'état HTTP | Code d'erreur | Descriptif | Recommandation |
| :-: | :-: | :-: | :-: |
| 429 | 2000 | Limite de génération dépassée | Réduisez la fréquence des demandes et réessayez plus tard |
| 400 | 2002 | Paramètre de requête non pris en charge | Vérifier les noms des paramètres du corps de la requête et les plages de valeurs |
| 400 | 2003 | Le fichier d'entrée est vide | Confirmez que le fichier téléchargé n'est pas vide ou que le URL est accessible |
| 400 | 2004 | Type de fichier non pris en charge | Utilisez un format d'image pris en charge (PNG, JPEG, WebP) |
| 400 | 2008 | L'entrée viole la politique relative au contenu | Remplacez l'image d'entrée et supprimez le contenu qui enfreint les règles. |
| 403 | 2010 | Crédits insuffisants | Ajoutez des crédits et réessayez |
| 400 | 2015 | Version du modèle obsolète | Mettez à niveau `model` vers une version actuellement prise en charge |
| 400 | 2018 | Le modèle est trop complexe pour être remaillé | Réduisez `face_limit` ou simplifiez la saisie |
Multivue vers modèle 3D
POST/v3/generation/multiview-to-model
Générez un modèle 3D à partir d’images multivues.
Paramètres de la demande
En-têtes de demande
Paramètre
Tapez
Obligatoire
Par défaut
Descriptif
Content-Type
chaîne
Oui
-
application/json
Authorization
chaîne
Oui
-
Bearer {api_key}
Paramètre
Tapez
Obligatoire
Par défaut
Descriptif
inputs
objet[] \
chaîne[4]
Oui
-
model
chaîne
Non
tripo-v3.1
Version modèle AI. Valeurs prises en charge : tripo-p1, tripo-turbo, tripo-v3.1, tripo-v3.0, tripo-v2.5, tripo-v2.0
face_limit
entier
Non
Adaptatif
Polycount maximum pour la sortie
texture
booléen
Non
true
Activer les cartes de texture
pbr
booléen
Non
true
Activez les matériaux PBR. Lorsqu’il est activé, texture est forcé à true
texture_seed
entier
Non
Aléatoire
Graine aléatoire pour la génération de texture
texture_quality
chaîne
Non
standard
Qualité des textures. Valeurs prises en charge : standard, detailed, extreme
geometry_quality
chaîne
Non
standard
Qualité de la géométrie. standard (équilibré), detailed (mode Ultra)
auto_size
booléen
Non
false
Redimensionnez automatiquement le modèle aux dimensions réelles en mètres
quad
booléen
Non
false
Générez un maillage quadruple. Lorsqu’il est activé, le format de sortie est forcé à FBX
smart_low_poly
booléen
Non
false
Générez un modèle low-poly avec un style de topologie conçu à la main
generate_parts
booléen
Non
false
Générez des pièces segmentées modifiables. Non compatible avec texture, pbr, quad ou smart_low_poly — voir la note ci-dessous
compress
chaîne
Non
-
Type de compression. geometry (compression méshopt)
Non compatible avec texture, pbr, quad ou smart_low_poly :
texture=true ou pbr=true — y compris l’omission de texture, qui vaut true par défaut — la requête est rejetée avec le code d’erreur 1004.
quad=true — quad est ignoré ; les pièces retournées sont des maillages triangulaires.
smart_low_poly=true — smart_low_poly est prioritaire et les pièces ne sont PAS produites.
Pour générer des pièces, définissez texture=false et pbr=false, et n’envoyez ni quad ni smart_low_poly.
Remarques sur export_orientation :
S’applique uniquement à cette génération. Si le modèle doit être utilisé dans des tâches de post-traitement (texture, rig, reciblage, conversion, …), il est recommandé de ne pas définir ce paramètre.
Lorsqu’il est défini, le post-traitement peut affecter le résultat final en raison d’une orientation incorrecte du modèle, tout en rapportant status: success — aucune erreur n’est levée. À utiliser avec prudence.
Si vous prévoyez de post-traiter le modèle, laissez ce paramètre vide et convertissez l’orientation à la dernière étape via /v3/models/convert.
Les paramètres suivants ne sont valides que lorsque model >= tripo-v3.0 : texture_quality, geometry_quality, auto_size, quad, smart_low_poly, generate_parts, compress.
formats d’entrées
clé de vue (recommandé)
Chaque élément du tableau est un objet avec exactement une clé parmi front, left, back ou right. L’ordre n’a pas d’importance ; le serveur canonise en [front, left, back, right]. front est requis ; au moins deux vues doivent être non vides.
Transmettez le ID d’une tâche generate_multiview_image ou edit_multiview_image précédente pour réutiliser sa sortie à 4 vues pour la génération 3D. inputs doit être un tableau à un seul élément avec un objet task_id — ne pas mélanger avec des emplacements de clé de vue ou de position. La tâche source doit avoir le statut success.