Verwandeln Sie ein Ausgangsfoto in zwei Stufen in einen 3D-druckbaren Lampenschirm:
prototype erzeugt ein stilisiertes, mattweißes Konzeptbild und wandelt es in
ein hohles 3D-Modell (GLB) um, anschließend führt build den Lampenprozessor
auf diesem Modell aus, um die druckbaren STL-Teile zu erzeugen — einen Lampenschirm
mit offenem Boden samt Bodenplatte für die Leuchtmittelfassung sowie die
Fassungshalterung selbst. Die beiden Stufen sind über input_task_id miteinander
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 Task-ID ist das, was Sie als input_task_id
an den Build-Endpunkt übergeben. Weitere Informationen zur Antwortstruktur finden Sie unter
Das Lamp-Prototyp-Task-Objekt.
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 bereitzustellen:
Öffentlich zugängliche URL: Eine URL, die aus dem öffentlichen Internet erreichbar ist.
Data URI: Eine base64-kodierte Data URI des Bildes. Beispiel für eine Data URI: data:image/jpeg;base64,<Ihre base64-kodierten Bilddaten>.
Name
image_subject
Type
string
Standard character
Description
Hinweis zur Themenkategorie, der den Stilisierungs-Prompt auswählt. Verfügbare Werte:
character (Standard) — einzelnes Charakter-/Objekt-Thema (Figur, Tier, Maskottchen usw.).
Optionaler Task-Name für Anzeigezwecke. Maximal 100 Zeichen.
Name
remove_background
Type
boolean
Standard false
Description
Wenn auf true gesetzt, wird das Prototyp-Bild als transparentes RGBA-PNG mit entferntem Hintergrund zurückgegeben, sodass Sie das Motiv auf einen beliebigen Hintergrund zusammensetzen können.
Rückgabewerte
Die Eigenschaft result der Antwort enthält die id der neu erstellten Lamp-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.
Fehlermodi
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 hat kein unterstütztes Format (.jpg, .jpeg, .png, .webp).
Bildabmessungen außerhalb des zulässigen Bereichs: Das Bild ist zu klein, überschreitet die maximale Dateigröße oder überschreitet die maximale Pixelanzahl.
Nicht erreichbare URL: Die image_url konnte nicht heruntergeladen werden (404 oder timeout).
Ungültige Data URI: Die base64-Zeichenkette ist fehlerhaft.
Inhalt markiert: Das Eingabebild wurde durch die NSFW- oder Urheberrechts-moderation markiert.
Ungültiges image_subject: Nicht character / landscape.
Name
401 - Unauthorized
Description
Authentifizierung fehlgeschlagen. Bitte überprüfen Sie Ihren API-Schlüssel.
Name
402 - Payment Required
Description
Unzureichende Credits, um diese Aufgabe auszufü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"}
Prototyp-Beispiel
Beginnen Sie mit einem Quellfoto; der Prototyp liefert das Konzeptbild und ein hohles 3D-Modell, das in der Build-Stufe weiterverarbeitet wird.
Erzeugt die finalen 3D-druckbaren Teile aus einer erfolgreich abgeschlossenen Prototyp-Aufgabe.
Der Build führt den Lampenprozessor 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 — sofern ein Fassungs-Preset
ausgewählt wurde — fügt eine Grundplatte mit dem Fassungsloch sowie eine separate
Halterung für die Lichtquelle hinzu. Weitere Informationen zum Antwortformat finden Sie unter
Das Lampen-Build-Aufgabenobjekt.
Parameter
Name
input_task_id
Type
string
Erforderlich
Description
Die Aufgaben-ID einer über denselben OpenAPI-Endpunkt erstellten Prototyp-Aufgabe. Der Prototyp muss mit demselben API-Schlüssel erstellt worden sein, muss SUCCEEDED erreicht haben und muss ein 3D-Modell erzeugt haben.
Über die Webapp erstellte Prototyp-Aufgaben 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 Geometrie des Lampenschirms. Jedes Feld hat einen sinnvollen Standardwert — senden Sie nur die Werte, die Sie überschreiben möchten.
Name
diameter_mm
Type
number
Standard 150
Description
Angestrebte maximale Abmessung des Begrenzungsrahmens des Lampenschirms, in Millimetern. Das Netz wird gleichmäßig skaliert, um hineinzupassen. 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
Prozentualer Anteil der Modellhöhe, der am Boden flach abgeschnitten wird, damit der Lampenschirm auf dem Druckbett aufliegt und eine Öffnung für die Fassung hat. Bereich: [1, 100].
Name
light_source_preset
Type
string
Standard bambu_mh001_60mm
Description
Voreinstellung für die Lichtquellenfassung, die bestimmt, wie der Boden gebaut wird. Verfügbare Werte:
bambu_mh001_60mm (Standard) — offener Lampenschirm plus eine Grundplatte mit einem 60-mm-Fassungsloch, beide in model_urls.lamp_stl, sowie die Fassungshalterung als model_urls.base_stl.
none — ein einzelner geschlossener Lampenschirm in model_urls.lamp_stl; model_urls.base_stl entfällt.
Name
fixture_offset_x_mm
Type
number
Standard 0
Description
X-Achsen-Versatz des Fassungslochs auf der Grundplatte relativ zur Mitte des Lampenschirms, 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 Fassungslochs auf der Grundplatte relativ zur Mitte des Lampenschirms, in Millimetern. Nur relevant, wenn light_source_preset ≠ none. Bereich: [-80, 80].
Name
rotate_x_deg
Type
number
Standard 0
Description
Vor der Verarbeitung auf das Modell angewendete Rotation um die X-Achse, in Grad. Die drei Rotationen werden als XYZ-Euler-Winkel um die Mitte des Modells angewendet. Bereich: [-360, 360].
Name
rotate_y_deg
Type
number
Standard 0
Description
Vor der Verarbeitung auf das importierte Netz angewendete Rotation um die Y-Achse, in Grad. Bereich: [-360, 360].
Name
rotate_z_deg
Type
number
Standard 0
Description
Vor der Verarbeitung auf das importierte Netz angewendete Rotation um die Z-Achse, 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 Lampenprozessors (Pipeline-Name, Warnungen und Pfade der Artefakte) im Bundle enthalten sein. Wird ignoriert, wenn output.format gleich stl ist.
output
Optionaler Wahlschalter für das Ausgabeformat. Standardwert: 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 Fassungs-Preset gesetzt ist), sowie model_urls.base_stl, wenn light_source_preset ≠ none.
zip — verpackt alle vom Prozessor erzeugten Artefakte (lamp.stl, optional base.stl, optional result.json) in einer einzigen ZIP-Datei und gibt sie unter model_urls.bundle_zip zurück.
Rückgabewerte
Die Eigenschaft result der Antwort enthält die Aufgaben-id der neu erstellten Lampen-Build-Aufgabe. Fragen Sie den Endpunkt Get a Task per Polling ab oder abonnieren Sie den Stream, bis die Aufgabe SUCCEEDED erreicht, und laden Sie dann die Artefakte von model_urls herunter.
Fehlermodi
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 SUCCEEDED noch nicht erreicht.
Kein Modell: Die Prototyp-Aufgabe war erfolgreich, hat aber kein 3D-Modell erzeugt.
Optionen außerhalb des zulässigen Bereichs: Eines der options-Felder lag außerhalb seines 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
Nicht genügend 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 mit einem Build verkettet werden).
Ruft eine Prototyp- oder Build-Aufgabe anhand einer gültigen Aufgaben-id ab. Der URL-Pfad
muss zur Phase der Aufgabe passen — eine Build-Aufgabe, die über
/prototype/:id abgerufen wird, liefert 404, und umgekehrt.
Eine Lampenaufgabe abbrechen. Wenn die Aufgabe noch PENDING ist, werden die bei der Erstellung verbrauchten Credits zurückerstattet. Aufgaben, die bereits IN_PROGRESS sind, werden ohne Rückerstattung abgebrochen (der Arbeiter könnte bereits Ressourcen verbrauchen). Aufgaben, die bereits einen Endstatus erreicht haben (SUCCEEDED, FAILED, CANCELED), können nicht abgebrochen werden.
Der URL-Pfad muss mit der Phase der Aufgabe übereinstimmen — DELETE auf
/prototype/:buildId gibt 404 zurück.
Pfadparameter
Name
id
Type
path
Description
Eindeutiger Bezeichner für die zu stornierende Lampenaufgabe.
Rückgaben
Gibt 204 No Content bei Erfolg mit leerem Inhalt zurück.
Fehlermodi
Name
400 - Bad Request
Description
Die Aufgabe befindet sich bereits in einem Endstatus und kann nicht abgebrochen werden.
Name
404 - Not Found
Description
Die Aufgabe existiert nicht, gehört einem anderen Benutzer oder ihre Phase 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 einzelnes event: error-Payload mit
status_code: 404 gesendet und der Stream anschließend geschlossen.
Parameter
Name
id
Type
path
Description
Eindeutige Kennung des zu streamenden Lampen-Tasks.
Rückgabe
Gibt einen Stream von Lamp Prototype-
oder Lamp Build-Task-Objekten als
Server-Sent Events zurück. Bei Tasks mit dem Status PENDING oder IN_PROGRESS
enthält der Antwort-Stream nur die notwendigen Felder progress und status.
// 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=***" }}
Ruft eine paginierte Liste Ihrer Lampen-Aufgaben für eine einzelne Stufe ab. Der URL-
Pfad wählt die Stufe aus — /prototype liefert Prototyp-Aufgaben zurück; /build
liefert Build-Aufgaben zurück. 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
zurück, deren Stufe mit der URL übereinstimmt — das Abrufen von /prototype liefert niemals
Build-Aufgaben zurück und umgekehrt.
Abfrageparameter
Name
page_num
Type
integer
Standard 1
Description
Seitennummer für die Paginierung.
Name
page_size
Type
integer
Standard 10
Description
Maximale Seitengröße. Erlaubt sind maximal 50 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, matt-weißes Konzeptbild zu erzeugen
und es in ein hohles 3D-Modell umzuwandeln. Die Ausgabe dieser Stufe wird über
input_task_id mit der Build-Stufe verkettet.
Eigenschaften
Name
id
Type
string
Description
Eindeutiger Bezeichner für den Task. Obwohl 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 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 diese Eigenschaft 0. Sobald der Task erfolgreich abgeschlossen wurde, wird sie zu 100.
Name
created_at
Type
timestamp
Description
Zeitstempel der Erstellung des Tasks, in Millisekunden.
Ein Zeitstempel repräsentiert die Anzahl der Millisekunden, die seit dem 1. Januar 1970 UTC vergangen sind, gemäß
dem RFC 3339-Standard.
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 wurde, ist diese Eigenschaft 0.
Name
expires_at
Type
timestamp
Description
Zeitstempel, zu dem das Task-Ergebnis abläuft, in Millisekunden.
Name
preceding_tasks
Type
integer
Description
Die Anzahl der vorangehenden Tasks.
Der Wert dieses Felds ist nur dann sinnvoll, 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 erstattet).
Name
model_urls
Type
object
Description
Herunterladbare URLs für das aus dem Konzeptbild generierte 3D-Modell. Vorhanden, sobald der Task erfolgreich abgeschlossen wurde; davor {}.
Name
glb
Type
string
Description
Herunterladbare URL zum hohlen, matt-weißen Lampenschirm-Modell im GLB-Format. Dies ist das Modell, das die Build-Stufe verarbeitet.
Name
thumbnail_url
Type
string
Description
Herunterladbare URL zu einer gerenderten Vorschau des 3D-Modells. Leerer String, bis der Task erfolgreich abgeschlossen wurde.
Name
image_urls
Type
array of strings
Description
Herunterladbare URLs für die von diesem Prototyp-Task generierten Konzeptbild-Kandidaten. Derzeit gibt die API immer genau einen Kandidaten zurück; das Feld ist ein Array, damit zukünftige Überarbeitungen mehrere Kandidaten ohne Breaking Change bereitstellen können.
Das Lamp-Build-Task-Objekt ist eine Arbeitseinheit, die Meshy verwaltet, um
aus einem erfolgreich abgeschlossenen 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 abzuflachen und zu öffnen und
(mit einem Fixture-Preset) die Bodenplatte sowie die Fassungshalterung 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 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 dieser Wert 0. Sobald der Task erfolgreich abgeschlossen wurde, wird dieser Wert 100.
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 geschlüsselt. 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: der Lampenschirm mit offenem Boden zusammen mit der Bodenplatte, die die Öffnung für die Fassung trägt, oder ein einzelner geschlossener Lampenschirm, wenn options.light_source_preset auf none gesetzt war. Vorhanden, wenn output.formatstl war (die Standardeinstellung).
Name
base_stl
Type
string
Description
Herunterladbare URL zu base.stl, der Halterung für die Lichtquellenfassung. 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 mit allen vom Prozessor erzeugten Artefakten (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.