L'API Testo in 3D è una funzionalità che ti consente di integrare le capacità di Testo in 3D di Meshy nella tua 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. Prima, crea un'attività di anteprima (mode: "preview") per generare una mesh 3D senza texture, in modo da poter valutare la forma. Successivamente, passa l'ID dell'attività di anteprima completata a un'attività di rifinitura (mode: "refine") per applicare la texture alla mesh. Entrambe le fasi condividono lo stesso endpoint.
Questo endpoint crea un'attività 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 esito positivo, usa l'ID dell'attività restituito per creare un'attività di refine per l'applicazione delle texture. Fai riferimento a
The Text to 3D Task Object per lo schema completo della risposta.
Parametri
Name
mode
Type
string
Obbligatorio
Description
Questo campo deve essere impostato su "preview" quando si crea un'attività di anteprima.
Name
prompt
Type
string
Obbligatorio
Description
Descrivi che tipo di oggetto è il modello 3D. Massimo 800 caratteri.
Name
model_type
Type
string
predefinito standard
Description
Specifica il tipo di generazione della mesh 3D.
Valori disponibili:
standard: generazione regolare di mesh 3D ad alto dettaglio.
smart-topology: scegli il modello Smart Topology con ai_model (meshy-t2).
lowpoly (deprecato): genera una mesh low-poly ottimizzata per poligoni più puliti. Consigliamo di usare invece smart-topology.
Quando è selezionato smart-topology, should_remesh e decimation_mode vengono ignorati, ed è accettato solo topology: triangle.
Quando è selezionato lowpoly, ai_model, topology, target_polycount e should_remesh vengono ignorati.
Name
ai_model
Type
string
predefinito latest
Description
ID del modello da utilizzare. I valori disponibili dipendono da model_type.
meshy-t2 (predefinito): il modello Smart Topology — topology più pulita, parti separate nativamente, output in triangoli e un numero di facce impostabile con target_polycount.
Name
ultra_mode
Type
boolean
predefinito false
Description
Abilita la generazione Ultra per una geometria di qualità superiore con dettagli di superficie più fini. La generazione richiede più tempo e aggiunge 5 crediti.
Supportato solo quando ai_model è meshy-7 (o latest), e solo in modalità preview.
Controlla se abilitare la fase di remesh. Per il modello di qualità più elevata, consigliamo 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: genera una mesh a dominanza di quadrilateri.
triangle: genera una mesh triangolare decimata.
L'output di Smart Topology è esclusivamente in triangoli. Richiedere quad insieme a ai_model: meshy-t2 restituisce un errore.
Name
decimation_mode
Type
integer
Description
Abilita la decimazione adattiva impostando un livello di conteggio poligoni. Se impostato, target_polycount viene ignorato.
Valori disponibili:
1: adattivo — conteggio poligoni ultra.
2: adattivo — conteggio poligoni alto.
3: adattivo — conteggio poligoni medio.
4: adattivo — conteggio poligoni basso.
Name
target_polycount
Type
integer
Description
Numero target di poligoni (facce) nell'output. Il conteggio effettivo può discostarsi dal target a seconda della geometria.
target_polycount ha effetto in due casi indipendenti:
Remesh — con should_remesh: true su un modello standard. La mesh viene sottoposta a remesh (decimata) fino a raggiungere approssimativamente questo conteggio. Intervallo da 100 a 300.000, predefinito 30.000. Se decimation_mode è impostato, ha la priorità e target_polycount viene ignorato.
Smart Topology — con model_type: smart-topology e ai_model: meshy-t2. Il modello viene generato direttamente con questo conteggio di facce; non viene eseguito alcun remesh e should_remesh non è richiesto. Intervallo da 100 a 15.000, predefinito 4.000.
Name
symmetry_mode
Type
string
⚠ deprecato
predefinito auto
Description
Deprecato. Questo parametro non influisce più sull'output.
Il campo symmetry_mode controlla il comportamento di simmetria durante il processo di generazione del modello.
I valori validi sono:
off: disabilita la simmetria.
auto: determina e applica automaticamente la simmetria in base alla geometria di input.
Usa invece pose_mode. Indica 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 usano Meshy-6 ignoreranno art_style, e alcune combinazioni potrebbero causare errori. Valori disponibili: realistic, sculpture.
enable_pbr deve essere impostato su false quando si usa lo stile Sculpture, poiché lo stile Sculpture genera il proprio set di mappe PBR.
Name
moderation
Type
boolean
predefinito false
Description
Quando impostato su true, il contenuto di input verrà automaticamente esaminato per individuare eventuali contenuti potenzialmente dannosi. Se viene rilevato contenuto dannoso, l'attività non procederà alla generazione.
Il testo di prompt verrà esaminato.
Name
target_formats
Type
string[]
Description
Specifica quali formati di file 3D includere nell'output. Verranno generati e restituiti solo i formati richiesti, il che può ridurre il tempo di completamento dell'attività. Se omesso, vengono inclusi tutti i formati supportati.
Valori disponibili: glb, obj, fbx, stl, usdz, 3mf
Se omesso, vengono generati tutti i formati eccetto 3mf. 3mf viene incluso solo quando specificato esplicitamente.
Name
alpha_thumbnail
Type
boolean
predefinito false
Description
Quando impostato su true, l'attività genera in aggiunta una versione con sfondo trasparente (RGBA) dell'anteprima e la restituisce come alpha_thumbnail_url nella risposta GET. Il campo thumbnail_url esistente rimane invariato.
Name
auto_size
Type
boolean
predefinito false
Description
Quando impostato su true, il servizio utilizza la visione artificiale per stimare automaticamente l'altezza reale dell'oggetto e ridimensionare il modello di conseguenza. L'origine sarà impostata su bottom per impostazione predefinita, a meno che origin_at non venga impostato esplicitamente.
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.
Restituisce
La proprietà result della risposta contiene l'id dell'attività dell'attività Testo in 3D appena creata.
Modalità di errore
Name
400 - Bad Request
Description
La richiesta non è stata accettata. Cause comuni:
Parametro mancante: manca un parametro richiesto (ad es. prompt, mode).
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. 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/v2/text-to-3d
# Simple preview with required params onlycurlhttps://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"}'# Preview with remesh and 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 refine per Testo in 3D, che applica una texture a una mesh di preview completata. È necessario fornire il preview_task_id ottenuto da un task di preview riuscito. Questo è il secondo passaggio del workflow in due fasi.
Parametri
Name
mode
Type
string
Obbligatorio
Description
Questo campo deve essere impostato su "refine" quando si crea un task di refine.
Name
preview_task_id
Type
string
Obbligatorio
Description
L'id del task di preview corrispondente.
Lo stato del task di preview specificato deve essere SUCCEEDED.
Name
enable_pbr
Type
boolean
predefinito false
Description
Genera mappe PBR (metallic, roughness, normal) oltre al colore base. Viene incluso anche un emission map quando ai_model è meshy-6, eccetto con texture_resolution: 8k (in questo caso non viene prodotto alcun emission map). meshy-7 (e latest) non produce un emission map.
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ù elevate catturano più dettagli superficiali. Si applica solo alla modalità refine.
4k e 8k richiedono ai_modelmeshy-6, meshy-7 o latest. Con 8k, non viene prodotto alcun emission map.
Name
hd_texture
Type
boolean
⚠ deprecato
predefinito false
Description
Usa texture_resolution invece di questo parametro — equivalente a texture_resolution: "4k". Quando entrambi sono impostati, texture_resolution ha la precedenza.
Name
texture_prompt
Type
string
Description
Fornisce un prompt testuale aggiuntivo per guidare il processo di texturing. Massimo 800 caratteri.
Name
texture_image_url
Type
string
Description
Fornisce un'immagine 2d per guidare il processo di texturing. Attualmente supportiamo i formati .jpg, .jpeg e .png.
Esistono due modi per fornire l'immagine:
URL pubblicamente accessibile: 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>
Il texturing basato su immagine potrebbe non funzionare in modo ottimale se ci sono differenze geometriche sostanziali tra l'asset originale e l'immagine caricata. Solo uno tra texture_image_url o texture_prompt può essere usato per guidare il processo di texturing. Se vengono forniti entrambi i parametri, verrà usato texture_prompt per applicare la texture al modello per impostazione predefinita.
Name
ai_model
Type
string
predefinito latest
Description
ID del modello da usare per il refine. Valori disponibili: meshy-5, meshy-6, meshy-7, latest (Meshy 7).
latest viene risolto qui esattamente come nel task di preview (attualmente Meshy 7), quindi una preview latest e il relativo refine latest utilizzano sempre lo stesso modello di texture.
Name
moderation
Type
boolean
predefinito false
Description
Quando impostato su true, il contenuto in input verrà automaticamente controllato per individuare eventuali contenuti potenzialmente dannosi. Se viene rilevato contenuto dannoso, il task non procederà con la generazione.
Verranno controllati sia il testo di texture_prompt che l'immagine di texture_image_url.
Name
remove_lighting
Type
boolean
predefinito true
Description
Rimuove luci e ombre dalla texture del colore base, producendo un risultato più uniforme che funziona meglio con configurazioni di illuminazione personalizzate.
Ha effetto solo quando ai_model è meshy-6. Su meshy-7 (e latest) il parametro viene accettato ma ignorato.
Name
target_formats
Type
string[]
Description
Specifica quali formati di file 3D includere nell'output. Verranno generati e restituiti solo i formati richiesti, il che può ridurre il tempo di completamento del task. Se omesso, vengono inclusi tutti i formati supportati.
Valori disponibili: glb, obj, fbx, stl, usdz, 3mf
Se omesso, vengono generati tutti i formati eccetto 3mf. 3mf viene incluso solo se specificato esplicitamente.
Name
alpha_thumbnail
Type
boolean
predefinito false
Description
Quando impostato su true, il task genera inoltre una versione con sfondo trasparente (RGBA) della preview e la restituisce come alpha_thumbnail_url nella risposta GET. Il campo thumbnail_url esistente rimane invariato.
Name
auto_size
Type
boolean
predefinito false
Description
Quando impostato su true, il servizio utilizza la visione artificiale per stimare automaticamente l'altezza reale dell'oggetto e ridimensionare il modello di conseguenza. L'origine sarà impostata per impostazione predefinita 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.
Valori restituiti
La proprietà result della risposta contiene l'id del task del nuovo task Testo in 3D creato.
Modalità di errore
Name
400 - Bad Request
Description
La richiesta non è stata accettata. Cause comuni:
ID task non valido: il preview_task_id non è valido o non esiste.
Task non pronto: il task di preview non è ancora andato a buon fine.
Modello non corrispondente: il modello AI del task di preview non è compatibile con il modello di refine richiesto.
Name
401 - Unauthorized
Description
Autenticazione non riuscita. Controlla la tua chiave API.
Name
402 - Payment Required
Description
Crediti insufficienti per eseguire questo task.
Name
404 - Not Found
Description
Il task di preview specificato da preview_task_id non è stato trovato.
Questo endpoint ti permette di recuperare un'attività di Testo in 3D dato un id valido dell'attività.
Consulta L'oggetto Attività di Testo in 3D per vedere quali
proprietà sono incluse con l'oggetto attività di Testo in 3D.
Questo endpoint funziona sia per le attività di anteprima che di raffinamento.
Parametri
Name
id
Type
path
Description
Identificatore univoco per l'attività di Testo in 3D da recuperare.
L'oggetto Task Testo in 3D è un'unità di lavoro che Meshy tiene traccia per generare un modello 3D da un input di 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 raffinamento è 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. 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 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 raffinamento.
Name
model_urls
Type
object
Description
URL scaricabile per il 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 per il file GLB.
Name
fbx
Type
string
Description
URL scaricabile per il file FBX.
Name
usdz
Type
string
Description
URL scaricabile per il file USDZ.
Name
obj
Type
string
Description
URL scaricabile per il file OBJ.
Name
mtl
Type
string
Description
URL scaricabile per il file MTL.
Name
stl
Type
string
Description
URL scaricabile per il file STL.
Name
3mf
Type
string
Description
URL scaricabile per il file 3MF. Presente solo 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
Lo 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 raffinamento.
Name
ultra_mode
Type
boolean
Description
Rispecchia il valore ultra_mode con cui è stato creato il task di anteprima. Presente solo per i task di anteprima meshy-7 (o latest) che hanno esplicitamente impostato ultra_mode; altrimenti omesso.
Name
texture_image_url
Type
string
Description
URL scaricabile per l'immagine della texture che è stata utilizzata per guidare il processo di texturizzazione.
Name
thumbnail_url
Type
string
Description
URL scaricabile per l'immagine in miniatura del file del modello.
Name
alpha_thumbnail_url
Type
string
Description
URL scaricabile per una versione a sfondo trasparente (RGBA) di thumbnail_url. Presente solo quando il task è stato creato con alpha_thumbnail: true e l'anteprima trasparente è stata renderizzata con successo; altrimenti questo campo è omesso.
Name
video_url
Type
string
⚠ deprecato
Description
URL scaricabile per il video di anteprima. Sarà rimosso in una versione futura.
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
started_at
Type
timestamp
Description
Timestamp di quando il task è stato avviato, in millisecondi. Se il task non è ancora iniziato, questa proprietà sarà 0.
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 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 di PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.
Name
texture_urls
Type
array
Description
Un array di oggetti URL di texture che sono generati dal task. Normalmente questo contiene solo uno oggetto URL di texture. Ogni URL di texture ha le seguenti proprietà:
Name
base_color
Type
string
Description
URL scaricabile per l'immagine della mappa del colore di base.
Name
metallic
Type
string
Description
URL scaricabile per l'immagine della mappa metallica.
Se il task è creato con enable_pbr: false, questa proprietà sarà omessa.
Name
normal
Type
string
Description
URL scaricabile per l'immagine della normal map.
Se il task è creato con enable_pbr: false, questa proprietà sarà omessa.
Name
roughness
Type
string
Description
URL scaricabile per l'immagine della mappa di rugosità.
Se il task è creato con enable_pbr: false, questa proprietà sarà omessa.
Name
emission
Type
string
Description
URL scaricabile per l'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 dell'errore 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}