Verwandeln Sie ein Ausgangsfoto in zwei Stufen in einen 3D-druckbaren Lampenschirm:
Prototype erzeugt zunächst ein stilisiertes, mattweißes Konzeptbild und wandelt
es in ein hohles 3D-Modell (GLB) um, anschließend führt Build den Lampen-Prozessor
auf diesem Modell aus, um die druckbaren STL-Teile zu erzeugen — einen Lampenschirm
mit offenem Boden und einer Basisplatte für die Leuchtmittelfassung, zuzüglich der
Fassungshalterung selbst. Die beiden Stufen sind über input_task_id verknüpft.
Generiert ein einzelnes mattweißes Konzeptbild aus einem Referenzfoto und
konvertiert es in ein hohles 3D-Lampenschirm-Modell. Die Antwort enthält sowohl das
Konzeptbild (image_urls) als auch das 3D-Modell (model_urls.glb mit einer
thumbnail_url). Die zurückgegebene Aufgaben-ID ist das, was Sie als input_task_id
an den Build-Endpunkt übergeben. Weitere Informationen zur Form der Antwort finden Sie unter
Das Lampen-Prototyp-Aufgabenobjekt.
Parameter
Name
image_url
Type
string
Erforderlich
Description
Quellfoto, das Meshy als visuelle Referenz für den Lampenschirm verwendet. Wir unterstützen derzeit die Formate .jpg, .jpeg, .png und .webp.
Es gibt zwei Möglichkeiten, das Bild anzugeben:
Öffentlich zugängliche URL: Eine URL, die aus dem öffentlichen Internet zugänglich ist.
Data URI: Eine base64-codierte Data URI des Bildes. Beispiel einer Data URI: data:image/jpeg;base64,<your base64-encoded image data>.
Name
image_subject
Type
string
Standard character
Description
Hinweis auf die Themenkategorie, der den Stylization-prompt auswählt. Verfügbare Werte:
character (Standard) — einzelnes Charakter-/Objektmotiv (Figur, Tier, Maskottchen usw.).
Optionaler Aufgabenname für Anzeigezwecke. Maximal 100 Zeichen.
Name
remove_background
Type
boolean
Standard false
Description
Wenn auf true gesetzt, wird das Prototypbild als transparentes RGBA-PNG mit entferntem Hintergrund zurückgegeben, sodass Sie das Motiv auf einem beliebigen Hintergrund zusammensetzen können.
Rückgabewerte
Die result-Eigenschaft der Antwort enthält die Aufgaben-id der neu erstellten Lampen-Prototyp-Aufgabe. Fragen Sie den Endpunkt Eine Aufgabe abrufen ab oder abonnieren Sie den Stream, bis die Aufgabe den Status SUCCEEDED erreicht, und übergeben Sie diese ID dann als input_task_id an den Build-Endpunkt.
Fehlerfälle
Name
400 - Bad Request
Description
Die Anfrage war nicht akzeptabel. Häufige Ursachen:
Fehlender Parameter: image_url ist erforderlich.
Ungültiges Bildformat: Die angegebene image_url liegt nicht in einem unterstützten Format vor (.jpg, .jpeg, .png, .webp).
Bildabmessungen außerhalb des Bereichs: Das Bild ist zu klein, überschreitet die maximale Dateigröße oder überschreitet die maximale Pixelanzahl.
Nicht erreichbare URL: Die image_url konnte nicht herunterladen werden (404 oder timeout).
Ungültige Data URI: Die base64-Zeichenkette ist fehlerhaft.
Inhalt gekennzeichnet: Das Eingabebild wurde durch NSFW- oder Moderation für geistiges Eigentum gekennzeichnet.
Ungültiges image_subject: Nicht character / landscape.
Name
401 - Unauthorized
Description
Die Authentifizierung ist fehlgeschlagen. Bitte überprüfen Sie Ihren API-Schlüssel.
Name
402 - Payment Required
Description
Nicht genügend Credits, um diese Aufgabe durchzuführen.
Name
429 - Too Many Requests
Description
Sie haben Ihre Ratenbegrenzung überschritten.
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"}
Prototype example
Start with a source photo; the prototype returns the concept image and a hollow 3D model that the build stage processes.
Generiert die endgültigen 3D-druckbaren Teile aus einer erfolgreich abgeschlossenen Prototyp-Aufgabe.
Der Build führt den Lampen-Prozessor auf dem 3D-Modell des Prototyps aus: Er skaliert
das Modell auf diameter_mm, flacht den Boden um cut_amount_percent ab,
höhlt es auf thickness_mm aus, öffnet den Boden und fügt — wenn ein Fixture-Preset
ausgewählt wurde — eine Grundplatte mit dem Fixture-Loch sowie eine separate
Halterung für die Lichtquelle hinzu. Weitere Informationen zur Antwortstruktur finden Sie unter
Das Lampen-Build-Aufgabenobjekt.
Parameter
Name
input_task_id
Type
string
Erforderlich
Description
Die Aufgaben-ID einer Prototyp-Aufgabe, die über denselben OpenAPI-Endpunkt erstellt wurde. Der Prototyp muss mit demselben API-Schlüssel erstellt worden sein, muss den Status SUCCEEDED erreicht haben und muss ein 3D-Modell erzeugt haben.
Prototyp-Aufgaben, die über die Webapp erstellt wurden, werden nicht akzeptiert — der Build-Endpunkt akzeptiert nur Prototyp-Aufgaben, die von POST /openapi/creative-lab/lamp/v1/prototype erzeugt wurden, und lehnt jede andere Quelle mit 404 ab.
Name
name
Type
string
Description
Optionaler Aufgabenname zu Anzeigezwecken. Maximal 100 Zeichen.
options
Optionale Feinabstimmungsparameter für die Lampenschirm-Geometrie. Jedes Feld hat einen sinnvollen Standardwert — senden Sie nur diejenigen, die Sie überschreiben möchten.
Name
diameter_mm
Type
number
Standard 150
Description
Angestrebte maximale Abmessung des Lampenschirm-Begrenzungsrahmens, in Millimetern. Das Netz wird gleichmäßig skaliert, um sich einzupassen. Bereich: [50, 400].
Name
thickness_mm
Type
number
Standard 1
Description
Wandstärke des hohlen Lampenschirms, in Millimetern. Bereich: (0, 10].
Name
cut_amount_percent
Type
number
Standard 1
Description
Prozentsatz der Modellhöhe, der am Boden flach abgeschnitten wird, sodass der Lampenschirm auf dem Druckbett aufliegt und eine Öffnung für das Fixture hat. Bereich: [1, 100].
Name
light_source_preset
Type
string
Standard bambu_mh001_60mm
Description
Lichtquellen-Fixture-Preset, das bestimmt, wie der Boden konstruiert wird. Verfügbare Werte:
bambu_mh001_60mm (Standard) — offener Lampenschirmboden plus eine Grundplatte mit einem 60-mm-Fixture-Loch, beide in model_urls.lamp_stl, sowie die Fixture-Halterung als model_urls.base_stl.
none — ein einzelner geschlossener Lampenschirm in model_urls.lamp_stl; model_urls.base_stl wird ausgelassen.
Name
fixture_offset_x_mm
Type
number
Standard 0
Description
X-Achsen-Versatz des Fixture-Lochs auf der Grundplatte, relativ zur Lampenschirmmitte, in Millimetern. Nur relevant, wenn light_source_preset ≠ none. Bereich: [-80, 80].
Name
fixture_offset_z_mm
Type
number
Standard 0
Description
Z-Achsen-Versatz (Tiefe) des Fixture-Lochs auf der Grundplatte, relativ zur Lampenschirmmitte, in Millimetern. Nur relevant, wenn light_source_preset ≠ none. Bereich: [-80, 80].
Name
rotate_x_deg
Type
number
Standard 0
Description
Rotation um die X-Achse, die vor der Verarbeitung auf das Modell angewendet wird, in Grad. Die drei Rotationen werden als XYZ-Euler-Winkel um den Mittelpunkt des Modells angewendet. Bereich: [-360, 360].
Name
rotate_y_deg
Type
number
Standard 0
Description
Rotation um die Y-Achse, die vor der Verarbeitung auf das importierte Netz angewendet wird, in Grad. Bereich: [-360, 360].
Name
rotate_z_deg
Type
number
Standard 0
Description
Rotation um die Z-Achse, die vor der Verarbeitung auf das importierte Netz angewendet wird, in Grad. Bereich: [-360, 360].
Name
include_result_json
Type
boolean
Standard false
Description
Wenn true und output.format gleich zip ist, wird die result.json des Lampen-Prozessors (Pipeline-Name, Warnungen und Artefaktpfade) im Bundle enthalten. Wird ignoriert, wenn output.format gleich stl ist.
output
Optionaler Auswahlparameter für das Übertragungsformat. Standardwert ist stl.
Name
format
Type
string
Standard stl
Description
Vom Build zurückgegebenes Artefakt-Bundle. Verfügbare Werte:
stl (Standard) — gibt model_urls.lamp_stl zurück (den Lampenschirm, zusammen mit der Grundplatte, wenn ein Fixture-Preset gesetzt ist), plus model_urls.base_stl, wenn light_source_preset ≠ none.
zip — verpackt jedes vom Prozessor erzeugte Artefakt (lamp.stl, optional base.stl, optional result.json) in eine einzige ZIP-Datei und gibt sie unter model_urls.bundle_zip zurück.
Rückgabewerte
Die result-Eigenschaft der Antwort enthält die Aufgaben-id der neu erstellten Lampen-Build-Aufgabe. Fragen Sie den Endpunkt Eine Aufgabe abrufen ab oder abonnieren Sie den Stream, bis die Aufgabe den Status SUCCEEDED erreicht, und laden Sie dann die Artefakte von model_urls herunter.
Fehlerfälle
Name
400 - Bad Request
Description
Die Anfrage war nicht akzeptabel. Häufige Ursachen:
Fehlender Parameter: input_task_id ist erforderlich.
Ungültige UUID: input_task_id ist keine gültige UUID.
Übergeordnete Aufgabe nicht erfolgreich: Die referenzierte Prototyp-Aufgabe hat den Status SUCCEEDED noch nicht erreicht.
Kein Modell: Die Prototyp-Aufgabe war erfolgreich, hat aber kein 3D-Modell erzeugt.
Optionen außerhalb des gültigen Bereichs: Eines der options-Felder lag außerhalb des zulässigen Bereichs oder Enum-Wertesatzes.
Name
401 - Unauthorized
Description
Die Authentifizierung ist fehlgeschlagen. Bitte überprüfen Sie Ihren API-Schlüssel.
Name
402 - Payment Required
Description
Unzureichende Credits, um diese Aufgabe auszuführen.
Name
404 - Not Found
Description
Die referenzierte Prototyp-Aufgabe existiert nicht, gehört einem anderen Benutzer oder wurde über die Webapp erstellt (nur Prototyp-Aufgaben im API-Modus können in einen Build verkettet werden).
Ruft einen Prototyp- oder Build-Task anhand einer gültigen Task-id ab. Der URL-Pfad
muss zur Stufe des Tasks passen — ein Build-Task, der über
/prototype/:id abgerufen wird, gibt 404 zurück, und umgekehrt.
Bricht eine Lampe-Aufgabe ab. Wenn die Aufgabe noch PENDING ist, werden die
zum Erstellungszeitpunkt verbrauchten Credits zurückerstattet. Aufgaben, die bereits
IN_PROGRESS sind, werden ohne Rückerstattung abgebrochen (der Worker verbraucht möglicherweise bereits Ressourcen).
Aufgaben, die bereits einen Endzustand erreicht haben (SUCCEEDED, FAILED,
CANCELED), können nicht abgebrochen werden.
Der URL-Pfad muss der Stufe der Aufgabe entsprechen — DELETE auf
/prototype/:buildId liefert 404.
Pfadparameter
Name
id
Type
path
Description
Eindeutige Kennung der abzubrechenden Lampe-Aufgabe.
Rückgabewerte
Gibt bei Erfolg 204 No Content mit leerem Body zurück.
Fehlermodi
Name
400 - Bad Request
Description
Die Aufgabe befindet sich bereits in einem Endzustand und kann nicht abgebrochen werden.
Name
404 - Not Found
Description
Die Aufgabe existiert nicht, gehört einem anderen Benutzer, oder ihre Stufe stimmt nicht mit dem URL-Pfad überein.
Streamt Echtzeit-Updates für einen Lampen-Task über Server-Sent Events (SSE).
Der URL-Pfad muss der Phase des Tasks entsprechen — wird ein Stream unter
/prototype/:buildId/stream geöffnet, wird ein einzelner event: error-Payload mit
status_code: 404 gesendet und der Stream geschlossen.
Parameter
Name
id
Type
path
Description
Eindeutige Kennung für den zu streamenden Lampen-Task.
Rückgabewerte
Gibt einen Stream von Lamp Prototype-
oder Lamp Build-Task-Objekten als
Server-Sent Events zurück. Jeder Frame enthält das vollständige Task-Objekt für die jeweilige Phase — dieselbe Struktur, die
der Get-Endpunkt zurückgibt — solange der Task also PENDING oder IN_PROGRESS ist, sind die
Ausgabefelder einfach noch nicht befüllt (null, [] oder {}) und
finished_at ist null.
// Error event example (wrong stage or task not found)event: errordata: {"status_code": 404,"message": "Task not found"}// Message event examples illustrate task progress.// Every frame is the full task object; fields not yet populated are null / empty.// The PENDING frame below is abbreviated to the fields that change.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=***" }}
Ruft eine paginierte Liste Ihrer Lampen-Aufgaben für eine einzelne Stufe ab. Der URL-
Pfad bestimmt die Stufe — /prototype liefert Prototyp-Aufgaben; /build
liefert Build-Aufgaben. Aufgaben der jeweils anderen Stufe sind in keiner der beiden
Antworten enthalten.
Pfadparameter
Name
stage
Type
path
Erforderlich
Description
Entweder prototype oder build. Die Sammlung liefert nur Aufgaben,
deren Stufe mit der URL übereinstimmt — das Abrufen von /prototype liefert
niemals Build-Aufgaben und umgekehrt.
Abfrageparameter
Name
page_num
Type
integer
Standard 1
Description
Seitennummer für die Paginierung.
Name
page_size
Type
integer
Standard 10
Description
Begrenzung der Seitengröße. Maximal erlaubt sind 100 Einträge.
Name
sort_by
Type
string
Standard -created_at
Description
Feld, nach dem sortiert werden soll. Verfügbare Werte:
+created_at: Sortierung nach Erstellungszeit in aufsteigender Reihenfolge.
-created_at: Sortierung nach Erstellungszeit in absteigender Reihenfolge.
Das Lamp Prototype Task-Objekt ist eine Arbeitseinheit, die Meshy verfolgt, um
aus einem Ausgangsfoto ein stilisiertes, mattweißes Konzeptbild zu erzeugen
und es in ein hohles 3D-Modell umzuwandeln. Die Ausgabe dieser Phase wird über
input_task_id mit der Build-Phase verkettet.
Eigenschaften
Name
id
Type
string
Description
Eindeutige Kennung für den Task. Auch wenn wir als Implementierungsdetail eine k-sortierbare UUID für Task-IDs verwenden, solltest du keine Annahmen über das Format der ID treffen.
Name
type
Type
string
Description
Typ des Tasks. Der Wert ist creative-lab-lamp-prototype.
Name
name
Type
string
Description
Der beim Erstellen des Tasks angegebene Task-Name. Leerer String, wenn kein Name angegeben wurde.
Name
status
Type
string
Description
Status des Tasks. Mögliche Werte sind PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.
Name
progress
Type
integer
Description
Fortschritt des Tasks. Wenn der Task noch nicht gestartet wurde, ist diese Eigenschaft 0. Sobald der Task erfolgreich war, wird sie 100.
Name
created_at
Type
timestamp
Description
Zeitstempel der Erstellung des Tasks, in Millisekunden.
Ein Zeitstempel steht für die Anzahl der Millisekunden, die seit dem 1. Januar 1970 UTC vergangen sind, gemäß
dem Standard RFC 3339.
Zum Beispiel wird Freitag, der 1. September 2023, 12:00:00 Uhr GMT als 1693569600000 dargestellt. Dies gilt
für alle Zeitstempel in der Meshy API.
Name
started_at
Type
timestamp
Description
Zeitstempel des Starts des Tasks, in Millisekunden. Wenn der Task noch nicht gestartet wurde, ist diese Eigenschaft 0.
Name
finished_at
Type
timestamp
Description
Zeitstempel des Abschlusses des Tasks, in Millisekunden. Wenn der Task noch nicht abgeschlossen ist, ist diese Eigenschaft 0.
Name
expires_at
Type
timestamp
Description
Zeitstempel, wann das Ergebnis des Tasks abläuft, in Millisekunden.
Name
preceding_tasks
Type
integer
Description
Die Anzahl der vorausgehenden Tasks.
Der Wert dieses Felds ist nur dann aussagekräftig, wenn der Task-Status PENDING ist.
Name
task_error
Type
object
Description
Fehlerdetails für fehlgeschlagene Tasks. Siehe Fehler für die vollständige Referenz des task_error-Objekts.
Name
consumed_credits
Type
integer
Description
Die Anzahl der von diesem Task verbrauchten Credits. Vorhanden, wenn der Task-Status PENDING, IN_PROGRESS oder SUCCEEDED ist. Gibt 0 für FAILED-Tasks zurück (Credits werden bei einem Fehlschlag zurückerstattet).
Name
model_urls
Type
object
Description
Herunterladbare URLs für das aus dem Konzeptbild generierte 3D-Modell. Vorhanden, sobald der Task erfolgreich war; davor {}.
Name
glb
Type
string
Description
Herunterladbare URL zum hohlen, mattweißen Lampenschirm-Modell im GLB-Format. Dies ist das Modell, das in der Build-Phase verarbeitet wird.
Name
thumbnail_url
Type
string
Description
Herunterladbare URL zu einer gerenderten Vorschau des 3D-Modells. Leerer String, bis der Task erfolgreich war.
Name
image_urls
Type
array of strings
Description
Herunterladbare URLs für die von diesem Prototype-Task generierten Konzeptbild-Kandidaten. Derzeit gibt die API immer genau einen Kandidaten zurück; das Feld ist ein Array, damit zukünftige Revisionen mehrere Kandidaten ohne breaking Change anzeigen können.
Das Lamp-Build-Task-Objekt ist eine Arbeitseinheit, die Meshy verfolgt, um
aus einem erfolgreichen Prototyp-Task den finalen 3D-druckbaren Lampenschirm
zu erzeugen. Der Build führt den Lamp-Prozessor auf dem 3D-Modell des
Prototyps aus, um es auszuhöhlen, den Boden zu glätten und zu öffnen, und
(bei einem Fixture-Preset) die Grundplatte sowie die Fixture-Halterung
hinzuzufügen.
Eigenschaften
Name
id
Type
string
Description
Eindeutige Kennung für den Task.
Name
type
Type
string
Description
Typ des Tasks. Der Wert ist creative-lab-lamp-build.
Name
name
Type
string
Description
Der Task-Name, der bei der Erstellung des Tasks angegeben wurde. Leerer String, wenn kein Name angegeben wurde.
Name
status
Type
string
Description
Status des Tasks. Mögliche Werte sind PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.
Name
progress
Type
integer
Description
Fortschritt des Tasks. Wenn der Task noch nicht gestartet wurde, ist dieser Wert 0. Sobald der Task erfolgreich war, wird er auf 100 gesetzt.
Name
created_at
Type
timestamp
Description
Zeitstempel der Erstellung des Tasks, in Millisekunden.
Name
started_at
Type
timestamp
Description
Zeitstempel des Starts des Tasks, in Millisekunden.
Name
finished_at
Type
timestamp
Description
Zeitstempel des Abschlusses des Tasks, in Millisekunden.
Name
expires_at
Type
timestamp
Description
Zeitstempel, wann das Ergebnis des Tasks abläuft, in Millisekunden.
Name
preceding_tasks
Type
integer
Description
Die Anzahl der vorausgehenden Tasks. Nur relevant, wenn der Status PENDING ist.
Name
task_error
Type
object
Description
Fehlerdetails für fehlgeschlagene Tasks. Siehe Fehler für die vollständige Referenz des task_error-Objekts.
Name
consumed_credits
Type
integer
Description
Die Anzahl der von diesem Task verbrauchten Credits. Gibt 0 für FAILED-Tasks zurück (Credits werden bei einem Fehlschlag zurückerstattet).
Name
model_urls
Type
object
Description
Herunterladbare URLs für die generierten Artefakte, nach Artefaktname geordnet. Die Menge der Schlüssel hängt von output.format und options.light_source_preset ab:
Name
lamp_stl
Type
string
Description
Herunterladbare URL zu lamp.stl: dem Lampenschirm mit offenem Boden zusammen mit der Grundplatte, die das Loch für die Fixture trägt, oder ein einzelner geschlossener Lampenschirm, wenn options.light_source_presetnone war. Vorhanden, wenn output.formatstl war (der Standardwert).
Name
base_stl
Type
string
Description
Herunterladbare URL zu base.stl, der Lichtquellen-Fixture-Halterung. Vorhanden, wenn output.formatstl war undoptions.light_source_preset nicht none war. Entfällt, wenn das Fixture-Preset none war.
Name
bundle_zip
Type
string
Description
Herunterladbare URL zu einem Zip-Bundle aller vom Prozessor erzeugten Artefakte (lamp.stl, optional base.stl, und — wenn options.include_result_jsontrue ist — result.json). Vorhanden, wenn output.formatzip war. Wenn bundle_zip vorhanden ist, entfallen lamp_stl / base_stl.