Verwandle einen Text-Prompt oder ein Quellfoto in einen 3D-druckbaren Lampenschirm in zwei
Phasen: prototype erzeugt ein stilisiertes mattweißes Konzeptbild, dann
verwandelt build dieses Konzeptbild in einen hohlen STL-Lampenschirm (optional
kombiniert mit einer Basisscheibe für eine Lichtquellen-Halterung). Die beiden Phasen sind
über input_task_id verknüpft.
Generiert ein einzelnes mattweißes Konzeptbild für den Lampenschirm — entweder
aus einem Text-Prompt (Text-zu-3D) oder aus einem Referenzfoto (Bild-zu-3D).
Die zurückgegebene Aufgaben-ID übergibst du als input_task_id an den Build-
endpoint. Siehe
Das Lampen-Prototyp-Aufgabenobjekt
für die Struktur der Antwort.
Parameter
Genau eines von text oder image_url ist erforderlich. Wenn beide oder keines übergeben werden, wird 400 zurückgegeben.
Name
text
Type
string
Erforderlich
Description
Text-Prompt, der das gewünschte Motiv des Lampenschirms beschreibt. Erforderlich, wenn image_url ausgelassen wird. Maximal 800 Zeichen.
Name
image_url
Type
string
Erforderlich
Description
Quellfoto, das Meshy als visuelle Referenz für den Lampenschirm verwendet. Erforderlich, wenn text ausgelassen wird. 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 über das öffentliche Internet zugänglich ist.
Data-URI: Eine base64-codierte Data-URI des Bildes. Beispiel für eine Data-URI: data:image/jpeg;base64,<your base64-encoded image data>.
Name
image_subject
Type
string
Standard character
Description
Hinweis auf die Motivkategorie für den Bild-zu-3D-Pfad. Verfügbare Werte:
character (Standard) — einzelnes Charakter-/Objektmotiv (Figur, Tier, Maskottchen usw.).
Optionaler Aufgabenname zu Anzeigezwecken. Maximal 100 Zeichen.
Rückgabe
Die Eigenschaft result der Antwort enthält die Aufgaben-id der neu erstellten Lampen-Prototyp-Aufgabe. Frage den Get a Task-endpoint ab oder abonniere den Stream, bis die Aufgabe SUCCEEDED erreicht, und übergib diese ID dann als input_task_id an den Build-endpoint.
Fehlermodi
Name
400 - Bad Request
Description
Die Anfrage war nicht akzeptabel. Häufige Ursachen:
Fehlender Parameter: Genau eines von text oder image_url ist erforderlich.
Beide bereitgestellt: Die Übergabe sowohl von text als auch von image_url wird abgelehnt — sie schließen sich gegenseitig aus.
Ungültiges Bildformat: Das bereitgestellte 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: Das image_url konnte nicht heruntergeladen werden (404 oder Zeitüberschreitung).
Ungültige Data-URI: Der base64-String ist fehlerhaft.
Inhalt markiert: Das Eingabebild wurde durch NSFW- oder Moderation zu geistigem Eigentum markiert.
Text zu lang: text überschreitet 800 Zeichen.
Ungültiges image_subject: Nicht einer von character / landscape.
Name
401 - Unauthorized
Description
Authentifizierung fehlgeschlagen. Bitte überprüfe deinen API key.
Name
402 - Payment Required
Description
Nicht genügend Credits, um diese Aufgabe auszuführen.
Name
429 - Too Many Requests
Description
Du hast dein Ratenlimit überschritten.
Request
POST
/openapi/creative-lab/lamp/v1/prototype
# Stage 1 (image-to-3D): generate a matte-white lampshade concept imagecurl https://api.meshy.ai/openapi/creative-lab/lamp/v1/prototype \ -X POST \ -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" }'# Stage 1 (text-to-3D): generate from a text promptcurl https://api.meshy.ai/openapi/creative-lab/lamp/v1/prototype \ -X POST \ -H "Authorization: Bearer ${YOUR_API_KEY}" \ -H 'Content-Type: application/json' \ -d '{ "text": "a stylized owl perched on a tree branch under moonlight" }'
Response
{"result":"018a210d-8ba4-705c-b111-1f1776f7f578"}
Prototype example
Start with a source photo, then generate the prototype image used by the lamp build stage.
Generiert den finalen 3D-druckbaren Lampenschirm aus einer erfolgreichen
Prototyp-Aufgabe. Der Build führt eine Image-to-3D-Pipeline auf dem Konzeptbild
des Prototyps aus und verarbeitet das Mesh anschließend mit dem Lampenprozessor,
um es auszuhöhlen, die Oberseite abzuflachen, optional eine Basis zuzuschneiden
und (wenn eine Vorrichtungs-Voreinstellung ausgewählt ist) eine separate
Basisscheibe für die Lichtquelle auszugeben. Siehe
Das Lamp-Build-Task-Objekt für die
Antwortstruktur.
Parameter
Name
input_task_id
Type
string
Erforderlich
Description
Die Task-ID einer Prototyp-Aufgabe, die über denselben OpenAPI endpoint erstellt wurde. Der Prototyp muss mit derselben API key erstellt worden sein, SUCCEEDED erreicht haben und genau ein Kandidatenbild erzeugt haben.
Prototyp-Aufgaben, die über die Webapp erstellt wurden, werden nicht akzeptiert — der Build-endpoint 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 für Anzeigezwecke. Maximal 100 Zeichen.
options
Optionale Abstimmungsparameter für die Lampenschirmgeometrie. Jedes Feld hat einen sinnvollen Standardwert — senden Sie nur die Werte, die Sie überschreiben möchten.
Name
diameter_mm
Type
number
Standard 80
Description
Ziel-Maximalabmessung der Begrenzungsbox des Lampenschirms in Millimetern. Das Mesh wird einheitlich skaliert, damit es passt. Bereich: [50, 400].
Name
thickness_mm
Type
number
Standard 1.5
Description
Wandstärke des hohlen Lampenschirms in Millimetern. Bereich: (0, 10].
Name
cut_amount_percent
Type
number
Standard 35
Description
Prozentsatz der Lampenschirmhöhe, der oben abgeflacht wird, damit der Druck auf dem Druckbett aufliegen kann. Bereich: [1, 100].
Name
light_source_preset
Type
string
Standard bambu_mh001_60mm
Description
Voreinstellung für die Lichtquellen-Vorrichtung, die bestimmt, ob (und welche) Basisscheibe zusammen mit dem Lampenschirm ausgegeben wird. Verfügbare Werte:
bambu_mh001_60mm (Standard) — gibt eine 60-mm-Basisscheibe aus, die für eine kompatible Lichtquellen-Vorrichtung dimensioniert ist. Das Ergebnis enthält model_urls.base_stl.
none — keine Vorrichtung, keine Basisscheibe. model_urls.base_stl wird ausgelassen.
Name
fixture_offset_x_mm
Type
number
Standard 0
Description
Horizontaler Versatz auf der X-Achse des Vorrichtungs-Ausschnitts 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
Vertikaler Versatz auf der Z-Achse des Vorrichtungs-Ausschnitts relativ zur Unterseite des Lampenschirms, in Millimetern. Bereich: [-80, 80].
Name
rotate_x_deg
Type
number
Standard 0
Description
Rotation um die X-Achse, die vor der Verarbeitung auf das importierte Mesh angewendet wird, in Grad. Bereich: [-360, 360].
Name
rotate_y_deg
Type
number
Standard 0
Description
Rotation um die Y-Achse, die vor der Verarbeitung auf das importierte Mesh 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 Mesh angewendet wird, in Grad. Bereich: [-360, 360].
Name
include_result_json
Type
boolean
Standard false
Description
Wenn true und output.formatzip ist, wird die result.json des Lampenprozessors (enthält gemessene Mesh-Metriken + den aufgelösten Optionssatz) in das Bundle aufgenommen. Wird ignoriert, wenn output.formatstl ist.
output
Optionale Wire-Format-Auswahl. Standard ist stl.
Name
format
Type
string
Standard stl
Description
Vom Build zurückgegebenes Artefakt-Bundle. Verfügbare Werte:
stl (Standard) — gibt den Lampenschirm als model_urls.lamp_stl zurück, plus model_urls.base_stl, wenn light_source_preset ≠ none.
zip — packt jedes vom Prozessor ausgegebene Artefakt (lamp.stl, optional base.stl, optional result.json) in eine einzelne ZIP-Datei und gibt sie unter model_urls.bundle_zip zurück.
Rückgabe
Die Eigenschaft result der Antwort enthält die Task-id der neu erstellten Lamp-Build-Aufgabe. Fragen Sie den endpoint Get a Task ab oder abonnieren Sie den Stream, bis die Aufgabe SUCCEEDED erreicht, und laden Sie dann die Artefakte aus 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: Die input_task_id ist keine gültige UUID.
Übergeordnete Aufgabe nicht erfolgreich: Die referenzierte Prototyp-Aufgabe hat SUCCEEDED noch nicht erreicht.
Kein Kandidat: Die Prototyp-Aufgabe war erfolgreich, hat aber kein Kandidatenbild erzeugt.
Optionen außerhalb des Bereichs: Eines der options-Felder lag außerhalb seines zulässigen Bereichs oder Enum-Satzes.
Name
401 - Unauthorized
Description
Authentifizierung fehlgeschlagen. Bitte überprüfen Sie Ihre API key.
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 zu einem anderen Benutzer oder wurde über die Webapp erstellt (nur Prototyp-Aufgaben im API-Modus können in einen Build übergehen).
Ruft einen Prototyp- oder Build-Task anhand einer gültigen Task-id ab. Der URL-Pfad
muss mit der Phase des Tasks übereinstimmen — ein Build-Task, der über
/prototype/:id abgerufen wird, gibt 404 zurück, und umgekehrt.
Bricht eine Lamp-Aufgabe ab. Wenn die Aufgabe noch PENDING ist, werden die
beim Erstellen 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 terminalen Status
erreicht haben (SUCCEEDED, FAILED, CANCELED), können nicht abgebrochen werden.
Der URL-Pfad muss der Stufe der Aufgabe entsprechen — DELETE auf
/prototype/:buildId gibt 404 zurück.
Pfadparameter
Name
id
Type
path
Description
Eindeutige Kennung der abzubrechenden Lamp-Aufgabe.
Rückgabe
Gibt bei Erfolg 204 No Content mit einem leeren Body zurück.
Fehlermodi
Name
400 - Bad Request
Description
Die Aufgabe befindet sich bereits in einem terminalen Status und kann nicht abgebrochen werden.
Name
404 - Not Found
Description
Die Aufgabe existiert nicht, gehört zu einem anderen Benutzer oder ihre Stufe stimmt nicht mit dem URL-Pfad überein.
Streamen Sie Echtzeit-Updates für eine Lampenaufgabe über Server-Sent Events (SSE).
Der URL-Pfad muss der Phase der Aufgabe entsprechen — das Öffnen eines Streams unter
/prototype/:buildId/stream gibt eine einzelne event: error-Payload mit
status_code: 404 aus und schließt den Stream.
Parameter
Name
id
Type
path
Description
Eindeutige Kennung der zu streamenden Lampenaufgabe.
Rückgabe
Gibt einen Stream von Aufgabenobjekten für Lampenprototyp
oder Lampen-Build als
Server-Sent Events zurück. Bei Aufgaben mit PENDING oder IN_PROGRESS enthält der
Antwortstream nur die erforderlichen 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": 30,"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=***" }}
Rufen Sie eine paginierte Liste Ihrer Lamp-Aufgaben für eine einzelne Phase ab. Der URL-
Pfad wählt die Phase aus — /prototype gibt Prototyp-Aufgaben zurück; /build
gibt Build-Aufgaben zurück. Aufgaben aus der anderen Phase sind in keiner der beiden
Antworten enthalten.
Pfadparameter
Name
stage
Type
path
Erforderlich
Description
Entweder prototype oder build. Die Sammlung gibt nur Aufgaben zurück,
deren Phase mit der URL übereinstimmt — das Abrufen von /prototype gibt 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
Begrenzung der Seitengröße. Das maximal Zulässige sind 50 Elemente.
Name
sort_by
Type
string
Standard -created_at
Description
Feld, nach dem sortiert werden soll. Verfügbare Werte:
+created_at: Nach Erstellungszeit in aufsteigender Reihenfolge sortieren.
-created_at: Nach Erstellungszeit in absteigender Reihenfolge sortieren.
Das Lampenprototyp-Aufgabenobjekt ist eine Arbeitseinheit, die Meshy nachverfolgt, um
ein stilisiertes mattweißes Konzeptbild entweder aus einem Text-Prompt
oder einem Quellfoto zu generieren. Die Ausgabe dieser Phase wird über
die Bauphase mittels input_task_id verkettet.
Eigenschaften
Name
id
Type
string
Description
Eindeutiger Bezeichner für die Aufgabe. Obwohl wir als Implementierungsdetail eine k-sortierbare UUID für Aufgaben-IDs verwenden, sollten Sie keine Annahmen über das Format der ID treffen.
Name
type
Type
string
Description
Typ der Aufgabe. Der Wert ist creative-lab-lamp-prototype.
Name
name
Type
string
Description
Der Aufgabenname, der beim Erstellen der Aufgabe angegeben wurde. Leerer String, wenn kein Name angegeben wurde.
Name
status
Type
string
Description
Status der Aufgabe. Mögliche Werte sind einer von PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.
Name
progress
Type
integer
Description
Fortschritt der Aufgabe. Wenn die Aufgabe noch nicht gestartet wurde, ist diese Eigenschaft 0. Sobald die Aufgabe erfolgreich abgeschlossen wurde, wird dieser Wert zu 100.
Name
created_at
Type
timestamp
Description
Zeitstempel, wann die Aufgabe erstellt wurde, in Millisekunden.
Ein Zeitstempel stellt die Anzahl der seit dem 1. Januar 1970 UTC verstrichenen Millisekunden dar, gemäß
dem RFC 3339-Standard.
Zum Beispiel wird Freitag, 1. September 2023, 12:00:00 PM GMT als 1693569600000 dargestellt. Dies gilt
für alle Zeitstempel in der Meshy API.
Name
started_at
Type
timestamp
Description
Zeitstempel, wann die Aufgabe gestartet wurde, in Millisekunden. Wenn die Aufgabe noch nicht gestartet wurde, ist diese Eigenschaft 0.
Name
finished_at
Type
timestamp
Description
Zeitstempel, wann die Aufgabe abgeschlossen wurde, in Millisekunden. Wenn die Aufgabe noch nicht abgeschlossen wurde, ist diese Eigenschaft 0.
Name
expires_at
Type
timestamp
Description
Zeitstempel, wann das Aufgabenergebnis abläuft, in Millisekunden.
Name
preceding_tasks
Type
integer
Description
Die Anzahl der vorausgehenden Aufgaben.
Der Wert dieses Felds ist nur aussagekräftig, wenn der Aufgabenstatus PENDING ist.
Name
task_error
Type
object
Description
Fehlerdetails für fehlgeschlagene Aufgaben. Siehe Fehler für die vollständige task_error-Objektreferenz.
Name
consumed_credits
Type
integer
Description
Die Anzahl der von dieser Aufgabe verbrauchten Credits. Vorhanden, wenn der Aufgabenstatus PENDING, IN_PROGRESS oder SUCCEEDED ist. Gibt 0 für FAILED-Aufgaben zurück (Credits werden bei Fehlschlag erstattet).
Name
image_urls
Type
array of strings
Description
Herunterladbare URLs für die Konzeptbild-Kandidaten, die von dieser Prototyp-Aufgabe generiert wurden. Derzeit gibt die API immer genau einen Kandidaten zurück; das Feld ist ein Array, damit zukünftige Revisionen mehrere Kandidaten ohne Breaking Change bereitstellen können.
Das Lampen-Build-Task-Objekt ist eine Arbeitseinheit, die Meshy verfolgt, um
aus einem erfolgreichen Prototyp-Task den endgültigen 3D-druckbaren Lampenschirm
zu generieren. Der Build führt eine Bild-zu-3D-Entwurf- + Textur-Pipeline auf dem
Konzeptbild des Prototyps aus und verarbeitet anschließend das Mesh über den
Lampenprozessor nach, um es auszuhöhlen, abzuflachen und (optional) eine
Befestigungsbasis auszuschneiden.
Eigenschaften
Name
id
Type
string
Description
Eindeutige Kennung für die Aufgabe.
Name
type
Type
string
Description
Typ der Aufgabe. Der Wert ist creative-lab-lamp-build.
Name
name
Type
string
Description
Der beim Erstellen der Aufgabe angegebene Aufgabenname. Leere Zeichenfolge, wenn kein Name angegeben wurde.
Name
status
Type
string
Description
Status der Aufgabe. Mögliche Werte sind einer von PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.
Name
progress
Type
integer
Description
Fortschritt der Aufgabe. Wenn die Aufgabe noch nicht gestartet wurde, ist diese Eigenschaft 0. Sobald die Aufgabe erfolgreich abgeschlossen wurde, wird sie zu 100.
Name
created_at
Type
timestamp
Description
Zeitstempel, wann die Aufgabe erstellt wurde, in Millisekunden.
Name
started_at
Type
timestamp
Description
Zeitstempel, wann die Aufgabe gestartet wurde, in Millisekunden.
Name
finished_at
Type
timestamp
Description
Zeitstempel, wann die Aufgabe abgeschlossen wurde, in Millisekunden.
Name
expires_at
Type
timestamp
Description
Zeitstempel, wann das Aufgabenergebnis abläuft, in Millisekunden.
Name
preceding_tasks
Type
integer
Description
Die Anzahl der vorangehenden Aufgaben. Nur aussagekräftig, wenn der Status PENDING ist.
Name
task_error
Type
object
Description
Fehlerdetails für fehlgeschlagene Aufgaben. Siehe Fehler für die vollständige task_error-Objektreferenz.
Name
consumed_credits
Type
integer
Description
Die Anzahl der von dieser Aufgabe verbrauchten Credits. Gibt 0 für FAILED-Aufgaben zurück (Credits werden bei Fehlschlag erstattet).
Name
model_urls
Type
object
Description
Herunterladbare URLs für die generierten Artefakte, nach Artefaktname indiziert. Der Satz von Schlüsseln hängt von output.format und options.light_source_preset ab:
Name
lamp_stl
Type
string
Description
Herunterladbare URL zum Lampenschirm lamp.stl. Vorhanden, wenn output.formatstl war (Standard).
Name
base_stl
Type
string
Description
Herunterladbare URL zur Halterungsbasis base.stl. Vorhanden, wenn output.formatstl war undoptions.light_source_preset nicht none war. Ausgelassen, wenn die Halterungsvoreinstellung none war.
Name
bundle_zip
Type
string
Description
Herunterladbare URL zu einem Zip-Bundle jedes vom Prozessor ausgegebenen Artefakts (lamp.stl, optional base.stl und — wenn options.include_result_jsontrue ist — result.json). Vorhanden, wenn output.formatzip war. Wenn bundle_zip vorhanden ist, werden lamp_stl / base_stl ausgelassen.