Trasforma un prompt testuale o una foto sorgente in un paralume stampabile in 3D in due fasi: prototipo genera un'immagine concettuale stilizzata in bianco opaco, quindi costruzione trasforma quell'immagine concettuale in un paralume STL cavo (opzionalmente abbinato a un disco di base per un supporto di sorgente luminosa). Le due fasi sono collegate tramite input_task_id.
Genera un'immagine concettuale in bianco opaco per il paralume — sia da un prompt testuale (text-to-3D) che da una foto di riferimento (image-to-3D). L'ID del task restituito è quello che devi passare come input_task_id all'endpoint di build. Consulta
L'oggetto Task di Prototipo di Lampada
per la forma della risposta.
Parametri
Esattamente uno tra text o image_url è richiesto. Passare entrambi, o nessuno, restituisce 400.
Name
text
Type
string
Obbligatorio
Description
Prompt testuale che descrive il soggetto desiderato per il paralume. Richiesto quando image_url è omesso. Massimo 800 caratteri.
Name
image_url
Type
string
Obbligatorio
Description
Foto sorgente che Meshy utilizza come riferimento visivo per il paralume. Richiesto quando text è omesso. Attualmente supportiamo i formati .jpg, .jpeg, .png e .webp.
Ci sono due modi per fornire l'immagine:
URL pubblicamente accessibile: Un URL accessibile da internet pubblico.
Data URI: Un Data URI codificato in base64 dell'immagine. Esempio di un Data URI: data:image/jpeg;base64,<your base64-encoded image data>.
Name
image_subject
Type
string
predefinito character
Description
Indizio sulla categoria del soggetto per il percorso image-to-3D. Valori disponibili:
character (default) — soggetto singolo personaggio / oggetto (figurina, 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 task di prototipo di lampada creato. Interroga l'endpoint Ottieni un Task o iscriviti al flusso finché il task non raggiunge SUCCEEDED, quindi passa quell'ID all'endpoint di build come input_task_id.
Modalità di Fallimento
Name
400 - Bad Request
Description
La richiesta non era accettabile. Cause comuni:
Parametro mancante: Esattamente uno tra text o image_url è richiesto.
Entrambi forniti: Passare sia text che image_url è rifiutato — sono mutuamente esclusivi.
Formato immagine non valido: Il image_url fornito non è un formato supportato (.jpg, .jpeg, .png, .webp).
Dimensioni immagine fuori intervallo: L'immagine è troppo piccola, supera la dimensione massima del file o supera il conteggio massimo dei pixel.
URL irraggiungibile: Il image_url non può essere scaricato (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.
Testo troppo lungo: text supera gli 800 caratteri.
image_subject non valido: Non è uno tra character / landscape.
Name
401 - Unauthorized
Description
Autenticazione fallita. Si prega di controllare 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.
Richiesta
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" }'
Risposta
{"result":"018a210d-8ba4-705c-b111-1f1776f7f578"}
Esempio di prototipo
Inizia con una foto sorgente, quindi genera l'immagine del prototipo utilizzata dalla fase di costruzione della lampada.
Genera il paralume finale stampabile in 3D da un task prototipo riuscito. La costruzione esegue una pipeline da immagine a 3D sull'immagine concettuale del prototipo, quindi post-elabora la mesh attraverso il processore di lampade per svuotarla, appiattire la parte superiore, eventualmente tagliare una base e (quando viene scelto un preset di fissaggio) emettere un disco di base separato per la fonte di luce. Consulta L'oggetto Task di Costruzione Lampada per la forma della risposta.
Parametri
Name
input_task_id
Type
string
Obbligatorio
Description
L'ID del task di un prototipo creato tramite questo stesso endpoint OpenAPI. Il prototipo deve essere stato creato con la stessa chiave API, deve aver raggiunto SUCCEEDED e deve aver prodotto esattamente un'immagine candidata.
I task prototipo creati tramite l'app web non sono accettati — l'endpoint di costruzione accetta solo task prototipo prodotti da POST /openapi/creative-lab/lamp/v1/prototype e rifiuta qualsiasi altra fonte con 404.
Name
name
Type
string
Description
Nome del task opzionale per scopi di visualizzazione. Massimo 100 caratteri.
options
Parametri di regolazione opzionali per la geometria del paralume. Ogni campo ha un valore predefinito ragionevole — invia solo quelli che desideri sovrascrivere.
Name
diameter_mm
Type
number
predefinito 80
Description
Dimensione massima target del bounding box del paralume, in millimetri. La mesh è scalata uniformemente per adattarsi. Intervallo: [50, 400].
Name
thickness_mm
Type
number
predefinito 1.5
Description
Spessore parete del paralume cavo, in millimetri. Intervallo: (0, 10].
Name
cut_amount_percent
Type
number
predefinito 35
Description
Percentuale dell'altezza del paralume da appiattire in alto in modo che la stampa possa poggiare sul letto. Intervallo: [1, 100].
Name
light_source_preset
Type
string
predefinito bambu_mh001_60mm
Description
Preset di fissaggio della fonte di luce che determina se (e quale) disco di base emettere insieme al paralume. Valori disponibili:
bambu_mh001_60mm (predefinito) — emette un disco di base da 60 mm dimensionato per un fissaggio compatibile con la fonte di luce. Il risultato include model_urls.base_stl.
none — nessun fissaggio, nessun disco di base. model_urls.base_stl è omesso.
Name
fixture_offset_x_mm
Type
number
predefinito 0
Description
Offset orizzontale sull'asse X del ritaglio del fissaggio 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 verticale sull'asse Z del ritaglio del fissaggio rispetto al fondo del paralume, in millimetri. Intervallo: [-80, 80].
Name
rotate_x_deg
Type
number
predefinito 0
Description
Rotazione attorno all'asse X applicata alla mesh importata prima dell'elaborazione, in gradi. 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 di lampade (contenente metriche della mesh misurate + il set di opzioni risolto) all'interno del pacchetto. Ignorato quando output.format è stl.
output
Selettore di formato di trasmissione opzionale. Predefinito a stl.
Name
format
Type
string
predefinito stl
Description
Pacchetto di artefatti restituito dalla costruzione. Valori disponibili:
stl (predefinito) — restituisce il paralume come model_urls.lamp_stl, più model_urls.base_stl quando light_source_preset ≠ none.
zip — impacchetta ogni artefatto emesso dal processore (lamp.stl, opzionale base.stl, opzionale result.json) in un unico zip e lo restituisce sotto model_urls.bundle_zip.
Restituisce
La proprietà result della risposta contiene l'id del task del nuovo task di costruzione lampada creato. Interroga l'endpoint Recupera un Task o iscriviti al flusso fino a quando il task raggiunge SUCCEEDED, quindi scarica gli artefatti da model_urls.
Modalità di Fallimento
Name
400 - Bad Request
Description
La richiesta non era accettabile. Cause comuni:
Parametro mancante: input_task_id è richiesto.
UUID non valido: L'input_task_id non è un UUID valido.
Genitore non riuscito: Il task prototipo di riferimento non ha ancora raggiunto SUCCEEDED.
Nessun candidato: Il task prototipo è riuscito ma non ha prodotto alcuna immagine candidata.
Opzioni fuori intervallo: Uno dei campi options è caduto fuori dal suo intervallo consentito o set di enum.
Name
401 - Unauthorized
Description
Autenticazione fallita. Si prega di controllare la tua chiave API.
Name
402 - Payment Required
Description
Crediti insufficienti per eseguire questo task.
Name
404 - Not Found
Description
Il task prototipo di riferimento non esiste, appartiene a un altro utente o è stato creato tramite l'app web (solo i task prototipo in modalità API si concatenano nella costruzione).
Recupera un compito di prototipo o di costruzione dato un valido id del compito. Il percorso URL
deve corrispondere alla fase del compito — un compito di costruzione 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à che sono già IN_PROGRESS sono
annullate senza rimborso (il lavoratore potrebbe già essere in fase di utilizzo delle 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 per l'attività lampada da annullare.
Restituisce
Restituisce 204 No Content in caso di successo con un corpo vuoto.
Modalità di fallimento
Name
400 - Bad Request
Description
L'attività è già in uno stato terminale e non può essere annullata.
Name
404 - Not Found
Description
L'attività non esiste, appartiene a un altro utente o la sua fase non corrisponde al percorso URL.
Trasmetti aggiornamenti in tempo reale per un task lampada tramite Server-Sent Events (SSE).
Il percorso URL deve corrispondere alla fase del task — aprire uno stream su
/prototype/:buildId/stream emette un singolo event: error payload con
status_code: 404 e chiude lo stream.
Parametri
Name
id
Type
path
Description
Identificatore univoco per il task lampada da trasmettere.
Restituisce
Restituisce uno stream di oggetti task Lampada Prototipo
o Lampada Costruzione come
Server-Sent Events. Per i task PENDING o IN_PROGRESS, lo stream di risposta
includerà solo i campi necessari progress e 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=***" }}
Recupera un elenco paginato delle tue attività della lampada per una singola fase. Il percorso URL
seleziona la fase — /prototype restituisce le attività del prototipo; /build
restituisce le attività di costruzione. Le attività dell'altra fase non sono incluse in nessuna delle due risposte.
Parametri del percorso
Name
stage
Type
path
Obbligatorio
Description
O prototype o build. La raccolta restituisce solo le attività
la cui fase corrisponde all'URL — il recupero di /prototype non restituisce mai
attività di costruzione 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 della dimensione della pagina. Il massimo consentito è di 50 elementi.
Name
sort_by
Type
string
predefinito -created_at
Description
Campo per l'ordinamento. Valori disponibili:
+created_at: Ordina per tempo di creazione in ordine crescente.
-created_at: Ordina per tempo di creazione in ordine decrescente.
L'oggetto Task del Prototipo di Lampada è un'unità di lavoro che Meshy tiene traccia per generare un'immagine concettuale stilizzata in bianco opaco a partire da un prompt testuale o da una foto sorgente. L'output di questa fase è collegato alla fase di costruzione tramite input_task_id.
Proprietà
Name
id
Type
string
Description
Identificatore univoco per il task. Anche se utilizziamo un UUID ordinabile per k per gli id dei task come dettaglio di implementazione, non dovresti fare alcuna ipotesi sul formato dell'id.
Name
type
Type
string
Description
Tipo di task. Il valore è creative-lab-lamp-prototype.
Name
name
Type
string
Description
Il nome del task fornito quando il task è stato creato. 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 12:00:00 PM GMT è rappresentato come 1693569600000. Questo si applica
a tutti i timestamp in Meshy API.
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 completato, 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 degli errori per i task falliti. Vedi Errori per il riferimento completo all'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
image_urls
Type
array of strings
Description
URL scaricabili per i candidati all'immagine concettuale generati da questo task prototipo. Attualmente l'API restituisce sempre esattamente un candidato; il campo è un array in modo che le revisioni future possano presentare più candidati senza una modifica dirompente.
L'oggetto Lamp Build Task è un'unità di lavoro che Meshy tiene traccia per generare il paralume finale stampabile in 3D da un'attività prototipo riuscita. La costruzione esegue una pipeline di bozza immagine-a-3D + texture sull'immagine concettuale del prototipo, quindi post-elabora il mesh attraverso il processore della lampada per svuotare, appiattire e (opzionalmente) tagliare una base di fissaggio.
Proprietà
Name
id
Type
string
Description
Identificatore univoco per l'attività.
Name
type
Type
string
Description
Tipo di attività. Il valore è creative-lab-lamp-build.
Name
name
Type
string
Description
Il nome dell'attività fornito quando l'attività è stata creata. Stringa vuota se non è stato fornito alcun nome.
Name
status
Type
string
Description
Stato dell'attività. I valori possibili sono uno di PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.
Name
progress
Type
integer
Description
Avanzamento dell'attività. Se l'attività non è ancora iniziata, questa proprietà sarà 0. Una volta che l'attività è riuscita, diventerà 100.
Name
created_at
Type
timestamp
Description
Timestamp di quando l'attività è stata creata, in millisecondi.
Name
started_at
Type
timestamp
Description
Timestamp di quando l'attività è iniziata, in millisecondi.
Name
finished_at
Type
timestamp
Description
Timestamp di quando l'attività è terminata, in millisecondi.
Name
expires_at
Type
timestamp
Description
Timestamp di quando il risultato dell'attività scade, in millisecondi.
Name
preceding_tasks
Type
integer
Description
Il conteggio delle attività precedenti. Significativo solo quando lo stato è PENDING.
Name
task_error
Type
object
Description
Dettagli degli errori per le attività fallite. Vedi Errori per il riferimento completo all'oggetto task_error.
Name
consumed_credits
Type
integer
Description
Il numero di crediti consumati da questa attività. Restituisce 0 per le attività 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. Il set di chiavi dipende da output.format e options.light_source_preset:
Name
lamp_stl
Type
string
Description
URL scaricabile per il paralume lamp.stl. Presente quando output.format era stl (il predefinito).
Name
base_stl
Type
string
Description
URL scaricabile per la base di fissaggio base.stl. Presente quando output.format era stleoptions.light_source_preset non era none. Omissis quando il preset del fissaggio era none.
Name
bundle_zip
Type
string
Description
URL scaricabile per un pacchetto zip di ogni artefatto emesso dal processore (lamp.stl, opzionale base.stl, 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.