Text to 3D API è una funzione che consente di integrare le capacità di Testo in 3D di Meshy nella propria applicazione. In questa sezione troverai tutte le informazioni
necessarie per iniziare con questa API.
Testo in 3D utilizza un flusso di lavoro in due fasi. Innanzitutto, crea un task di anteprima (mode: "preview") per generare una mesh 3D senza texture, in modo da poter valutare la forma. Successivamente, passa l'ID del task di anteprima completato a un task di rifinitura (mode: "refine") per applicare la texture alla mesh. Entrambe le fasi condividono lo stesso endpoint.
Questo endpoint crea un task di anteprima Testo in 3D, che genera una mesh 3D non texturizzata (solo geometria) a partire da un prompt di testo. Questo è il primo passaggio del flusso di lavoro in due fasi. Una volta che l'anteprima ha successo, usa l'ID del task restituito per creare un task di rifinitura per la texturizzazione. Consulta
L'Oggetto Task Testo in 3D per lo schema completo della risposta.
Parametri
Name
mode
Type
string
Obbligatorio
Description
Questo campo deve essere impostato su "preview" quando si crea un task di anteprima.
Name
prompt
Type
string
Obbligatorio
Description
Descrivi che tipo di oggetto è il modello 3D. Massimo 600 caratteri.
Name
model_type
Type
string
predefinito standard
Description
Specifica il tipo di generazione della mesh 3D.
Valori disponibili:
standard: Generazione di mesh 3D regolare ad alto dettaglio.
lowpoly: Genera mesh low-poly ottimizzate per poligoni più puliti.
Quando è selezionato lowpoly, ai_model, topology, target_polycount, should_remesh sono ignorati.
Name
ai_model
Type
string
predefinito latest
Description
ID del modello da utilizzare. Valori disponibili: meshy-5, meshy-6, latest (Meshy 6).
Name
should_remesh
Type
boolean
predefinito false (meshy-6), true (others)
Description
Controlla se abilitare la fase di remesh. Per la massima qualità del modello, si consiglia di impostare should_remesh su false.
Si applica solo quando should_remesh = true
Name
topology
Type
string
predefinito triangle
Description
Specifica la topology del modello generato.
Valori disponibili:
quad: Generare una mesh dominata da quad.
triangle: Generare una mesh di triangoli decimata.
Name
target_polycount
Type
integer
predefinito 30,000
Description
Specifica il numero di poligoni previsto nel modello generato. Il numero effettivo di poligoni può deviare dal target a seconda della complessità della geometria.
L'intervallo di valori validi varia a seconda del livello utente:
Da 100 a 300.000 (inclusi)
Name
decimation_mode
Type
integer
Description
Abilita la decimazione adattiva impostando un livello di conteggio poligoni. Quando impostato, target_polycount è ignorato.
Valori disponibili:
1: Adattativo — ultra conteggio poligoni.
2: Adattativo — alto conteggio poligoni.
3: Adattativo — medio conteggio poligoni.
4: Adattativo — basso conteggio poligoni.
Name
symmetry_mode
Type
string
⚠ deprecato
predefinito auto
Description
Deprecato. Questo parametro non influisce più sull'output.
Il campo symmetry_mode controlla il comportamento della simmetria durante il processo di generazione del modello.
I valori validi sono:
off: Disabilita la simmetria.
auto: Determina e applica automaticamente la simmetria basata sulla geometria d'input.
Usa pose_mode invece. Se generare il modello in posa A/T.
Name
art_style
Type
string
⚠ deprecato
predefinito realistic
Description
Non supportato da Meshy-6. Le richieste che utilizzano Meshy-6 ignoreranno art_style, e alcune combinazioni possono causare errori. Valori disponibili: realistic, sculpture.
enable_pbr dovrebbe essere impostato su false quando si utilizza lo stile Scultura, poiché lo stile Scultura genera il proprio set di mappe PBR.
Name
moderation
Type
boolean
predefinito false
Description
Quando impostato su true, il contenuto d'ingresso sarà automaticamente controllato per contenuti potenzialmente dannosi. Se viene rilevato un contenuto dannoso, il task non procederà alla generazione.
Il testo da prompt sarà sottoposto a screening.
Name
target_formats
Type
string[]
Description
Specifica quali formati di file 3D includere nell'output. Solo i formati richiesti saranno generati e restituiti, il che può ridurre il tempo di completamento del task. Quando omesso, tutti i formati supportati sono inclusi.
Valori disponibili: glb, obj, fbx, stl, usdz, 3mf
Quando omesso, tutti i formati tranne 3mf sono generati. 3mf è incluso solo quando specificamente richiesto.
Name
alpha_thumbnail
Type
boolean
predefinito false
Description
Quando impostato su true, il task renderà anche una versione trasparente di sfondo (RGBA) dell'anteprima e la restituirà come alpha_thumbnail_url nella risposta GET. Il campo esistente thumbnail_url rimane invariato.
Name
auto_size
Type
boolean
predefinito false
Description
Quando impostato su true, il servizio utilizza la visione AI per stimare automaticamente l'altezza del mondo reale dell'oggetto e ridimensionare il modello di conseguenza. L'origine verrà impostata su bottom a meno che origin_at non sia esplicitamente impostato.
Si applica solo quando auto_size = true
Name
origin_at
Type
string
predefinito bottom
Description
Posizione dell'origine quando auto_size è abilitato.
Valori disponibili: bottom, center.
Ritorni
La proprietà result della risposta contiene l'ID del task del Testo in 3D appena creato.
Modalità di Fallimento
Name
400 - Bad Request
Description
La richiesta non era accettabile. Cause comuni:
Parametro mancante: Un parametro obbligatorio (es., prompt, mode) manca.
Parametro non valido: art_style non è uno dei valori consentiti.
Prompt troppo lungo: Il prompt supera il limite di caratteri.
Name
401 - Unauthorized
Description
Autenticazione fallita. Si prega di controllare la propria 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/v2/text-to-3d
# Semplice anteprima con parametri richiesti solocurlhttps://api.meshy.ai/openapi/v2/text-to-3d \-H'Authorization: Bearer ${YOUR_API_KEY}' \-H'Content-Type: application/json' \-d'{ "mode": "preview", "prompt": "a monster mask"}'# Anteprima con remesh e A-posecurlhttps://api.meshy.ai/openapi/v2/text-to-3d \-H'Authorization: Bearer ${YOUR_API_KEY}' \-H'Content-Type: application/json' \-d'{ "mode": "preview", "prompt": "a futuristic robot warrior", "should_remesh": true, "target_polycount": 100000, "pose_mode": "a-pose", "target_formats": ["glb"]}'
Questo endpoint crea un task di rifinitura Testo in 3D, che applica la texture a una mesh di anteprima completata. Devi fornire l'ID del task di anteprima di un task di anteprima riuscito. Questo è il secondo passaggio del flusso di lavoro in due fasi.
Parametri
Name
mode
Type
string
Obbligatorio
Description
Questo campo deve essere impostato su "refine" quando si crea un task di rifinitura.
Name
preview_task_id
Type
string
Obbligatorio
Description
L'ID del corrispondente task di anteprima.
Lo stato del task di anteprima fornito deve essere SUCCEEDED.
Name
enable_pbr
Type
boolean
predefinito false
Description
Genera mappe PBR (metallic, roughness, normal) oltre al colore base. Una mappa di emissione è inclusa quando ai_model è meshy-6 o latest, tranne per texture_resolution: 8k (non viene prodotta alcuna mappa di emissione).
Name
texture_resolution
Type
string
predefinito 2k
Description
Risoluzione della texture del colore base. Uno tra 2k (2048×2048), 4k (4096×4096) o 8k (8192×8192). Risoluzioni più alte catturano più dettagli di superficie. Si applica solo alla modalità refine.
4k e 8k richiedono ai_modelmeshy-6 o latest. A 8k, non viene prodotta alcuna mappa di emissione.
Name
hd_texture
Type
boolean
⚠ deprecato
predefinito false
Description
Usa texture_resolution invece — equivalente a texture_resolution: "4k". Quando entrambi sono impostati, texture_resolution ha la precedenza.
Name
texture_prompt
Type
string
Description
Fornisci un prompt di testo aggiuntivo per guidare il processo di texturizzazione. Massimo 600 caratteri.
Name
texture_image_url
Type
string
Description
Fornisci un'immagine 2d per guidare il processo di texturizzazione. Attualmente supportiamo i formati .jpg, .jpeg, e .png.
Ci sono due modi per fornire l'immagine:
URL accessibile pubblicamente: 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>
La texturizzazione delle immagini potrebbe non funzionare in modo ottimale se ci sono differenze sostanziali di geometria tra l'asset originale e l'immagine caricata. Solo uno dei due texture_image_url o texture_prompt può essere utilizzato per guidare il processo di texturizzazione. Se entrambi i parametri sono forniti, allora texture_prompt verrà usato per texturizzare il modello per default.
Name
ai_model
Type
string
predefinito latest
Description
ID del modello da utilizzare per la rifinitura. Valori disponibili: meshy-5, meshy-6, latest (Meshy 6).
Name
moderation
Type
boolean
predefinito false
Description
Quando impostato su true, il contenuto d'ingresso sarà automaticamente controllato per contenuti potenzialmente dannosi. Se viene rilevato un contenuto dannoso, il task non procederà alla generazione.
Sia il testo da texture_prompt che l'immagine da texture_image_url saranno sottoposti a screening.
Name
remove_lighting
Type
boolean
predefinito true
Description
Rimuove i riflessi e le ombre dalla texture del colore base, producendo un risultato più pulito che funziona meglio sotto configurazioni di illuminazione personalizzate.
Supportato solo quando ai_model è meshy-6 o latest.
Name
target_formats
Type
string[]
Description
Specifica quali formati di file 3D includere nell'output. Solo i formati richiesti saranno generati e restituiti, il che può ridurre il tempo di completamento del task. Quando omesso, tutti i formati supportati sono inclusi.
Valori disponibili: glb, obj, fbx, stl, usdz, 3mf
Quando omesso, tutti i formati tranne 3mf sono generati. 3mf è incluso solo quando specificamente richiesto.
Name
alpha_thumbnail
Type
boolean
predefinito false
Description
Quando impostato su true, il task renderà anche una versione trasparente di sfondo (RGBA) dell'anteprima e la restituirà come alpha_thumbnail_url nella risposta GET. Il campo esistente thumbnail_url rimane invariato.
Name
auto_size
Type
boolean
predefinito false
Description
Quando impostato su true, il servizio utilizza la visione AI per stimare automaticamente l'altezza del mondo reale dell'oggetto e ridimensionare il modello di conseguenza. L'origine verrà impostata su bottom a meno che origin_at non sia esplicitamente impostato.
Si applica solo quando auto_size = true
Name
origin_at
Type
string
predefinito bottom
Description
Posizione dell'origine quando auto_size è abilitato.
Valori disponibili: bottom, center.
Ritorni
La proprietà result della risposta contiene l'ID del task del Testo in 3D appena creato.
Modalità di Fallimento
Name
400 - Bad Request
Description
La richiesta non era accettabile. Cause comuni:
ID task non valido: Il preview_task_id è invalido o non esiste.
Task non pronto: Il task di anteprima non ha ancora avuto successo.
Incompatibilità modello: Il modello AI del task di anteprima è incompatibile con il modello di rifinitura richiesto.
Name
401 - Unauthorized
Description
Autenticazione fallita. Si prega di controllare la propria chiave API.
Name
402 - Payment Required
Description
Crediti insufficienti per eseguire questo task.
Name
404 - Not Found
Description
Il task di anteprima specificato da preview_task_id non è stato trovato.
Name
429 - Too Many Requests
Description
Hai superato il tuo limite di frequenza.
Richiesta
POST
/openapi/v2/text-to-3d
# Task di rifinitura di basecurlhttps://api.meshy.ai/openapi/v2/text-to-3d \-H'Authorization: Bearer ${YOUR_API_KEY}' \-H'Content-Type: application/json' \-d'{ "mode": "refine", "preview_task_id": "018a210d-8ba4-705c-b111-1f1776f7f578", "enable_pbr": true}'# Rifinitura con auto-size e formato GLBcurlhttps://api.meshy.ai/openapi/v2/text-to-3d \-H'Authorization: Bearer ${YOUR_API_KEY}' \-H'Content-Type: application/json' \-d'{ "mode": "refine", "preview_task_id": "018a210d-8ba4-705c-b111-1f1776f7f578", "target_formats": ["glb"], "auto_size": true}'
Questo endpoint consente di ottenere un task Testo in 3D dato un valido id del task.
Consulta L'Oggetto Task Testo in 3D per vedere quali
proprietà sono incluse con l'oggetto task Testo in 3D.
Questo endpoint funziona sia per i task di anteprima che per quelli di rifinitura.
Parametri
Name
id
Type
path
Description
Identificatore univoco per il task Testo in 3D da ottenere.
Ritorni
La risposta contiene l'oggetto task Testo in 3D. Guarda
la sezione L'Oggetto Task Testo in 3D per i dettagli.
// Esempio di evento di erroreevent: errordata: {"status_code": 404,"message": "Task non trovato"}// Gli esempi di eventi di messaggio illustrano il progresso del task.// Per task PENDING o IN_PROGRESS, il flusso di risposta non includerà tutti i campi.event: messagedata: {"id": "018a210d-8ba4-705c-b111-1f1776f7f578","progress": 0,"status": "PENDING"}event: messagedata: {"id": "018a210d-8ba4-705c-b111-1f1776f7f578","progress": 50,"status": "IN_PROGRESS"}event: messagedata: {"id": "018a210d-8ba4-705c-b111-1f1776f7f578","type": "text-to-3d-preview","progress": 100,"status": "SUCCEEDED","created_at": 1692771650657,"started_at": 1692771667037,"finished_at": 1692771669037,"model_urls": {"glb":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.glb?Expires=***"},"texture_urls": [ {"base_color":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0.png?Expires=***","metallic":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_metallic.png?Expires=XXX","normal":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_normal.png?Expires=XXX","roughness":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_roughness.png?Expires=XXX","emission":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_emission.png?Expires=XXX" }],"preceding_tasks": 0,"task_error": {"message":""},"consumed_credits": 20}
L'Oggetto Task Testo in 3D è un'unità di lavoro che Meshy tiene traccia per generare un modello 3D a partire da un input testo. Ci sono due fasi dell'API Testo in 3D, preview e refine. La fase di anteprima è per generare un modello 3D solo mesh, e la fase di rifinitura è per generare un modello 3D texturizzato basato sul risultato della fase di anteprima.
L'oggetto ha le seguenti proprietà:
Proprietà
Name
id
Type
string
Description
Identificatore univoco per il task. Sebbene utilizziamo un UUID ordinabile k per gli ID dei task come dettaglio di implementazione, non devi fare alcuna assunzione sul formato dell'ID.
Name
type
Type
string
Description
Tipo di task Testo in 3D. I valori possibili sono text-to-3d-preview per i task di anteprima e text-to-3d-refine per i task di rifinitura.
Name
model_urls
Type
object
Description
URL scaricabile al file del modello 3D texturizzato generato da Meshy. La proprietà per un formato sarà omessa se il formato non è generato invece di restituire una stringa vuota.
Name
glb
Type
string
Description
URL scaricabile al file GLB.
Name
fbx
Type
string
Description
URL scaricabile al file FBX.
Name
usdz
Type
string
Description
URL scaricabile al file USDZ.
Name
obj
Type
string
Description
URL scaricabile al file OBJ.
Name
mtl
Type
string
Description
URL scaricabile al file MTL.
Name
stl
Type
string
Description
URL scaricabile al file STL.
Name
3mf
Type
string
Description
URL scaricabile al file 3MF. Solo presente quando 3mf è stato richiesto tramite target_formats.
Name
prompt
Type
string
Description
Questo è il prompt non modificato che è stato utilizzato per creare il task.
Name
negative_prompt
Type
string
⚠ deprecato
Description
Mantenuto per compatibilità retroattiva. Questo campo non ha alcun impatto funzionale sui modelli generati.
Name
art_style
Type
string
⚠ deprecato
Description
L'art_style non modificato che è stato utilizzato per creare il task di anteprima. Non supportato da Meshy-6.
Name
texture_richness
Type
string
⚠ deprecato
Description
Mantenuto per compatibilità retroattiva. Questo campo non ha alcun impatto funzionale sui modelli generati.
Name
texture_prompt
Type
string
Description
Prompt di testo aggiuntivo fornito per guidare il processo di texturizzazione durante la fase di rifinitura.
Name
texture_image_url
Type
string
Description
URL scaricabile all'immagine della texture che è stata utilizzata per guidare il processo di texturizzazione.
Name
thumbnail_url
Type
string
Description
URL scaricabile all'immagine in miniatura del file del modello.
Name
alpha_thumbnail_url
Type
string
Description
URL scaricabile a una versione trasparente di sfondo (RGBA) di thumbnail_url. Solo presente quando il task è stato creato con alpha_thumbnail: true e la miniatura trasparente è stata resa con successo; altrimenti questo campo è omesso.
Name
video_url
Type
string
⚠ deprecato
Description
URL scaricabile al video di anteprima. Sarà rimosso in una versione futura.
Name
progress
Type
integer
Description
Progresso del task. Se il task non è ancora avviato, questa proprietà sarà 0. Una volta che il task è riuscito, diventerà 100.
Name
started_at
Type
timestamp
Description
Timestamp di quando il task è stato avviato, in millisecondi. Se il task non è ancora avviato, questa proprietà sarà 0.
Un timestamp rappresenta il numero di millisecondi trascorsi dall'1 gennaio 1970 UTC, seguendo
lo standard RFC 3339.
Ad esempio, venerdì 1 settembre 2023 12:00:00 GMT è rappresentato come 1693569600000. Questo si applica
a tutti i timestamp nell'API Meshy.
Name
created_at
Type
timestamp
Description
Timestamp di quando il task è stato creato, in millisecondi.
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
status
Type
string
Description
Stato del task. I valori possibili sono uno tra PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.
Name
texture_urls
Type
array
Description
Un array di oggetti URL delle texture che sono generati dal task. Di solito questo contiene solo uno oggetto URL delle texture. Ogni URL delle texture ha le seguenti proprietà:
Name
base_color
Type
string
Description
URL scaricabile all'immagine della mappa del colore base.
Name
metallic
Type
string
Description
URL scaricabile all'immagine della mappa metallica.
Se il task è creato con enable_pbr: false, questa proprietà sarà omessa.
Name
normal
Type
string
Description
URL scaricabile all'immagine della normal map.
Se il task è creato con enable_pbr: false, questa proprietà sarà omessa.
Name
roughness
Type
string
Description
URL scaricabile all'immagine della mappa della rugosità.
Se il task è creato con enable_pbr: false, questa proprietà sarà omessa.
Name
emission
Type
string
Description
URL scaricabile all'immagine della mappa di emissione.
Se il task è creato con enable_pbr: false, o ai_model è meshy-5, questa proprietà sarà omessa.
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 sugli 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).
Esempio di Oggetto Task Testo in 3D
{"id":"018a210d-8ba4-705c-b111-1f1776f7f578","type":"text-to-3d-preview","model_urls": {"glb":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.glb?Expires=***","fbx":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.fbx?Expires=***","usdz":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.usdz?Expires=***","obj":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.obj?Expires=***","mtl":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.mtl?Expires=***","stl":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.stl?Expires=***" },"prompt":"a monster mask","texture_prompt":"green slimy skin with scales and warts","texture_image_url":"","thumbnail_url":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview.png?Expires=***","progress":100,"started_at":1692771667037,"created_at":1692771650657,"finished_at":1692771669037,"status":"SUCCEEDED","texture_urls": [ {"base_color":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0.png?Expires=***","metallic":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_metallic.png?Expires=XXX","normal":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_normal.png?Expires=XXX","roughness":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_roughness.png?Expires=XXX","emission":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_emission.png?Expires=XXX" } ],"preceding_tasks":0,"task_error": {"message":"" },"consumed_credits":20}