Trasforma le tue foto in magneti da frigo personalizzati — un rilievo di profondità
colorato a rettangolo con angoli arrotondati e un retro magnetico piatto, dimensionato
per il frigorifero — in due fasi: prototype genera un'immagine concettuale colorata
a partire dalla tua foto di input, poi build trasforma quell'immagine concettuale
in un modello 3D in rilievo. Le due fasi sono collegate tramite input_task_id.
POST /openapi/creative-lab/fridge-magnet/v1/prototype
Genera una singola immagine concept colorizzata a partire dalla foto sorgente. L'ID
dell'attività restituito è ciò che passi come input_task_id all'endpoint
di build. Fai riferimento a
The Fridge Magnet Prototype Task Object
per la struttura della risposta.
Parametri
Name
image_url
Type
string
Obbligatorio
Description
Foto sorgente che Meshy deve colorizzare in un'immagine concept pronta per il magnete da frigo. 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: una data URI dell'immagine codificata in base64. Esempio di data URI: data:image/jpeg;base64,<i tuoi dati immagine codificati in base64>.
Name
name
Type
string
Description
Nome facoltativo dell'attività a scopo 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, così puoi comporre il soggetto su qualsiasi sfondo.
Questo controlla solo l'immagine restituita da questo endpoint. È separato dall'opzione di build con lo stesso nome (predefinita true), che controlla la rimozione dello sfondo prima del rilievo.
Valori restituiti
La proprietà result della risposta contiene l'id dell'attività appena creata per il prototipo del fridge magnet. Effettua il polling dell'endpoint Get a Task oppure sottoscrivi lo stream finché l'attività non raggiunge lo stato 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: 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 valida: la stringa base64 è malformata.
Contenuto segnalato: l'immagine in input è stata segnalata dalla moderation per contenuti NSFW o per proprietà intellettuale.
Name
401 - Unauthorized
Description
Autenticazione non riuscita. Controlla la tua chiave API.
Name
402 - Payment Required
Description
Crediti insufficienti per eseguire questa attività.
Name
429 - Too Many Requests
Description
Hai superato il tuo limite di frequenza.
Request
POST
/openapi/creative-lab/fridge-magnet/v1/prototype
# Stage 1: generate a colorized fridge magnet concept imagecurlhttps://api.meshy.ai/openapi/creative-lab/fridge-magnet/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>" }'
Response
{"result":"01a3d8f1-8c2e-7d04-b223-3f3776a1c8c9"}
Esempio di prototipo
Parti da una foto sorgente, quindi genera l'immagine del prototipo utilizzata dalla fase di build del fridge magnet.
Genera il magnete da frigo finale stampabile in 3D a partire da un'attività prototipo riuscita. La build esegue una pipeline di rilievo basata su mappa di profondità sull'immagine concettuale colorata del prototipo e produce un singolo artefatto mesh nel formato richiesto. Fai riferimento a
L'oggetto Attività di Build del Magnete da Frigo per la forma della risposta.
Parametri
Name
input_task_id
Type
string
Obbligatorio
Description
L'ID attività di un'attività prototipo creata tramite questo stesso endpoint OpenAPI. Il prototipo deve essere stato creato con la stessa chiave API, deve aver raggiunto lo stato SUCCEEDED e deve aver prodotto esattamente un'immagine candidata.
Le attività prototipo create tramite la webapp non sono accettate: l'endpoint di build accetta solo attività prototipo prodotte da POST /openapi/creative-lab/fridge-magnet/v1/prototype e rifiuta qualsiasi altra origine con 404.
Name
name
Type
string
Description
Nome opzionale dell'attività a scopo di visualizzazione. Massimo 100 caratteri.
options
Parametri di regolazione opzionali per la geometria del rilievo. Ogni campo ha un valore predefinito sensato — invia solo quelli che vuoi sovrascrivere.
Name
badge_shape
Type
string
predefinito rounded-rect
Description
Sagoma del contorno del magnete da frigo. Valori disponibili:
circle
rounded-rect (predefinito)
hexagon
shield
star
Name
size_mm
Type
number
predefinito 60
Description
Lunghezza del lato del quadrato di delimitazione del magnete da frigo, in millimetri. Intervallo: (0, 400].
Name
relief_height_mm
Type
number
predefinito 3.3
Description
Altezza massima del rilievo rispetto alla base, in millimetri. Intervallo: [0, 20].
Name
relief_offset_mm
Type
number
predefinito 0
Description
Offset verticale applicato al rilievo prima dell'estrusione, in millimetri. Intervallo: [0, 20].
Name
base_thickness_mm
Type
number
predefinito 2.0
Description
Spessore della piastra di base piatta dietro il rilievo, in millimetri. Il valore predefinito per il magnete da frigo è una base più robusta di 2 mm — questo dà al magnete abbastanza corpo da aderire al frigorifero senza che il rilievo risulti fragile. Intervallo: [0, 20].
Name
has_closed_back
Type
boolean
predefinito true
Description
Se il retro del magnete da frigo è sigillato come superficie chiusa (il lato su cui incolli il magnete). Imposta su false per un guscio aperto.
Name
relief_curve
Type
string
predefinito linear
Description
Curva di trasferimento che mappa i valori della mappa di profondità sull'altezza del rilievo. Valori disponibili:
linear (predefinito)
gamma
s-curve
Name
curve_param
Type
number
predefinito 1.0
Description
Parametro di forma per la curva di trasferimento (significativo solo quando relief_curve è gamma). Intervallo: (0, 10].
Name
invert_depth
Type
boolean
predefinito false
Description
Inverte l'interpretazione della mappa di profondità in modo che le regioni più scure diventino rilievi più alti.
Name
smoothing
Type
number
predefinito 0.24
Description
Intensità dello smoothing applicato alla mappa di profondità prima dell'estrazione del rilievo. Intervallo: [0, 10].
Name
relief_scale
Type
number
predefinito 1.0
Description
Moltiplicatore di scala verticale applicato in aggiunta a relief_height_mm. Intervallo: (0, 10].
Name
depth_threshold
Type
number
predefinito 0.1
Description
Soglia di passa-basso per i valori della mappa di profondità; tutto ciò che è al di sotto viene azzerato. Intervallo: [0, 1].
Name
remove_background
Type
boolean
predefinito true
Description
Rimuove automaticamente lo sfondo dell'immagine concettuale del prototipo prima del rilievo.
Distinto dal parametro del prototipo con lo stesso nome (predefinito false), che controlla se l'immagine del prototipo stessa viene restituita con trasparenza.
Name
export_resolution
Type
integer
predefinito 512
Description
Risoluzione della mesh utilizzata per l'esportazione. Intervallo: [64, 2048].
output
Selettore opzionale del formato di trasmissione. Il valore predefinito è glb.
Name
format
Type
string
predefinito glb
Description
Pacchetto di artefatti restituito dalla build. Valori disponibili:
glb (predefinito) — restituisce un singolo model.glb sotto model_urls.glb.
obj — comprime model.obj + model.mtl + texture.png in uno zip e restituisce il pacchetto sotto model_urls.obj.
zip — comprime ogni artefatto emesso dal generatore in uno zip e restituisce il pacchetto sotto model_urls.bundle_zip.
Restituisce
La proprietà result della risposta contiene l'id dell'attività della nuova attività di build del magnete da frigo appena creata. Interroga periodicamente l'endpoint Recupera un'attività oppure iscriviti allo stream finché l'attività non raggiunge lo stato SUCCEEDED, quindi scarica l'artefatto dalla singola voce in model_urls.
Modalità di fallimento
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 riuscito: l'attività prototipo referenziata non ha ancora raggiunto lo stato SUCCEEDED.
Nessun candidato: l'attività prototipo è riuscita ma non ha prodotto alcuna immagine candidata.
Opzioni fuori intervallo: uno dei campi di options non rientra nell'intervallo consentito o nell'insieme di valori enum ammessi.
Name
401 - Unauthorized
Description
Autenticazione non riuscita. Controlla la tua chiave API.
Name
402 - Payment Required
Description
Crediti insufficienti per eseguire questa attività.
Name
404 - Not Found
Description
L'attività prototipo referenziata non esiste, appartiene a un altro utente o è stata creata tramite la webapp (solo le attività prototipo in modalità API si collegano alla build).
Recupera un'attività di prototipo o di build dato un id di attività valido. Il percorso URL
deve corrispondere alla fase dell'attività: un'attività di build recuperata tramite
/prototype/:id restituisce 404, e viceversa.
Annulla un'attività magnete da frigo. 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à
star consumando risorse). Le attività che hanno già raggiunto uno stato
terminale (SUCCEEDED, FAILED, CANCELED) non possono essere annullate.
Il percorso dell'URL deve corrispondere alla fase dell'attività — un DELETE su
/prototype/:buildId restituisce 404.
Parametri del percorso
Name
id
Type
path
Description
Identificatore univoco dell'attività magnete da frigo da annullare.
Risultati restituiti
Restituisce 204 No Content in caso di successo, con 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 altro utente, oppure la sua fase non corrisponde al percorso dell'URL.
Trasmette in streaming gli aggiornamenti in tempo reale per un'attività di magnete da frigo tramite Server-Sent Events (SSE).
Il percorso dell'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à di magnete da frigo da trasmettere in streaming.
Restituisce
Restituisce uno stream di oggetti attività Fridge Magnet Prototype
o Fridge Magnet Build come
Server-Sent Events. Ogni frame contiene l'intero oggetto attività per la fase corrispondente — la stessa forma
restituita dall'endpoint Get — quindi mentre l'attività è PENDING o IN_PROGRESS i
campi di output semplicemente non sono ancora popolati (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": "01b4e9a2-9d3f-8e15-c334-4f4887b2d9d0","progress": 0,"status": "PENDING"}event: messagedata: {"id": "01b4e9a2-9d3f-8e15-c334-4f4887b2d9d0","type": "creative-lab-fridge-magnet-build","status": "SUCCEEDED","progress": 100,"created_at": 1729543250000,"started_at": 1729543258000,"finished_at": 1729543285000,"expires_at": 1729802485000,"task_error": null,"consumed_credits": 20,"model_urls": {"glb":"https://assets.meshy.ai/***/tasks/01b4e9a2-9d3f-8e15-c334-4f4887b2d9d0/output/model.glb?Expires=***" }}
Recupera un elenco paginato dei tuoi task magnete da frigo per una singola fase. Il percorso
URL seleziona la fase — /prototype restituisce i task di prototipo; /build
restituisce i task di build. I task dell'altra fase non sono inclusi in nessuna delle due
risposte.
Parametri del percorso
Name
stage
Type
path
Obbligatorio
Description
Può essere prototype o build. La collezione restituisce solo i task
la cui fase corrisponde all'URL — richiedere /prototype non restituisce mai
task di build e viceversa.
Parametri della 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 è 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 Task del prototipo di magnete da frigo è un'unità di lavoro che Meshy tiene traccia per
generare un'immagine concettuale colorata a partire da una foto sorgente. 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 venga usato, come dettaglio implementativo, un UUID k-sortable, non si dovrebbe fare alcuna assunzione sul formato dell'id.
Name
type
Type
string
Description
Tipo del task. Il valore è creative-lab-fridge-magnet-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
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.
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 stato avviato, questa proprietà sarà 0.
Name
finished_at
Type
timestamp
Description
Timestamp di quando il task è stato terminato, 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
image_urls
Type
array of strings
Description
URL scaricabili per i candidati di immagine concettuale generati da questo task di prototipo. Attualmente l'API restituisce sempre esattamente un candidato; il campo è un array in modo che revisioni future possano offrire più candidati senza introdurre modifiche non retrocompatibili.
L'oggetto Fridge Magnet Build Task è un'unità di lavoro che Meshy tiene traccia per generare la mesh 3D finale del magnete da frigo a partire da un task prototipo riuscito. Il build esegue una pipeline di relief basata su mappa di profondità sull'immagine concettuale del prototipo e pubblica un singolo artefatto mesh nel formato richiesto dal chiamante.
Proprietà
Name
id
Type
string
Description
Identificatore univoco del task.
Name
type
Type
string
Description
Tipo del task. Il valore è creative-lab-fridge-magnet-build.
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.
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 terminato, 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 status è 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. Restituisce 0 per i task FAILED (i crediti vengono rimborsati in caso di fallimento).
Name
model_urls
Type
object
Description
URL scaricabili per l'artefatto generato, indicizzati per nome dell'artefatto. Contiene sempre esattamente una voce — il formato richiesto tramite output.format della richiesta di build. La chiave corrisponde al formato richiesto:
Name
glb
Type
string
Description
URL scaricabile per il file GLB. Presente quando output.format era glb (il valore predefinito).
Name
obj
Type
string
Description
URL scaricabile per un archivio zip contenente model.obj, model.mtl e texture.png. Presente quando output.format era obj.
Name
bundle_zip
Type
string
Description
URL scaricabile per un archivio zip di tutti gli artefatti prodotti dal generatore. Presente quando output.format era zip.