Verwandle ein Quellfoto in ein 3D-druckbares Schlüsselanhänger-Medaillon — ein abzeichenförmiges
koloriertes Tiefenrelief — in zwei Stufen: prototype erzeugt ein koloriertes
Konzeptbild aus deinem Eingabefoto, anschließend verwandelt build dieses Konzeptbild
in ein Relief-3D-Modell. Die beiden Stufen sind über input_task_id verknüpft.
Generieren Sie ein einzelnes koloriertes Konzeptbild aus dem Quellfoto. Die
zurückgegebene Aufgaben-ID übergeben Sie als input_task_id an den Build-
endpoint. Weitere Informationen zur Antwortstruktur finden Sie unter
Das Keychain Prototype Task Object.
Parameter
Name
image_url
Type
string
Erforderlich
Description
Quellfoto, das Meshy in ein für einen Schlüsselanhänger geeignetes Konzeptbild kolorieren soll. 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 erreichbar 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
name
Type
string
Description
Optionaler Aufgabenname zu Anzeigezwecken. Maximal 100 Zeichen.
Rückgabe
Die Eigenschaft result der Antwort enthält die Aufgaben-id der neu erstellten Schlüsselanhänger-Prototyp-Aufgabe. Fragen Sie den Get a Task-endpoint ab oder abonnieren Sie den stream, bis die Aufgabe SUCCEEDED erreicht, und übergeben Sie diese ID dann als input_task_id an den Build-endpoint.
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 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-Zeichenfolge ist fehlerhaft.
Inhalt markiert: Das Eingabebild wurde von der NSFW- oder Moderation für geistiges Eigentum markiert.
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
429 - Too Many Requests
Description
Sie haben Ihr Ratenlimit überschritten.
Request
POST
/openapi/creative-lab/keychain/v1/prototype
# Stage 1: generate a colorized keychain concept imagecurl https://api.meshy.ai/openapi/creative-lab/keychain/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>" }'
Response
{"result":"018a210d-8ba4-705c-b111-1f1776f7f578"}
Prototype example
Start with a source photo, then generate the prototype image used by the keychain build stage.
Generieren Sie das finale 3D-druckbare Schlüsselanhänger-Medaillon aus einer erfolgreich abgeschlossenen
Prototyp-Aufgabe. Der Build führt eine Relief-Pipeline auf Basis einer Tiefenkarte auf dem
kolorisierten Konzeptbild des Prototyps aus und liefert ein einzelnes Mesh-Artefakt in
dem von Ihnen angeforderten Format. Weitere Informationen finden Sie unter
The Keychain Build Task Object zur
Antwortstruktur.
Parameter
Name
input_task_id
Type
string
Erforderlich
Description
Die Aufgaben-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 durch POST /openapi/creative-lab/keychain/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 Tuning-Parameter für die Relief-Geometrie. Jedes Feld hat einen sinnvollen Standardwert — senden Sie nur diejenigen, die Sie überschreiben möchten.
Name
badge_shape
Type
string
Standard circle
Description
Umriss-Silhouette des Schlüsselanhänger-Medaillons. Verfügbare Werte:
circle (Standard)
rounded-rect
hexagon
shield
star
Name
size_mm
Type
number
Standard 40
Description
Kantenlänge des Begrenzungsquadrats des Schlüsselanhängers in Millimetern. Bereich: (0, 400].
Name
relief_height_mm
Type
number
Standard 2.2
Description
Maximale Reliefhöhe über der Basis in Millimetern. Bereich: [0, 20].
Name
relief_offset_mm
Type
number
Standard 0
Description
Vertikaler Versatz, der vor der Extrusion auf das Relief angewendet wird, in Millimetern. Bereich: [0, 20].
Name
base_thickness_mm
Type
number
Standard 0.1
Description
Dicke der flachen Grundplatte hinter dem Relief in Millimetern. Bereich: [0, 20].
Name
has_closed_back
Type
boolean
Standard true
Description
Ob die Rückseite des Medaillons als geschlossene Oberfläche versiegelt ist. Setzen Sie dies für eine offene Schale auf false.
Name
relief_curve
Type
string
Standard linear
Description
Übertragungskurve, die Tiefenkartenwerte auf die Reliefhöhe abbildet. Verfügbare Werte:
linear (Standard)
gamma
s-curve
Name
curve_param
Type
number
Standard 1.0
Description
Formparameter für die Übertragungskurve (nur relevant, wenn relief_curvegamma ist). Bereich: (0, 10].
Name
invert_depth
Type
boolean
Standard false
Description
Kehrt die Interpretation der Tiefenkarte um, sodass dunklere Bereiche zu höherem Relief werden.
Name
smoothing
Type
number
Standard 0.24
Description
Glättungsstärke, die vor der Relief-Extraktion auf die Tiefenkarte angewendet wird. Bereich: [0, 10].
Name
relief_scale
Type
number
Standard 1.0
Description
Vertikaler Skalierungsmultiplikator, der zusätzlich zu relief_height_mm angewendet wird. Bereich: (0, 10].
Name
depth_threshold
Type
number
Standard 0.1
Description
Tiefpass-Schwellenwert für Tiefenkartenwerte; alles darunter wird auf null geklemmt. Bereich: [0, 1].
Name
remove_background
Type
boolean
Standard true
Description
Entfernt automatisch den Hintergrund des Konzeptbilds des Prototyps vor der Relief-Erzeugung.
Name
export_resolution
Type
integer
Standard 512
Description
Mesh-Auflösung, die für den Export verwendet wird. Bereich: [64, 2048].
Vom Build zurückgegebenes Artefakt-Bundle. Verfügbare Werte:
glb (Standard) — gibt ein einzelnes model.glb unter model_urls.glb zurück.
obj — packt model.obj + model.mtl + texture.png in eine ZIP-Datei und gibt das Bundle unter model_urls.obj zurück.
zip — packt jedes vom Generator ausgegebene Artefakt in eine ZIP-Datei und gibt das Bundle unter model_urls.bundle_zip zurück.
Rückgabe
Die Eigenschaft result der Antwort enthält die Aufgaben-id der neu erstellten Keychain-Build-Aufgabe. Fragen Sie den Get a Task-endpoint ab oder abonnieren Sie den stream, bis die Aufgabe SUCCEEDED erreicht, und laden Sie dann das Artefakt aus dem einzelnen Eintrag in 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-Sets.
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 den Build übergehen).
Ruft eine Prototyp- oder Build-Aufgabe anhand einer gültigen Aufgaben-id ab. Der URL-Pfad
muss der Phase der Aufgabe entsprechen — eine Build-Aufgabe, die über
/prototype/:id abgerufen wird, gibt 404 zurück, und umgekehrt.
Bricht eine Keychain-Aufgabe ab. Wenn die Aufgabe noch PENDING ist, werden die beim
Erstellen verbrauchten Credits erstattet. Aufgaben, die bereits
IN_PROGRESS sind, werden ohne Erstattung abgebrochen (der Worker verbraucht
möglicherweise bereits Ressourcen). Aufgaben, die bereits einen Endzustand
(SUCCEEDED, FAILED, CANCELED) erreicht haben, 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
Eindeutige Kennung der abzubrechenden Keychain-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 Endzustand und kann nicht abgebrochen werden.
Name
404 - Not Found
Description
Die Aufgabe existiert nicht, gehört zu einem anderen Benutzer oder ihre Phase stimmt nicht mit dem URL-Pfad überein.
Streame Echtzeit-Updates für eine Schlüsselanhänger-Aufgabe ü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 Schlüsselanhänger-Aufgabe.
Rückgabe
Gibt einen Stream von Aufgabenobjekten vom Typ Schlüsselanhänger-Prototyp
oder Schlüsselanhänger-Build als
Server-Sent Events zurück. Für 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-keychain-build","status": "SUCCEEDED","progress": 100,"created_at": 1729123500000,"started_at": 1729123510000,"finished_at": 1729123535000,"expires_at": 1729382735000,"task_error": null,"consumed_credits": 20,"model_urls": {"glb":"https://assets.meshy.ai/***/tasks/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/output/model.glb?Expires=***" }}
Ruft eine paginierte Liste deiner Schlüsselanhänger-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 jeweils 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
Seitengrößenlimit. Das maximal erlaubte Limit beträgt 50 Elemente.
Name
sort_by
Type
string
Standard -created_at
Description
Feld, nach dem sortiert werden soll. Verfügbare Werte:
+created_at: Nach Erstellungszeit aufsteigend sortieren.
-created_at: Nach Erstellungszeit absteigend sortieren.
Das Schlüsselanhänger-Prototyp-Aufgabenobjekt ist eine Arbeitseinheit, die Meshy verfolgt, um
aus einem Quellfoto ein koloriertes Konzeptbild zu erzeugen. Die Ausgabe
dieser Phase wird über input_task_id mit der Build-Phase
verkettet.
Eigenschaften
Name
id
Type
string
Description
Eindeutige Kennung 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 treffen.
Name
type
Type
string
Description
Typ der Aufgabe. Der Wert ist creative-lab-keychain-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 100.
Name
created_at
Type
timestamp
Description
Zeitstempel des Zeitpunkts, zu dem die Aufgabe erstellt wurde, in Millisekunden.
Ein Zeitstempel stellt die Anzahl der Millisekunden dar, die seit dem 1. Januar 1970 UTC gemäß
dem RFC 3339-Standard vergangen sind.
Beispielsweise wird Freitag, 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 Zeitpunkts, zu dem die Aufgabe gestartet wurde, in Millisekunden. Wenn die Aufgabe noch nicht gestartet wurde, ist diese Eigenschaft 0.
Name
finished_at
Type
timestamp
Description
Zeitstempel des Zeitpunkts, zu dem die Aufgabe abgeschlossen wurde, in Millisekunden. Wenn die Aufgabe noch nicht abgeschlossen wurde, ist diese Eigenschaft 0.
Name
expires_at
Type
timestamp
Description
Zeitstempel des Zeitpunkts, zu dem das Aufgabenergebnis abläuft, in Millisekunden.
Name
preceding_tasks
Type
integer
Description
Die Anzahl der vorangehenden Aufgaben.
Der Wert dieses Feldes 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 von dieser Prototyp-Aufgabe generierten Konzeptbildkandidaten. Derzeit gibt die API immer genau einen Kandidaten zurück; das Feld ist ein Array, damit zukünftige Versionen mehrere Kandidaten ohne Breaking Change bereitstellen können.
Das Schlüsselanhänger-Build-Task-Objekt ist eine Arbeitseinheit, die Meshy nachverfolgt, um
aus einem erfolgreichen Prototyp-Task das endgültige 3D-Schlüsselanhänger-Mesh zu
generieren. Der Build führt eine Depth-Map-Relief-Pipeline auf dem Konzeptbild des Prototyps aus und
veröffentlicht ein einzelnes Mesh-Artefakt in dem vom Aufrufer angeforderten Format.
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-keychain-build.
Name
name
Type
string
Description
Der Aufgabenname, der beim Erstellen der Aufgabe angegeben wurde. Leere Zeichenkette, 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.
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 vorausgehenden 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 das generierte Artefakt, nach Artefaktname indiziert. Enthält immer genau einen Eintrag — das Format, das über die output.format der Build-Anfrage angefordert wurde. Der Schlüssel entspricht dem angeforderten Format:
Name
glb
Type
string
Description
Herunterladbare URL zur GLB-Datei. Vorhanden, wenn output.formatglb war (der Standard).
Name
obj
Type
string
Description
Herunterladbare URL zu einem ZIP-Bundle, das model.obj, model.mtl und texture.png enthält. Vorhanden, wenn output.formatobj war.
Name
bundle_zip
Type
string
Description
Herunterladbare URL zu einem ZIP-Bundle aller Artefakte, die der Generator ausgibt. Vorhanden, wenn output.formatzip war.