Transformez une photo source en un abat-jour imprimable en 3D en deux étapes :
prototype génère une image conceptuelle stylisée en blanc mat et la
transforme en un modèle 3D creux (GLB), puis build exécute le processeur
de lampe sur ce modèle pour produire les pièces STL imprimables — un abat-jour
à fond ouvert avec une plaque de base pour le support de la source lumineuse,
ainsi que le support lui-même. Les deux étapes sont liées via input_task_id.
Génère une seule image conceptuelle blanc mat à partir d'une photo de référence et
la convertit en un modèle d'abat-jour 3D creux. La réponse contient à la fois
l'image conceptuelle (image_urls) et le modèle 3D (model_urls.glb avec une
thumbnail_url). L'ID de tâche renvoyé est celui que vous transmettez comme input_task_id
au point de terminaison de build. Consultez
L'objet Tâche de prototype de lampe
pour connaître la forme de la réponse.
Paramètres
Name
image_url
Type
string
Requis
Description
Photo source que Meshy utilise comme référence visuelle pour l'abat-jour. Nous prenons actuellement en charge les formats .jpg, .jpeg, .png et .webp.
Il existe deux façons de fournir l'image :
URL accessible publiquement : une URL accessible depuis l'internet public.
Data URI : une donnée URI de l'image encodée en base64. Exemple de Data URI : data:image/jpeg;base64,<vos données d'image encodées en base64>.
Name
image_subject
Type
string
défaut character
Description
Indice de catégorie de sujet qui sélectionne le prompt de stylisation. Valeurs disponibles :
character (par défaut) — sujet unique de type personnage/objet (figurine, animal, mascotte, etc.).
Nom de tâche facultatif à des fins d'affichage. 100 caractères maximum.
Name
remove_background
Type
boolean
défaut false
Description
Lorsque défini sur true, l'image de prototype est renvoyée sous forme de PNG RGBA transparent avec l'arrière-plan supprimé, afin que vous puissiez composer le sujet sur n'importe quel arrière-plan.
Retours
La propriété result de la réponse contient l'id de tâche du prototype de lampe nouvellement créé. Interrogez le point de terminaison Obtenir une tâche ou abonnez-vous au flux jusqu'à ce que la tâche atteigne SUCCEEDED, puis transmettez cet ID au point de terminaison de build en tant que input_task_id.
Modes d'échec
Name
400 - Bad Request
Description
La requête était inacceptable. Causes courantes :
Paramètre manquant : image_url est requis.
Format d'image invalide : image_url fourni n'est pas dans un format pris en charge (.jpg, .jpeg, .png, .webp).
Dimensions d'image hors limites : l'image est trop petite, dépasse la taille de fichier maximale ou dépasse le nombre maximal de pixels.
URL inaccessible : image_url n'a pas pu être téléchargée (404 ou timeout).
Data URI invalide : la chaîne base64 est mal formée.
Contenu signalé : l'image d'entrée a été signalée par la modération NSFW ou de propriété intellectuelle.
image_subject invalide : n'est ni character ni landscape.
Name
401 - Unauthorized
Description
Échec de l'authentification. 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/creative-lab/lamp/v1/prototype
# Stage 1: concept image + hollow 3D lampshade model from a source photocurlhttps://api.meshy.ai/openapi/creative-lab/lamp/v1/prototype \-XPOST \-H"Authorization: Bearer ${YOUR_API_KEY}" \-H'Content-Type: application/json' \-d'{ "image_url": "<your publicly accessible image url or base64-encoded data URI>", "image_subject": "character" }'
Response
{"result":"018a210d-8ba4-705c-b111-1f1776f7f578"}
Exemple de prototype
Commencez avec une photo source ; le prototype renvoie l'image conceptuelle et un modèle 3D creux que l'étape de build traite.
Génère les pièces finales imprimables en 3D à partir d'une tâche de prototype réussie.
Le build exécute le processeur de lampe sur le modèle 3D du prototype : il met le modèle à l'échelle
de diameter_mm, aplatit le fond selon cut_amount_percent,
l'évide jusqu'à thickness_mm, ouvre le fond et — lorsqu'un préréglage
de fixation est choisi — ajoute une plaque de base avec le trou de fixation et un support
séparé pour la source lumineuse. Consultez
L'objet de tâche de build de lampe pour connaître la forme de
la réponse.
Paramètres
Name
input_task_id
Type
string
Requis
Description
L'ID de tâche d'une tâche de prototype créée via ce même point de terminaison OpenAPI. Le prototype doit avoir été créé avec la même clé API, doit avoir atteint SUCCEEDED, et doit avoir produit un modèle 3D.
Les tâches de prototype créées via l'application web ne sont pas acceptées — le point de terminaison de build n'accepte que les tâches de prototype produites par POST /openapi/creative-lab/lamp/v1/prototype et refuse toute autre source avec 404.
Name
name
Type
string
Description
Nom de tâche optionnel à des fins d'affichage. Maximum 100 caractères.
options
Paramètres d'ajustement optionnels pour la géométrie de l'abat-jour. Chaque champ a une valeur par défaut raisonnable — n'envoyez que ceux que vous souhaitez remplacer.
Name
diameter_mm
Type
number
défaut 150
Description
Dimension maximale cible de la boîte englobante de l'abat-jour, en millimètres. Le maillage est mis à l'échelle uniformément pour s'y adapter. Plage : [50, 400].
Name
thickness_mm
Type
number
défaut 1
Description
Épaisseur de paroi de l'abat-jour creux, en millimètres. Plage : (0, 10].
Name
cut_amount_percent
Type
number
défaut 1
Description
Pourcentage de la hauteur du modèle coupé à plat en bas, afin que l'abat-jour repose sur le plateau d'impression et dispose d'une ouverture pour la fixation. Plage : [1, 100].
Name
light_source_preset
Type
string
défaut bambu_mh001_60mm
Description
Préréglage de fixation de source lumineuse qui détermine comment le fond est construit. Valeurs disponibles :
bambu_mh001_60mm (par défaut) — abat-jour à fond ouvert plus une plaque de base comportant un trou de fixation de 60 mm, les deux dans model_urls.lamp_stl, et le support de fixation dans model_urls.base_stl.
none — un seul abat-jour scellé dans model_urls.lamp_stl ; model_urls.base_stl est omis.
Name
fixture_offset_x_mm
Type
number
défaut 0
Description
Décalage sur l'axe X du trou de fixation sur la plaque de base, par rapport au centre de l'abat-jour, en millimètres. N'a de sens que lorsque light_source_preset ≠ none. Plage : [-80, 80].
Name
fixture_offset_z_mm
Type
number
défaut 0
Description
Décalage sur l'axe Z (profondeur) du trou de fixation sur la plaque de base, par rapport au centre de l'abat-jour, en millimètres. N'a de sens que lorsque light_source_preset ≠ none. Plage : [-80, 80].
Name
rotate_x_deg
Type
number
défaut 0
Description
Rotation autour de l'axe X appliquée au modèle avant traitement, en degrés. Les trois rotations sont appliquées comme des angles d'Euler XYZ autour du centre du modèle. Plage : [-360, 360].
Name
rotate_y_deg
Type
number
défaut 0
Description
Rotation autour de l'axe Y appliquée au maillage importé avant traitement, en degrés. Plage : [-360, 360].
Name
rotate_z_deg
Type
number
défaut 0
Description
Rotation autour de l'axe Z appliquée au maillage importé avant traitement, en degrés. Plage : [-360, 360].
Name
include_result_json
Type
boolean
défaut false
Description
Lorsque true et que output.format vaut zip, inclut le result.json du processeur de lampe (nom du pipeline, avertissements et chemins des artefacts) dans le paquet. Ignoré lorsque output.format vaut stl.
output
Sélecteur de format de sortie optionnel. Par défaut : stl.
Name
format
Type
string
défaut stl
Description
Paquet d'artefacts renvoyé par le build. Valeurs disponibles :
stl (par défaut) — renvoie model_urls.lamp_stl (l'abat-jour, avec la plaque de base lorsqu'un préréglage de fixation est défini), plus model_urls.base_stl lorsque light_source_preset ≠ none.
zip — regroupe chaque artefact émis par le processeur (lamp.stl, base.stl optionnel, result.json optionnel) dans un seul fichier zip et le renvoie sous model_urls.bundle_zip.
Retours
La propriété result de la réponse contient l'id de tâche de la tâche de build de lampe nouvellement créée. Interrogez le point de terminaison Récupérer une tâche ou abonnez-vous au flux jusqu'à ce que la tâche atteigne SUCCEEDED, puis téléchargez les artefacts depuis model_urls.
Modes d'échec
Name
400 - Bad Request
Description
La requête était inacceptable. Causes courantes :
Paramètre manquant : input_task_id est requis.
UUID invalide : input_task_id n'est pas un UUID valide.
Parent non réussi : la tâche de prototype référencée n'a pas encore atteint SUCCEEDED.
Aucun modèle : la tâche de prototype a réussi mais n'a produit aucun modèle 3D.
Options hors limites : l'un des champs de options se situe en dehors de sa plage autorisée ou de son ensemble d'énumération.
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 de prototype référencée n'existe pas, appartient à un autre utilisateur, ou a été créée via l'application web (seules les tâches de prototype en mode API peuvent être enchaînées avec un build).
Récupère une tâche de prototype ou de build à partir d'un id de tâche valide. Le chemin de l'URL
doit correspondre à l'étape de la tâche — une tâche de build récupérée via
/prototype/:id retourne 404, et inversement.
Annuler une tâche de lampe. Si la tâche est encore PENDING, les crédits consommés
au moment de la création sont remboursés. Les tâches qui sont déjà IN_PROGRESS sont
annulées sans remboursement (le travailleur peut déjà être en train de consommer des ressources).
Les tâches qui ont déjà atteint un état terminal (SUCCEEDED, FAILED,
CANCELED) ne peuvent pas être annulées.
Le chemin URL doit correspondre à l'étape de la tâche — DELETE sur
/prototype/:buildId renvoie 404.
Paramètres de chemin
Name
id
Type
path
Description
Identifiant unique de la tâche de lampe à annuler.
Retours
Retourne 204 No Content en cas de succès avec un corps vide.
Modes d'échec
Name
400 - Bad Request
Description
La tâche est déjà dans un état terminal et ne peut pas être annulée.
Name
404 - Not Found
Description
La tâche n'existe pas, appartient à un utilisateur différent, ou son étape ne correspond pas au chemin URL.
Diffusez en temps réel les mises à jour d'une tâche de lampe via des Server-Sent Events (SSE).
Le chemin de l'URL doit correspondre à l'étape de la tâche — ouvrir un flux sur
/prototype/:buildId/stream émet une seule charge utile event: error avec
status_code: 404 puis ferme le flux.
Paramètres
Name
id
Type
path
Description
Identifiant unique de la tâche de lampe à diffuser en flux.
Retours
Retourne un flux d'objets de tâche Lamp Prototype
ou Lamp Build sous forme de
Server-Sent Events. Pour les tâches PENDING ou IN_PROGRESS, le flux de réponse
n'inclura que les champs progress et status nécessaires.
// Error event example (wrong stage or task not found)event: errordata: {"status_code": 404,"message": "Task not found"}// Message event examples illustrate task progress.// For PENDING or IN_PROGRESS tasks, the response stream will not include all fields.event: messagedata: {"id": "019c320e-9a8f-7a1c-9c11-2a1876f8a9bb","progress": 0,"status": "PENDING"}event: messagedata: {"id": "019c320e-9a8f-7a1c-9c11-2a1876f8a9bb","type": "creative-lab-lamp-build","status": "SUCCEEDED","progress": 100,"created_at": 1729123500000,"started_at": 1729123510000,"finished_at": 1729123535000,"expires_at": 1729382735000,"task_error": null,"consumed_credits": 6,"model_urls": {"lamp_stl":"https://assets.meshy.ai/***/tasks/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/output/lamp.stl?Expires=***","base_stl":"https://assets.meshy.ai/***/tasks/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/output/base.stl?Expires=***" }}
Récupère une liste paginée de vos tâches de lampe pour une seule étape. Le chemin
d'URL sélectionne l'étape — /prototype renvoie les tâches de prototype ; /build
renvoie les tâches de construction. Les tâches de l'autre étape ne sont incluses dans
aucune des deux réponses.
Paramètres de chemin
Name
stage
Type
path
Requis
Description
prototype ou build. La collection ne renvoie que les tâches
dont l'étape correspond à l'URL — récupérer /prototype ne renvoie jamais
de tâches de construction, et inversement.
Paramètres de requête
Name
page_num
Type
integer
défaut 1
Description
Numéro de page pour la pagination.
Name
page_size
Type
integer
défaut 10
Description
Limite de taille de page. Le maximum autorisé est de 50 éléments.
Name
sort_by
Type
string
défaut -created_at
Description
Champ selon lequel trier. Valeurs disponibles :
+created_at : trier par date de création par ordre croissant.
-created_at : trier par date de création par ordre décroissant.
L'objet Tâche de Prototype de lampe est une unité de travail que Meshy suit pour
générer une image conceptuelle stylisée blanc mat à partir d'une photo source et la
convertir en un modèle 3D creux. Le résultat de cette étape est enchaîné à
l'étape de construction via input_task_id.
Propriétés
Name
id
Type
string
Description
Identifiant unique de la tâche. Bien que nous utilisions un UUID triable en k comme détail d'implémentation pour les identifiants de tâche, vous ne devez pas faire d'hypothèses sur le format de l'id.
Name
type
Type
string
Description
Type de la tâche. La valeur est creative-lab-lamp-prototype.
Name
name
Type
string
Description
Le nom de la tâche fourni lors de la création de la tâche. Chaîne vide si aucun nom n'a été fourni.
Name
status
Type
string
Description
Statut de la tâche. Les valeurs possibles sont PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.
Name
progress
Type
integer
Description
Progression de la tâche. Si la tâche n'a pas encore démarré, cette propriété sera 0. Une fois la tâche réussie, elle deviendra 100.
Name
created_at
Type
timestamp
Description
Horodatage de la création de la tâche, en millisecondes.
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 à 12h00:00 GMT est représenté par 1693569600000. Cela s'applique
à tous les horodatages dans Meshy API.
Name
started_at
Type
timestamp
Description
Horodatage du démarrage de la tâche, en millisecondes. Si la tâche n'a pas encore démarré, cette propriété sera 0.
Name
finished_at
Type
timestamp
Description
Horodatage de la fin de la tâche, en millisecondes. Si la tâche n'est pas encore terminée, cette propriété sera 0.
Name
expires_at
Type
timestamp
Description
Horodatage de l'expiration du résultat de la tâche, en millisecondes.
Name
preceding_tasks
Type
integer
Description
Le nombre de tâches précédentes.
La valeur de ce champ n'a de sens que si le statut de la tâche est PENDING.
Name
task_error
Type
object
Description
Détails d'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. Retourne 0 pour les tâches FAILED (les crédits sont remboursés en cas d'échec).
Name
model_urls
Type
object
Description
URLs téléchargeables pour le modèle 3D généré à partir de l'image conceptuelle. Présent une fois que la tâche a réussi ; {} avant cela.
Name
glb
Type
string
Description
URL téléchargeable vers le modèle d'abat-jour creux blanc mat au format GLB. C'est le modèle que l'étape de construction traite.
Name
thumbnail_url
Type
string
Description
URL téléchargeable vers un aperçu rendu du modèle 3D. Chaîne vide jusqu'à ce que la tâche ait réussi.
Name
image_urls
Type
array of strings
Description
URLs téléchargeables pour les candidats d'image conceptuelle générés par cette tâche de prototype. Actuellement, l'API renvoie toujours exactement un candidat ; le champ est un tableau afin que de futures révisions puissent exposer plusieurs candidats sans rupture de compatibilité.
L'objet Lamp Build Task est une unité de travail que Meshy suit pour
générer l'abat-jour final imprimable en 3D à partir d'une tâche de prototype réussie.
Le build exécute le processeur de lampe sur le modèle 3D du prototype pour l'évider,
aplatir et ouvrir le fond, et (avec un préréglage de fixation) ajouter la plaque de base
et le support de fixation.
Propriétés
Name
id
Type
string
Description
Identifiant unique de la tâche.
Name
type
Type
string
Description
Type de la tâche. La valeur est creative-lab-lamp-build.
Name
name
Type
string
Description
Le nom de la tâche fourni lors de sa création. Chaîne vide si aucun nom n'a été fourni.
Name
status
Type
string
Description
Statut de la tâche. Les valeurs possibles sont PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.
Name
progress
Type
integer
Description
Progression de la tâche. Si la tâche n'a pas encore démarré, cette propriété sera 0. Une fois la tâche réussie, elle deviendra 100.
Name
created_at
Type
timestamp
Description
Horodatage de la création de la tâche, en millisecondes.
Name
started_at
Type
timestamp
Description
Horodatage du démarrage de la tâche, en millisecondes.
Name
finished_at
Type
timestamp
Description
Horodatage de la fin de la tâche, en millisecondes.
Name
expires_at
Type
timestamp
Description
Horodatage de l'expiration du résultat de la tâche, en millisecondes.
Name
preceding_tasks
Type
integer
Description
Le nombre de tâches précédentes. Pertinent uniquement lorsque le statut est PENDING.
Name
task_error
Type
object
Description
Détails d'erreur pour les tâches échouées. Consultez 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. Renvoie 0 pour les tâches FAILED (les crédits sont remboursés en cas d'échec).
Name
model_urls
Type
object
Description
URLs téléchargeables pour les artefacts générés, indexées par nom d'artefact. L'ensemble des clés dépend de output.format et de options.light_source_preset :
Name
lamp_stl
Type
string
Description
URL téléchargeable vers lamp.stl : l'abat-jour à fond ouvert accompagné de la plaque de base portant le trou de fixation, ou un abat-jour unique scellé lorsque options.light_source_preset était none. Présent lorsque output.format était stl (valeur par défaut).
Name
base_stl
Type
string
Description
URL téléchargeable vers base.stl, le support de fixation de la source lumineuse. Présent lorsque output.format était stlet que options.light_source_preset n'était pas none. Omis lorsque le préréglage de fixation était none.
Name
bundle_zip
Type
string
Description
URL téléchargeable vers une archive zip regroupant tous les artefacts produits par le processeur (lamp.stl, base.stl optionnel, et — lorsque options.include_result_json est true — result.json). Présent lorsque output.format était zip. Lorsque bundle_zip est présent, lamp_stl / base_stl sont omis.