Verwandle einen Text-prompt oder ein Ausgangsfoto in einen 3D-druckbaren Lampenschirm in zwei
Phasen: Prototyp erzeugt ein stilisiertes, mattweißes Konzeptbild, dann
verwandelt Bau dieses Konzeptbild in einen hohlen STL-Lampenschirm (optional
kombiniert mit einer Basisplatte für eine Lichtquellenbefestigung). Die beiden Phasen sind über input_task_id verbunden.
Erzeugen Sie ein einzelnes matt-weiß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 ist das, was Sie als input_task_id an den Build-Endpunkt übergeben. Siehe
Das Lampenprototyp-Aufgabenobjekt
für die Antwortstruktur.
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 Lampenschirmmotiv beschreibt. Erforderlich, wenn image_url weggelassen 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 weggelassen 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 aus dem öffentlichen Internet zugänglich ist.
Data URI: Eine base64-kodierte 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 Motivkategorie für den Bild-zu-3D-Pfad. Verfügbare Werte:
character (Standard) — Einzelcharakter- / Objektmotiv (Figur, Tier, Maskottchen, etc.).
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 jeden Hintergrund setzen können.
Rückgaben
Die result-Eigenschaft der Antwort enthält die Aufgaben-id der neu erstellten Lampenprototyp-Aufgabe. Abfragen Sie den Get a Task Endpunkt oder abonnieren Sie den stream, bis die Aufgabe SUCCEEDED erreicht, und übergeben Sie dann diese ID an den Build-Endpunkt als input_task_id.
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 angegeben: Die Angabe von sowohl text als auch image_url wird abgelehnt — sie schließen sich gegenseitig aus.
Ungültiges Bildformat: Das bereitgestellte image_url ist kein unterstütztes Format (.jpg, .jpeg, .png, .webp).
Bildabmessungen außerhalb des Bereichs: Das Bild ist zu klein, überschreitet die maximale Dateigröße oder die maximale Pixelanzahl.
Nicht erreichbare URL: Die image_url konnte nicht heruntergeladen werden (404 oder timeout).
Ungültige Data URI: Der base64-String ist fehlerhaft.
Inhalt markiert: Das Eingabebild wurde von NSFW oder Moderation des geistigen Eigentums markiert.
Text zu lang: text überschreitet 800 Zeichen.
Ungültiges image_subject: Nicht eines von 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.
Anfrage
POST
/openapi/creative-lab/lamp/v1/prototype
# Stage 1 (image-to-3D): generate a matte-white lampshade concept imagecurlhttps://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" }'# Stage 1 (text-to-3D): generate from a text promptcurlhttps://api.meshy.ai/openapi/creative-lab/lamp/v1/prototype \-XPOST \-H"Authorization: Bearer ${YOUR_API_KEY}" \-H'Content-Type: application/json' \-d'{ "text": "a stylized owl perched on a tree branch under moonlight" }'
Antwort
{"result":"018a210d-8ba4-705c-b111-1f1776f7f578"}
Prototyp-Beispiel
Beginnen Sie mit einem Quellfoto und erzeugen Sie dann das Prototypbild, das in der Lampenbauphase verwendet wird.
Erzeugen Sie den endgültigen 3D-druckbaren Lampenschirm aus einer erfolgreichen Prototypaufgabe. Der Build führt eine Bild-zu-3D-Pipeline auf dem Konzeptbild des Prototyps aus und verarbeitet dann das Netz durch den Lampenprozessor, um es auszuhöhlen, die Oberseite abzuflachen, optional eine Basis zu schneiden und (wenn ein Befestigungsvoreinstellung gewählt wird) eine separate Basisplatte für die Lichtquelle auszugeben. Weitere Informationen zur Antwortstruktur finden Sie unter Das Lampenbauaufgabenobjekt.
Parameter
Name
input_task_id
Type
string
Erforderlich
Description
Die Aufgaben-ID einer Prototypaufgabe, die über diesen OpenAPI-Endpunkt erstellt wurde. Der Prototyp muss mit dem gleichen API-Schlüssel erstellt worden sein, muss SUCCEEDED erreicht haben und muss genau ein Kandidatenbild produziert haben.
Prototypaufgaben, die über die Webanwendung erstellt wurden, werden nicht akzeptiert — der Build-Endpunkt akzeptiert nur Prototypaufgaben, die durch POST /openapi/creative-lab/lamp/v1/prototype produziert 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, die Sie überschreiben möchten.
Name
diameter_mm
Type
number
Standard 80
Description
Zielmaximaldimension des Lampenschirm-Begrenzungsrahmens in Millimetern. Das Netz wird gleichmäßig skaliert, um zu passen. 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, die oben abgeflacht wird, damit der Druck auf dem Bett stehen kann. Bereich: [1, 100].
Name
light_source_preset
Type
string
Standard bambu_mh001_60mm
Description
Voreinstellung der Lichtquellenbefestigung, die bestimmt, ob (und welche) Basisplatte neben dem Lampenschirm ausgegeben wird. Verfügbare Werte:
bambu_mh001_60mm (Standard) — gibt eine 60 mm Basisplatte aus, die für eine kompatible Lichtquellenbefestigung dimensioniert ist. Das Ergebnis enthält model_urls.base_stl.
none — keine Befestigung, keine Basisplatte. model_urls.base_stl wird weggelassen.
Name
fixture_offset_x_mm
Type
number
Standard 0
Description
Horizontaler X-Achsen-Versatz der Befestigungsaussparung relativ zur Lampenschirmmitte in Millimetern. Nur sinnvoll, wenn light_source_preset ≠ none. Bereich: [-80, 80].
Name
fixture_offset_z_mm
Type
number
Standard 0
Description
Vertikaler Z-Achsen-Versatz der Befestigungsaussparung relativ zum Lampenschirmboden in Millimetern. Bereich: [-80, 80].
Name
rotate_x_deg
Type
number
Standard 0
Description
Drehung um die X-Achse, die auf das importierte Netz vor der Verarbeitung angewendet wird, in Grad. Bereich: [-360, 360].
Name
rotate_y_deg
Type
number
Standard 0
Description
Drehung um die Y-Achse, die auf das importierte Netz vor der Verarbeitung angewendet wird, in Grad. Bereich: [-360, 360].
Name
rotate_z_deg
Type
number
Standard 0
Description
Drehung um die Z-Achse, die auf das importierte Netz vor der Verarbeitung angewendet wird, in Grad. Bereich: [-360, 360].
Name
include_result_json
Type
boolean
Standard false
Description
Wenn true und output.formatzip ist, wird das result.json des Lampenprozessors (das gemessene Netzmetriken + das aufgelöste Optionsset enthält) in das Paket aufgenommen. Wird ignoriert, wenn output.formatstl ist.
Artefaktpaket, das vom Build zurückgegeben wird. 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 — verpackt jedes vom Prozessor ausgegebene Artefakt (lamp.stl, optional base.stl, optional result.json) in eine einzige Zip-Datei und gibt es unter model_urls.bundle_zip zurück.
Rückgaben
Die result-Eigenschaft der Antwort enthält die Aufgaben-id der neu erstellten Lampenbauaufgabe. Abfragen Sie den Get a Task Endpunkt oder abonnieren Sie den stream, bis die Aufgabe SUCCEEDED erreicht, und laden Sie dann die Artefakte von model_urls herunter.
Fehlerarten
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.
Elternteil nicht erfolgreich: Die referenzierte Prototypaufgabe hat SUCCEEDED noch nicht erreicht.
Kein Kandidat: Die Prototypaufgabe war erfolgreich, hat aber kein Kandidatenbild produziert.
Optionen außerhalb des Bereichs: Eines der options-Felder fiel außerhalb des erlaubten Bereichs oder der Enum-Menge.
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
404 - Not Found
Description
Die referenzierte Prototypaufgabe existiert nicht, gehört einem anderen Benutzer oder wurde über die Webanwendung erstellt (nur API-Modus-Prototypaufgaben werden in den Build übernommen).
Abrufen einer Prototyp- oder Bauaufgabe mit einer gültigen Aufgaben-id. Der URL-Pfad
muss der Phase der Aufgabe entsprechen — eine Bauaufgabe, die über
/prototype/:id abgerufen wird, gibt 404 zurück 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.
Streamen Sie Echtzeit-Updates für eine Lampe-Aufgabe über Server-Sent Events (SSE).
Der URL-Pfad muss der Phase der Aufgabe entsprechen — das Öffnen eines Streams bei
/prototype/:buildId/stream sendet ein einzelnes event: error Payload mit
status_code: 404 und schließt den Stream.
Parameter
Name
id
Type
path
Description
Eindeutiger Bezeichner für die zu streamende Lampe-Aufgabe.
Rückgaben
Gibt einen Stream von Lamp Prototype
oder Lamp Build Aufgabenobjekten als
Server-Sent Events zurück. Für PENDING oder IN_PROGRESS Aufgaben wird der Antwortstream
nur die notwendigen progress und status Felder enthalten.
// 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=***" }}
Abrufen einer paginierten Liste Ihrer Lampenaufgaben für eine einzelne Phase. Der URL-Pfad wählt die Phase aus — /prototype gibt Prototypaufgaben zurück; /build gibt Bauaufgaben zurück. Aufgaben aus der anderen Phase sind in keiner der 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 Bauaufgaben 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
Seitengrößenlimit. Maximal erlaubt sind 50 Elemente.
Name
sort_by
Type
string
Standard -created_at
Description
Feld zum Sortieren. Verfügbare Werte:
+created_at: Sortieren nach Erstellungszeit in aufsteigender Reihenfolge.
-created_at: Sortieren nach Erstellungszeit in absteigender Reihenfolge.
Das Lampen-Prototyp-Aufgabenobjekt ist eine Arbeitseinheit, die Meshy verfolgt, um ein stilisiertes, mattweißes Konzeptbild entweder aus einem Text-prompt oder einem Quellfoto zu generieren. Das Ergebnis dieser Phase wird über input_task_id in die Bauphase eingebunden.
Eigenschaften
Name
id
Type
string
Description
Eindeutiger Bezeichner für die Aufgabe. Obwohl wir eine k-sortierbare UUID für Aufgaben-IDs als Implementierungsdetail verwenden, sollten Sie keine Annahmen über das Format der ID machen.
Name
type
Type
string
Description
Typ der Aufgabe. Der Wert ist creative-lab-lamp-prototype.
Name
name
Type
string
Description
Der bei der Erstellung der Aufgabe angegebene Aufgabenname. 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 begonnen hat, wird diese Eigenschaft 0 sein. Sobald die Aufgabe erfolgreich abgeschlossen ist, wird dies 100 sein.
Name
created_at
Type
timestamp
Description
Zeitstempel, wann die Aufgabe erstellt wurde, 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, wann die Aufgabe gestartet wurde, in Millisekunden. Wenn die Aufgabe noch nicht begonnen hat, wird diese Eigenschaft 0 sein.
Name
finished_at
Type
timestamp
Description
Zeitstempel, wann die Aufgabe abgeschlossen wurde, in Millisekunden. Wenn die Aufgabe noch nicht abgeschlossen ist, wird diese Eigenschaft 0 sein.
Name
expires_at
Type
timestamp
Description
Zeitstempel, wann das Ergebnis der Aufgabe abläuft, in Millisekunden.
Name
preceding_tasks
Type
integer
Description
Die Anzahl der vorhergehenden Aufgaben.
Der Wert dieses Feldes ist nur dann 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 Credits, die von dieser Aufgabe verbraucht wurden. Vorhanden, wenn der Aufgabenstatus PENDING, IN_PROGRESS oder SUCCEEDED ist. Gibt 0 für FAILED Aufgaben zurück (Credits werden bei einem Fehler zurückerstattet).
Name
image_urls
Type
array of strings
Description
Herunterladbare URLs für die von dieser Prototyp-Aufgabe 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 eine Breaking-Änderung anzeigen können.
Das Lampen-Bauaufgaben-Objekt ist eine Arbeitseinheit, die Meshy verfolgt, um den endgültigen 3D-druckbaren Lampenschirm aus einer erfolgreichen Prototyp-Aufgabe zu generieren. Der Build führt eine Bild-zu-3D-Entwurf + Textur-Pipeline auf dem Konzeptbild des Prototyps aus und verarbeitet dann das Netz durch den Lampenprozessor, um es auszuhöhlen, zu glätten und (optional) eine Befestigungsbasis zu schneiden.
Eigenschaften
Name
id
Type
string
Description
Eindeutiger Bezeichner 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 bei der Erstellung der Aufgabe angegebene Aufgabenname. 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 ist, wird dies 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 vorhergehenden Aufgaben. Bedeutend nur, wenn der Status PENDING ist.
Name
task_error
Type
object
Description
Fehlerdetails für fehlgeschlagene Aufgaben. Siehe Fehler für die vollständige Referenz des task_error Objekts.
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 einem Fehler zurückerstattet).
Name
model_urls
Type
object
Description
Herunterladbare URLs für die generierten Artefakte, nach Artefaktnamen 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 zum Lampenschirm lamp.stl. Vorhanden, wenn output.formatstl war (der Standard).
Name
base_stl
Type
string
Description
Herunterladbare URL zur Befestigungsbasis base.stl. Vorhanden, wenn output.formatstlundoptions.light_source_preset nicht none war. Weggelassen, wenn das Befestigungspreset none war.
Name
bundle_zip
Type
string
Description
Herunterladbare URL zu einem Zip-Bundle aller vom Prozessor ausgegebenen 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, werden lamp_stl / base_stl weggelassen.