API Texte en 3D est une fonctionnalité qui vous permet d'intégrer les capacités de Texte en 3D de Meshy dans votre propre application. Dans cette section, vous trouverez toutes les informations nécessaires pour commencer avec cette API.
Texte en 3D utilise un flux de travail en deux étapes. Tout d'abord, créez une tâche d'aperçu (mode: "preview") pour générer un maillage 3D sans texture, afin que vous puissiez évaluer la forme. Ensuite, passez l'ID de tâche d'aperçu finalisée à une tâche de raffinage (mode: "refine") pour appliquer la texture au maillage. Les deux étapes partagent le même point de terminaison.
Ce point de terminaison crée une tâche d'aperçu Texte en 3D, qui génère un maillage 3D non texturé (géométrie uniquement) à partir d'un texte prompt. Ceci est la première étape du flux en deux étapes. Une fois que l'aperçu réussit, utilisez l'ID de tâche retourné pour créer une tâche de raffinage pour texturer. Reportez-vous à
L'objet de la tâche Texte en 3D pour le schéma de réponse complet.
Paramètres
Name
mode
Type
string
Requis
Description
Ce champ doit être défini sur "preview" lors de la création d'une tâche d'aperçu.
Name
prompt
Type
string
Requis
Description
Décrivez quel type d'objet est le modèle 3D. Maximum 600 caractères.
Name
model_type
Type
string
défaut standard
Description
Spécifiez le type de génération de maillage 3D.
Valeurs disponibles :
standard: Génération de maillage 3D régulier à haut détail.
lowpoly: Génère un maillage low-poly optimisé pour des polygones plus propres.
Lorsque lowpoly est sélectionné, ai_model, topology, target_polycount, should_remesh sont ignorés.
Name
ai_model
Type
string
défaut latest
Description
ID du modèle à utiliser. Valeurs disponibles : meshy-5, meshy-6, latest (Meshy 6).
Name
should_remesh
Type
boolean
défaut false (meshy-6), true (others)
Description
Contrôle si la phase de remaillage doit être activée. Pour un modèle de la meilleure qualité, nous recommandons de définir should_remesh sur false.
S'applique uniquement quand should_remesh = true
Name
topology
Type
string
défaut triangle
Description
Spécifiez la topology du modèle généré.
Valeurs disponibles :
quad: Générer un maillage principalement composé de quads.
triangle: Générer un maillage de triangle décimé.
Name
target_polycount
Type
integer
défaut 30,000
Description
Spécifiez le nombre cible de polygones dans le modèle généré. Le nombre réel de polygones peut différer de la cible selon la complexité de la géométrie.
La plage de valeurs valides varie selon le niveau utilisateur :
100 à 300,000 (inclusif)
Name
decimation_mode
Type
integer
Description
Activez la décimation adaptative en définissant un niveau de polycount. Lorsqu'il est défini, target_polycount est ignoré.
Valeurs disponibles :
1: Adaptatif — ultra polycount.
2: Adaptatif — high polycount.
3: Adaptatif — medium polycount.
4: Adaptatif — low polycount.
Name
symmetry_mode
Type
string
⚠ obsolète
défaut auto
Description
Obsolète. Ce paramètre n'affecte plus la sortie.
Le champ symmetry_mode contrôle le comportement de la symétrie pendant le processus de génération du modèle.
Les valeurs valides sont :
off: Désactive la symétrie.
auto: Détermine et applique automatiquement la symétrie en fonction de la géométrie d'entrée.
Utilisez pose_mode à la place. Si le modèle doit être généré dans une pose A/T.
Name
art_style
Type
string
⚠ obsolète
défaut realistic
Description
Non pris en charge par Meshy-6. Les requêtes utilisant Meshy-6 ignoreront art_style, et certaines combinaisons peuvent provoquer des erreurs. Valeurs disponibles : realistic, sculpture.
enable_pbr doit être défini sur false lors de l'utilisation du style Sculpture, car le style Sculpture génère son propre ensemble de cartes PBR.
Name
moderation
Type
boolean
défaut false
Description
Lorsqu'il est défini sur true, le contenu d'entrée sera automatiquement filtré pour détecter un contenu potentiellement nuisible. Si un contenu nuisible est détecté, la tâche ne passera pas à la génération.
Le texte de prompt sera filtré.
Name
target_formats
Type
string[]
Description
Spécifie quels formats de fichiers 3D inclure dans la sortie. Seuls les formats demandés seront générés et retournés, ce qui peut réduire le temps d'exécution de la tâche. Lorsqu'il est omis, tous les formats pris en charge sont inclus.
Lorsqu'il est omis, tous les formats sauf 3mf sont générés. 3mf est uniquement inclus lorsqu'il est explicitement spécifié.
Name
alpha_thumbnail
Type
boolean
défaut false
Description
Lorsqu'il est défini sur true, la tâche rend également une version à fond transparent (RGBA) de l'aperçu et la retourne comme alpha_thumbnail_url dans la réponse GET. Le champ existant thumbnail_url reste inchangé.
Name
auto_size
Type
boolean
défaut false
Description
Lorsqu'il est défini sur true, le service utilise la vision AI pour estimer automatiquement la hauteur réelle de l'objet et redimensionne le modèle en conséquence. L'origine sera par défaut bottom sauf si origin_at est explicitement défini.
S'applique uniquement quand auto_size = true
Name
origin_at
Type
string
défaut bottom
Description
Position de l'origine lorsque auto_size est activé.
Valeurs disponibles : bottom, center.
Retours
La propriété result de la réponse contient l'id de la tâche nouvellement créée Texte en 3D.
Modes d'échec
Name
400 - Bad Request
Description
La requête était inacceptable. Causes courantes :
Paramètre manquant : Un paramètre requis (par exemple, prompt, mode) est manquant.
Paramètre invalide : art_style n'est pas l'une des valeurs autorisées.
Prompt trop long : Le prompt dépasse la limite de caractères.
Name
401 - Unauthorized
Description
L'authentification a échoué. Veuillez vérifier votre clé API.
Name
402 - Payment Required
Description
Crédits insuffisants pour effectuer cette tâche.
Name
429 - Too Many Requests
Description
Vous avez dépassé votre limite de débit.
Request
POST
/openapi/v2/text-to-3d
# Aperçu simple avec les paramètres requis uniquementcurlhttps://api.meshy.ai/openapi/v2/text-to-3d \-H'Authorization: Bearer ${YOUR_API_KEY}' \-H'Content-Type: application/json' \-d'{ "mode": "preview", "prompt": "un masque de monstre"}'# Aperçu avec remaillage et pose Acurlhttps://api.meshy.ai/openapi/v2/text-to-3d \-H'Authorization: Bearer ${YOUR_API_KEY}' \-H'Content-Type: application/json' \-d'{ "mode": "preview", "prompt": "un guerrier robot futuriste", "should_remesh": true, "target_polycount": 100000, "pose_mode": "a-pose", "target_formats": ["glb"]}'
Ce point de terminaison crée une tâche de raffinage Texte en 3D, qui applique la texture à un maillage d'aperçu complété. Vous devez fournir le preview_task_id d'une tâche d'aperçu réussie. Ceci est la deuxième étape du flux de travail en deux étapes.
Paramètres
Name
mode
Type
string
Requis
Description
Ce champ doit être défini sur "refine" lors de la création d'une tâche de raffinage.
Name
preview_task_id
Type
string
Requis
Description
L'ID de tâche d'aperçu correspondant.
Le statut de la tâche d'aperçu donnée doit être SUCCEEDED.
Name
enable_pbr
Type
boolean
défaut false
Description
Générer des cartes PBR (métallique, rugosité, normal) en plus de la couleur de base. Une carte d'émission est également incluse lorsque ai_model est meshy-6 ou latest, sauf à texture_resolution: 8k (aucune carte d'émission n'est produite).
Name
texture_resolution
Type
string
défaut 2k
Description
Résolution de la texture de couleur de base. L'un des 2k (2048×2048), 4k (4096×4096), ou 8k (8192×8192). Les résolutions plus élevées capturent plus de détails de surface. Ne s'applique qu'au mode refine.
4k et 8k nécessitent ai_modelmeshy-6 ou latest. À 8k, aucune carte d'émission n'est produite.
Name
hd_texture
Type
boolean
⚠ obsolète
défaut false
Description
Utilisez texture_resolution à la place — équivalent à texture_resolution: "4k". Lorsque les deux sont définis, texture_resolution a priorité.
Name
texture_prompt
Type
string
Description
Fournissez un texte prompt supplémentaire pour guider le processus de texturation. Maximum 600 caractères.
Name
texture_image_url
Type
string
Description
Fournissez une image 2D pour guider le processus de texturation. Nous prenons actuellement en charge les formats .jpg, .jpeg, et .png.
Il y a deux façons de fournir l'image :
URL accessible publiquement : Une URL accessible depuis Internet public
Data URI : Un Data URI encodé en base64 de l'image. Exemple de Data URI : data:image/jpeg;base64,<votre image encodée en base64>
La texturation d'image peut ne pas fonctionner de manière optimale s'il y a des différences de géométrie significatives entre l'asset original et l'image téléchargée. Uniquement texture_image_url ou texture_prompt peuvent être utilisés pour guider le processus de texturation. Si les deux paramètres sont fournis, alors texture_prompt sera utilisé par défaut pour texturer le modèle.
Name
ai_model
Type
string
défaut latest
Description
ID du modèle à utiliser pour le raffinage. Valeurs disponibles : meshy-5, meshy-6, latest (Meshy 6).
Name
moderation
Type
boolean
défaut false
Description
Lorsqu'il est défini sur true, le contenu d'entrée sera automatiquement filtré pour détecter un contenu potentiellement nuisible. Si un contenu nuisible est détecté, la tâche ne passera pas à la génération.
À la fois le texte de texture_prompt et l'image de texture_image_url seront filtrés.
Name
remove_lighting
Type
boolean
défaut true
Description
Supprime les reflets et les ombres de la texture de couleur de base, produisant un résultat plus propre qui fonctionne mieux sous des configurations d'éclairage personnalisées.
Pris en charge uniquement lorsque ai_model est meshy-6 ou latest.
Name
target_formats
Type
string[]
Description
Spécifie quels formats de fichiers 3D inclure dans la sortie. Seuls les formats demandés seront générés et retournés, ce qui peut réduire le temps d'exécution de la tâche. Lorsqu'il est omis, tous les formats pris en charge sont inclus.
Lorsqu'il est omis, tous les formats sauf 3mf sont générés. 3mf est uniquement inclus lorsqu'il est explicitement spécifié.
Name
alpha_thumbnail
Type
boolean
défaut false
Description
Lorsqu'il est défini sur true, la tâche rend également une version à fond transparent (RGBA) de l'aperçu et la retourne comme alpha_thumbnail_url dans la réponse GET. Le champ existant thumbnail_url reste inchangé.
Name
auto_size
Type
boolean
défaut false
Description
Lorsqu'il est défini sur true, le service utilise la vision AI pour estimer automatiquement la hauteur réelle de l'objet et redimensionne le modèle en conséquence. L'origine sera par défaut bottom sauf si origin_at est explicitement défini.
S'applique uniquement quand auto_size = true
Name
origin_at
Type
string
défaut bottom
Description
Position de l'origine lorsque auto_size est activé.
Valeurs disponibles : bottom, center.
Retours
La propriété result de la réponse contient l'id de la tâche nouvellement créée Texte en 3D.
Modes d'échec
Name
400 - Bad Request
Description
La requête était inacceptable. Causes courantes :
ID de tâche invalide : Le preview_task_id est invalide ou n'existe pas.
Tâche non prête : La tâche d'aperçu n'a pas encore réussi.
Incompatibilité de modèle : Le modèle AI de la tâche d'aperçu est incompatible avec le modèle de raffinage demandé.
Name
401 - Unauthorized
Description
L'authentification a échoué. Veuillez vérifier votre clé API.
Name
402 - Payment Required
Description
Crédits insuffisants pour effectuer cette tâche.
Name
404 - Not Found
Description
La tâche d'aperçu spécifiée par preview_task_id est introuvable.
Name
429 - Too Many Requests
Description
Vous avez dépassé votre limite de débit.
Request
POST
/openapi/v2/text-to-3d
# Tâche de raffinage basiquecurlhttps://api.meshy.ai/openapi/v2/text-to-3d \-H'Authorization: Bearer ${YOUR_API_KEY}' \-H'Content-Type: application/json' \-d'{ "mode": "refine", "preview_task_id": "018a210d-8ba4-705c-b111-1f1776f7f578", "enable_pbr": true}'# Raffinage avec taille automatique et format GLBcurlhttps://api.meshy.ai/openapi/v2/text-to-3d \-H'Authorization: Bearer ${YOUR_API_KEY}' \-H'Content-Type: application/json' \-d'{ "mode": "refine", "preview_task_id": "018a210d-8ba4-705c-b111-1f1776f7f578", "target_formats": ["glb"], "auto_size": true}'
Ce point de terminaison vous permet d'obtenir une tâche Texte en 3D en fournissant un id de tâche valide.
Reportez-vous à L'objet de la tâche Texte en 3D pour voir quelles
propriétés sont incluses dans l'objet de tâche Texte en 3D.
Ce point de terminaison fonctionne pour les tâches d'aperçu et de raffinage.
Paramètres
Name
id
Type
path
Description
Identifiant unique de la tâche Texte en 3D à récupérer.
Retours
La réponse contient l'objet de la tâche Texte en 3D. Consultez
la section L'objet de la tâche Texte en 3D pour plus de détails.
// Exemple d'événement d'erreurevent: errordata: {"status_code": 404,"message": "Tâche introuvable"}// Les exemples d'événements de message illustrent la progression de la tâche.// Pour les tâches PENDING ou IN_PROGRESS, le flux de réponse n'inclura pas tous les champs.event: messagedata: {"id": "018a210d-8ba4-705c-b111-1f1776f7f578","progress": 0,"status": "PENDING"}event: messagedata: {"id": "018a210d-8ba4-705c-b111-1f1776f7f578","progress": 50,"status": "IN_PROGRESS"}event: messagedata: {"id": "018a210d-8ba4-705c-b111-1f1776f7f578","type": "text-to-3d-preview","progress": 100,"status": "SUCCEEDED","created_at": 1692771650657,"started_at": 1692771667037,"finished_at": 1692771669037,"model_urls": {"glb":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.glb?Expires=***"},"texture_urls": [ {"base_color":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0.png?Expires=***","metallic":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_metallic.png?Expires=XXX","normal":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_normal.png?Expires=XXX","roughness":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_roughness.png?Expires=XXX","emission":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_emission.png?Expires=XXX" }],"preceding_tasks": 0,"task_error": {"message":""},"consumed_credits": 20}
L'objet de la tâche Texte en 3D est une unité de travail que Meshy suit pour générer un modèle 3D à partir d'une entrée texte. Il y a deux étapes de l'API Texte en 3D, preview et refine. L'étape d'aperçu consiste à générer un modèle 3D maillage uniquement, et l'étape de raffinage consiste à générer un modèle 3D texturé basé sur le résultat de l'étape d'aperçu.
L'objet a les propriétés suivantes :
Propriétés
Name
id
Type
string
Description
Identifiant unique de la tâche. Bien que nous utilisions un UUID triable par k pour les identifiants des tâches en tant que
détail d'implémentation, vous ne devez faire aucune supposition sur le format de l'identifiant.
Name
type
Type
string
Description
Type de la tâche Texte en 3D. Les valeurs possibles sont text-to-3d-preview pour les tâches de l'étape d'aperçu et text-to-3d-refine pour les tâches de l'étape de raffinage.
Name
model_urls
Type
object
Description
URL téléchargeable du fichier modèle 3D texturé généré par Meshy. La propriété pour un format sera omise si le format n'est pas généré au lieu de retourner une chaîne vide.
Name
glb
Type
string
Description
URL téléchargeable du fichier GLB.
Name
fbx
Type
string
Description
URL téléchargeable du fichier FBX.
Name
usdz
Type
string
Description
URL téléchargeable du fichier USDZ.
Name
obj
Type
string
Description
URL téléchargeable du fichier OBJ.
Name
mtl
Type
string
Description
URL téléchargeable du fichier MTL.
Name
stl
Type
string
Description
URL téléchargeable du fichier STL.
Name
3mf
Type
string
Description
URL téléchargeable du fichier 3MF. Présent uniquement lorsque 3mf a été demandé via target_formats.
Name
prompt
Type
string
Description
Il s'agit du prompt non modifié qui a été utilisé pour créer la tâche.
Name
negative_prompt
Type
string
⚠ obsolète
Description
Maintenu pour la compatibilité ascendante. Ce champ n'a aucun impact fonctionnel sur les modèles générés.
Name
art_style
Type
string
⚠ obsolète
Description
Le art_style non modifié qui a été utilisé pour créer la tâche d'aperçu. Non pris en charge par Meshy-6.
Name
texture_richness
Type
string
⚠ obsolète
Description
Maintenu pour la compatibilité ascendante. Ce champ n'a aucun impact fonctionnel sur les modèles générés.
Name
texture_prompt
Type
string
Description
Texte prompt supplémentaire fourni pour guider le processus de texturation pendant l'étape de raffinage.
Name
texture_image_url
Type
string
Description
URL téléchargeable de l'image de texture qui a été utilisée pour guider le processus de texturation.
Name
thumbnail_url
Type
string
Description
URL téléchargeable de l'image miniature du fichier modèle.
Name
alpha_thumbnail_url
Type
string
Description
URL téléchargeable d'une version à fond transparent (RGBA) de thumbnail_url. Présent uniquement lorsque la tâche a été créée avec alpha_thumbnail: true et que l'aperçu transparent a été rendu avec succès ; sinon, ce champ est omis.
Name
video_url
Type
string
⚠ obsolète
Description
URL téléchargeable de la vidéo d'aperçu. Sera supprimée dans une future version.
Name
progress
Type
integer
Description
Progression de la tâche. Si la tâche n'est pas encore commencée, cette propriété sera 0. Une fois la tâche réussie, elle deviendra 100.
Name
started_at
Type
timestamp
Description
Horodatage du moment où la tâche a été commencée, en millisecondes. Si la tâche n'est pas encore commencée, cette propriété sera 0.
Un horodatage représente le nombre de millisecondes écoulées depuis le 1er janvier 1970 UTC, suivant
la norme RFC 3339.
Par exemple, le vendredi 1er septembre 2023 à 12:00:00 GMT est représenté comme 1693569600000. Cela s'applique
à tous les horodatages dans Meshy API.
Name
created_at
Type
timestamp
Description
Horodatage du moment où la tâche a été créée, en millisecondes.
Name
finished_at
Type
timestamp
Description
Horodatage du moment où la tâche a été terminée, en millisecondes. Si la tâche n'est pas encore terminée, cette propriété sera 0.
Name
status
Type
string
Description
Statut de la tâche. Les valeurs possibles sont l'une de PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.
Name
texture_urls
Type
array
Description
Un tableau d'objets URL de texture générés à partir de la tâche. Normalement, cela ne contient qu'un seul objet URL de texture. Chaque URL de texture a les propriétés suivantes :
Name
base_color
Type
string
Description
URL téléchargeable de l'image de la carte de couleur de base.
Name
metallic
Type
string
Description
URL téléchargeable de l'image de la carte métallique.
Si la tâche est créée avec enable_pbr: false, cette propriété sera omise.
Name
normal
Type
string
Description
URL téléchargeable de l'image de la carte de normal.
Si la tâche est créée avec enable_pbr: false, cette propriété sera omise.
Name
roughness
Type
string
Description
URL téléchargeable de l'image de la carte de rugosité.
Si la tâche est créée avec enable_pbr: false, cette propriété sera omise.
Name
emission
Type
string
Description
URL téléchargeable de l'image de la carte d'émission.
Si la tâche est créée avec enable_pbr: false, ou ai_model est meshy-5, cette propriété sera omise.
Name
preceding_tasks
Type
integer
Description
Le nombre de tâches précédentes.
La valeur de ce champ a un sens uniquement si le statut de la tâche est PENDING.
Name
task_error
Type
object
Description
Détails de l'erreur pour les tâches échouées. Voir Erreurs pour la référence complète de l'objet task_error.
Name
consumed_credits
Type
integer
Description
Le nombre de crédits consommés par cette tâche. Présent lorsque le statut de la tâche est PENDING, IN_PROGRESS, ou SUCCEEDED. Renvoie 0 pour les tâches FAILED (les crédits sont remboursés en cas d'échec).
Example Text to 3D Task Object
{"id":"018a210d-8ba4-705c-b111-1f1776f7f578","type":"text-to-3d-preview","model_urls": {"glb":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.glb?Expires=***","fbx":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.fbx?Expires=***","usdz":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.usdz?Expires=***","obj":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.obj?Expires=***","mtl":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.mtl?Expires=***","stl":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.stl?Expires=***" },"prompt":"un masque de monstre","texture_prompt":"peau verte visqueuse avec écailles et verrues","texture_image_url":"","thumbnail_url":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview.png?Expires=***","progress":100,"started_at":1692771667037,"created_at":1692771650657,"finished_at":1692771669037,"status":"SUCCEEDED","texture_urls": [ {"base_color":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0.png?Expires=***","metallic":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_metallic.png?Expires=XXX","normal":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_normal.png?Expires=XXX","roughness":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_roughness.png?Expires=XXX","emission":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_emission.png?Expires=XXX" } ],"preceding_tasks":0,"task_error": {"message":"" },"consumed_credits":20}