Trasforma una foto sorgente in un paralume stampabile in 3D in due fasi:
prototype genera un'immagine concettuale stilizzata bianco opaco e la trasforma in
un modello 3D cavo (GLB), poi build esegue il processore per lampade su quel modello
per produrre le parti STL stampabili — un paralume aperto sul fondo con una piastra di base
per il dispositivo della sorgente luminosa, oltre al supporto del dispositivo stesso. Le due fasi sono
collegate tramite input_task_id.
Genera una singola immagine concettuale in bianco opaco a partire da una foto di riferimento e la
converte in un modello 3D cavo di un paralume. La risposta contiene sia l'immagine
concettuale (image_urls) sia il modello 3D (model_urls.glb con una
thumbnail_url). L'ID del task restituito è quello che passi come input_task_id
all'endpoint di build. Fai riferimento a
The Lamp Prototype Task Object
per la struttura della risposta.
Parametri
Name
image_url
Type
string
Obbligatorio
Description
Foto sorgente che Meshy utilizza come riferimento visivo per il paralume. Attualmente supportiamo i formati .jpg, .jpeg, .png e .webp.
Ci sono due modi per fornire l'immagine:
URL accessibile pubblicamente: Un URL accessibile da internet pubblicamente.
Data URI: Un data URI dell'immagine codificato in base64. Esempio di Data URI: data:image/jpeg;base64,<i tuoi dati immagine codificati in base64>.
Name
image_subject
Type
string
predefinito character
Description
Suggerimento sulla categoria del soggetto che seleziona il prompt di stylization. Valori disponibili:
character (predefinito) — soggetto singolo personaggio/oggetto (statuina, animale, mascotte, ecc.).
Nome del task opzionale per scopi di visualizzazione. Massimo 100 caratteri.
Name
remove_background
Type
boolean
predefinito false
Description
Quando impostato su true, l'immagine del prototipo viene restituita come PNG RGBA trasparente con lo sfondo rimosso, in modo da poter comporre il soggetto su qualsiasi sfondo.
Restituisce
La proprietà result della risposta contiene l'id del task del nuovo prototipo di lampada appena creato. Effettua il polling dell'endpoint Get a Task oppure sottoscriviti allo stream finché il task non raggiunge lo stato SUCCEEDED, poi passa quell'ID all'endpoint di build come input_task_id.
Modalità di errore
Name
400 - Bad Request
Description
La richiesta non era accettabile. Cause comuni:
Parametro mancante: image_url è obbligatorio.
Formato immagine non valido: L'image_url fornito non è in un formato supportato (.jpg, .jpeg, .png, .webp).
Dimensioni immagine fuori intervallo: L'immagine è troppo piccola, supera la dimensione massima del file o supera il numero massimo di pixel.
URL non raggiungibile: L'image_url non è stato possibile scaricarlo (404 o timeout).
Data URI non valido: La stringa base64 è malformata.
Contenuto segnalato: L'immagine di input è stata segnalata dalla moderation NSFW o per proprietà intellettuale.
image_subject non valido: Non è uno tra character / landscape.
Name
401 - Unauthorized
Description
Autenticazione fallita. Controlla la tua chiave API.
Name
402 - Payment Required
Description
Crediti insufficienti per eseguire questo task.
Name
429 - Too Many Requests
Description
Hai superato il tuo limite di frequenza.
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"}
Esempio di prototipo
Parti da una foto sorgente; il prototipo restituisce l'immagine concettuale e un modello 3D cavo che viene elaborato dalla fase di build.
Genera le parti finali stampabili in 3D a partire da un'attività di prototipo completata con successo.
Il build esegue il processore lamp sul modello 3D del prototipo: scala
il modello a diameter_mm, appiattisce il fondo di cut_amount_percent,
lo svuota fino a thickness_mm, apre il fondo e — quando è selezionato un
preset di supporto — aggiunge una piastra di base con il foro per il supporto e un
montaggio separato per la sorgente luminosa. Fai riferimento a
The Lamp Build Task Object per la
forma della risposta.
Parametri
Name
input_task_id
Type
string
Obbligatorio
Description
L'ID dell'attività di un'attività di prototipo creata tramite questo stesso endpoint OpenAPI. Il prototipo deve essere stato creato con la stessa chiave API, deve aver raggiunto SUCCEEDED e deve aver prodotto un modello 3D.
Le attività di prototipo create tramite la webapp non sono accettate — l'endpoint di build accetta solo attività di prototipo prodotte da POST /openapi/creative-lab/lamp/v1/prototype e rifiuta qualsiasi altra origine con 404.
Name
name
Type
string
Description
Nome dell'attività opzionale a scopo di visualizzazione. Massimo 100 caratteri.
options
Parametri di regolazione opzionali per la geometria del paralume. Ogni campo ha un valore predefinito sensato — invia solo quelli che vuoi sovrascrivere.
Name
diameter_mm
Type
number
predefinito 150
Description
Dimensione massima target del bounding box del paralume, in millimetri. La mesh viene ridimensionata uniformemente per adattarsi. Intervallo: [50, 400].
Name
thickness_mm
Type
number
predefinito 1
Description
Spessore parete del paralume cavo, in millimetri. Intervallo: (0, 10].
Name
cut_amount_percent
Type
number
predefinito 1
Description
Percentuale dell'altezza del modello tagliata in piano sul fondo, in modo che il paralume poggi sul piano di stampa e abbia un'apertura per il supporto. Intervallo: [1, 100].
Name
light_source_preset
Type
string
predefinito bambu_mh001_60mm
Description
Preset del supporto della sorgente luminosa che determina come viene costruito il fondo. Valori disponibili:
bambu_mh001_60mm (predefinito) — paralume con fondo aperto più una piastra di base con un foro per supporto da 60 mm, entrambi in model_urls.lamp_stl, e il montaggio del supporto come model_urls.base_stl.
none — un unico paralume sigillato in model_urls.lamp_stl; model_urls.base_stl viene omesso.
Name
fixture_offset_x_mm
Type
number
predefinito 0
Description
Offset sull'asse X del foro del supporto sulla piastra di base, rispetto al centro del paralume, in millimetri. Significativo solo quando light_source_preset ≠ none. Intervallo: [-80, 80].
Name
fixture_offset_z_mm
Type
number
predefinito 0
Description
Offset sull'asse Z (profondità) del foro del supporto sulla piastra di base, rispetto al centro del paralume, in millimetri. Significativo solo quando light_source_preset ≠ none. Intervallo: [-80, 80].
Name
rotate_x_deg
Type
number
predefinito 0
Description
Rotazione attorno all'asse X applicata al modello prima dell'elaborazione, in gradi. Le tre rotazioni sono applicate come angoli di Eulero XYZ attorno al centro del modello. Intervallo: [-360, 360].
Name
rotate_y_deg
Type
number
predefinito 0
Description
Rotazione attorno all'asse Y applicata alla mesh importata prima dell'elaborazione, in gradi. Intervallo: [-360, 360].
Name
rotate_z_deg
Type
number
predefinito 0
Description
Rotazione attorno all'asse Z applicata alla mesh importata prima dell'elaborazione, in gradi. Intervallo: [-360, 360].
Name
include_result_json
Type
boolean
predefinito false
Description
Quando è true e output.format è zip, include il result.json del processore lamp (nome della pipeline, avvisi e percorsi degli artefatti) all'interno del pacchetto. Ignorato quando output.format è stl.
output
Selettore opzionale del formato di trasmissione. Il valore predefinito è stl.
Name
format
Type
string
predefinito stl
Description
Pacchetto di artefatti restituito dal build. Valori disponibili:
stl (predefinito) — restituisce model_urls.lamp_stl (il paralume, insieme alla piastra di base quando è impostato un preset di supporto), più model_urls.base_stl quando light_source_preset ≠ none.
zip — raggruppa ogni artefatto emesso dal processore (lamp.stl, base.stl opzionale, result.json opzionale) in un unico zip e lo restituisce sotto model_urls.bundle_zip.
Restituisce
La proprietà result della risposta contiene l'id dell'attività della nuova attività di build lamp appena creata. Effettua il polling dell'endpoint Get a Task o sottoscrivi lo stream finché l'attività non raggiunge SUCCEEDED, quindi scarica gli artefatti da model_urls.
Modalità di errore
Name
400 - Bad Request
Description
La richiesta non era accettabile. Cause comuni:
Parametro mancante: input_task_id è obbligatorio.
UUID non valido: input_task_id non è un UUID valido.
Parent non completato: L'attività di prototipo referenziata non ha ancora raggiunto SUCCEEDED.
Nessun modello: L'attività di prototipo è stata completata con successo ma non ha prodotto alcun modello 3D.
Opzioni fuori intervallo: Uno dei campi di options era al di fuori dell'intervallo consentito o dell'insieme di valori enum.
Name
401 - Unauthorized
Description
Autenticazione fallita. Controlla la tua chiave API.
Name
402 - Payment Required
Description
Crediti insufficienti per eseguire questa attività.
Name
404 - Not Found
Description
L'attività di prototipo referenziata non esiste, appartiene a un utente diverso, oppure è stata creata tramite la webapp (solo le attività di prototipo in modalità API si concatenano al build).
Recupera un task di prototipo o di build dato un id di task valido. Il percorso URL
deve corrispondere alla fase del task — un task di build recuperato tramite
/prototype/:id restituisce 404, e viceversa.
Annulla un'attività lampada. Se l'attività è ancora PENDING, i crediti consumati
al momento della creazione vengono rimborsati. Le attività già IN_PROGRESS vengono
annullate senza rimborso (il worker potrebbe già essere impegnato a consumare risorse).
Le attività che hanno già raggiunto uno stato terminale (SUCCEEDED, FAILED,
CANCELED) non possono essere annullate.
Il percorso URL deve corrispondere alla fase dell'attività — DELETE su
/prototype/:buildId restituisce 404.
Parametri del percorso
Name
id
Type
path
Description
Identificatore univoco dell'attività lampada da annullare.
Restituisce
Restituisce 204 No Content in caso di successo con un corpo vuoto.
Modalità di errore
Name
400 - Bad Request
Description
L'attività si trova già in uno stato terminale e non può essere annullata.
Name
404 - Not Found
Description
L'attività non esiste, appartiene a un utente diverso, oppure la sua fase non corrisponde al percorso URL.
Esegue lo streaming degli aggiornamenti in tempo reale per un'attività lampada tramite Server-Sent Events (SSE).
Il percorso URL deve corrispondere alla fase dell'attività: aprire uno stream su
/prototype/:buildId/stream emette un singolo payload event: error con
status_code: 404 e chiude lo stream.
Parametri
Name
id
Type
path
Description
Identificatore univoco dell'attività lampada di cui eseguire lo streaming.
Valori restituiti
Restituisce uno stream di oggetti attività Lamp Prototype
o Lamp Build sotto forma di
Server-Sent Events. Ogni frame contiene l'oggetto attività completo per la fase corrente — la stessa struttura restituita dall'
endpoint Get — quindi finché l'attività è PENDING o IN_PROGRESS i
campi di output semplicemente non sono ancora valorizzati (null, [] o {}) e
finished_at è 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=***" }}
Recupera un elenco paginato delle tue attività lamp per una singola fase. Il percorso URL
seleziona la fase — /prototype restituisce le attività di prototipo; /build
restituisce le attività di build. Le attività dell'altra fase non sono incluse in nessuna delle
due risposte.
Parametri del percorso
Name
stage
Type
path
Obbligatorio
Description
prototype o build. La raccolta restituisce solo le attività
la cui fase corrisponde all'URL — richiedere /prototype non restituisce mai
attività di build e viceversa.
Parametri di query
Name
page_num
Type
integer
predefinito 1
Description
Numero di pagina per la paginazione.
Name
page_size
Type
integer
predefinito 10
Description
Limite di dimensione della pagina. Il massimo consentito è 100 elementi.
Name
sort_by
Type
string
predefinito -created_at
Description
Campo per l'ordinamento. Valori disponibili:
+created_at: Ordina per data di creazione in ordine crescente.
-created_at: Ordina per data di creazione in ordine decrescente.
L'oggetto Lamp Prototype Task è un'unità di lavoro tracciata da Meshy per
generare un'immagine concettuale stilizzata bianco opaco a partire da una foto sorgente e
convertirla in un modello 3D cavo. L'output di questa fase viene concatenato a
la fase di build tramite input_task_id.
Proprietà
Name
id
Type
string
Description
Identificatore univoco del task. Sebbene per gli id dei task utilizziamo un UUID ordinabile per k come dettaglio implementativo, non dovresti fare alcuna assunzione sul formato dell'id.
Name
type
Type
string
Description
Tipo del task. Il valore è creative-lab-lamp-prototype.
Name
name
Type
string
Description
Il nome del task fornito al momento della creazione. Stringa vuota se non è stato fornito alcun nome.
Name
status
Type
string
Description
Stato del task. I valori possibili sono uno tra PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.
Name
progress
Type
integer
Description
Avanzamento del task. Se il task non è ancora iniziato, questa proprietà sarà 0. Una volta che il task è riuscito, diventerà 100.
Name
created_at
Type
timestamp
Description
Timestamp di quando il task è stato creato, in millisecondi.
Un timestamp rappresenta il numero di millisecondi trascorsi dal 1° gennaio 1970 UTC, seguendo
lo standard RFC 3339.
Ad esempio, venerdì 1 settembre 2023 alle 12:00:00 GMT è rappresentato come 1693569600000. Questo si applica
a tutti i timestamp nell'API Meshy.
Name
started_at
Type
timestamp
Description
Timestamp di quando il task è stato avviato, in millisecondi. Se il task non è ancora iniziato, questa proprietà sarà 0.
Name
finished_at
Type
timestamp
Description
Timestamp di quando il task è stato completato, in millisecondi. Se il task non è ancora terminato, questa proprietà sarà 0.
Name
expires_at
Type
timestamp
Description
Timestamp di quando il risultato del task scade, in millisecondi.
Name
preceding_tasks
Type
integer
Description
Il conteggio dei task precedenti.
Il valore di questo campo è significativo solo se lo stato del task è PENDING.
Name
task_error
Type
object
Description
Dettagli dell'errore per i task falliti. Consulta Errori per il riferimento completo dell'oggetto task_error.
Name
consumed_credits
Type
integer
Description
Il numero di crediti consumati da questo task. Presente quando lo stato del task è PENDING, IN_PROGRESS o SUCCEEDED. Restituisce 0 per i task FAILED (i crediti vengono rimborsati in caso di fallimento).
Name
model_urls
Type
object
Description
URL scaricabili per il modello 3D generato dall'immagine concettuale. Presente una volta che il task è riuscito; {} prima di ciò.
Name
glb
Type
string
Description
URL scaricabile del modello di paralume cavo bianco opaco in formato GLB. Questo è il modello elaborato dalla fase di build.
Name
thumbnail_url
Type
string
Description
URL scaricabile di un'anteprima renderizzata del modello 3D. Stringa vuota finché il task non è riuscito.
Name
image_urls
Type
array of strings
Description
URL scaricabili per i candidati dell'immagine concettuale generati da questo task di prototipazione. Attualmente l'API restituisce sempre esattamente un candidato; il campo è un array in modo che revisioni future possano esporre più candidati senza introdurre una modifica non retrocompatibile.
L'oggetto Lamp Build Task è un'unità di lavoro che Meshy tiene traccia per
generare il paralume finale stampabile in 3D a partire da un task prototipo riuscito.
Il build esegue il processore per lampade sul modello 3D del prototipo per svuotarlo,
appiattire e aprire il fondo e (con un preset di fissaggio) aggiungere la piastra
di base e il supporto di fissaggio.
Proprietà
Name
id
Type
string
Description
Identificatore univoco del task.
Name
type
Type
string
Description
Tipo del task. Il valore è creative-lab-lamp-build.
Name
name
Type
string
Description
Il nome del task fornito al momento della creazione del task. Stringa vuota se non è stato fornito alcun nome.
Name
status
Type
string
Description
Stato del task. I valori possibili sono uno tra PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.
Name
progress
Type
integer
Description
Progresso del task. Se il task non è ancora iniziato, questa proprietà sarà 0. Una volta che il task è riuscito, diventerà 100.
Name
created_at
Type
timestamp
Description
Timestamp di quando il task è stato creato, in millisecondi.
Name
started_at
Type
timestamp
Description
Timestamp di quando il task è stato avviato, in millisecondi.
Name
finished_at
Type
timestamp
Description
Timestamp di quando il task è stato completato, in millisecondi.
Name
expires_at
Type
timestamp
Description
Timestamp di quando il risultato del task scade, in millisecondi.
Name
preceding_tasks
Type
integer
Description
Il numero di task precedenti. Significativo solo quando lo stato è PENDING.
Name
task_error
Type
object
Description
Dettagli dell'errore per i task non riusciti. Consulta Errori per il riferimento completo dell'oggetto task_error.
Name
consumed_credits
Type
integer
Description
Il numero di crediti consumati da questo task. Restituisce 0 per i task FAILED (i crediti vengono rimborsati in caso di fallimento).
Name
model_urls
Type
object
Description
URL scaricabili per gli artefatti generati, indicizzati per nome dell'artefatto. L'insieme delle chiavi dipende da output.format e options.light_source_preset:
Name
lamp_stl
Type
string
Description
URL scaricabile per lamp.stl: il paralume con fondo aperto insieme alla piastra di base che porta il foro di fissaggio, oppure un unico paralume sigillato quando options.light_source_preset era none. Presente quando output.format era stl (il valore predefinito).
Name
base_stl
Type
string
Description
URL scaricabile per base.stl, il supporto di fissaggio della sorgente luminosa. Presente quando output.format era stleoptions.light_source_preset non era none. Omesso quando il preset di fissaggio era none.
Name
bundle_zip
Type
string
Description
URL scaricabile per un bundle zip contenente tutti gli artefatti prodotti dal processore (lamp.stl, base.stl opzionale e — quando options.include_result_json è true — result.json). Presente quando output.format era zip. Quando bundle_zip è presente, lamp_stl / base_stl sono omessi.