Retexture API è una funzionalità che consente di integrare le capacità di retexturing basate sull'IA di Meshy nella propria applicazione. In questa sezione troverai tutte le informazioni
necessarie per iniziare a utilizzare questa API.
Questo endpoint consente di creare una nuova attività di Retexture. Fai riferimento a
The Retexture Task Object per vedere quali
proprietà sono incluse nell'oggetto attività Retexture.
Parametri
È richiesto solo uno tra input_task_id o model_url. Se vengono forniti entrambi, input_task_id ha la priorità.
Name
input_task_id
Type
string
Obbligatorio
Description
L'ID dell'attività Immagine in 3D o Testo in 3D completata che desideri retexturizzare.
Questa attività deve essere una delle seguenti: Testo in 3D Preview, Testo in 3D Refine, Immagine in 3D o Remesh. Inoltre, deve avere uno stato SUCCEEDED.
Name
model_url
Type
string
Obbligatorio
Description
Fornisci un modello 3D che Meshy dovrà texturizzare. Formati supportati: .glb, .gltf, .obj, .fbx, .stl.
Ci sono due modi per fornire il modello:
URL pubblicamente accessibile: un URL accessibile da internet pubblicamente.
Data URI: un data URI del modello codificato in base64. Usa il MIME type application/octet-stream. Esempio: data:application/octet-stream;base64,<i tuoi dati del modello codificati in base64>.
È richiesto esattamente un input di stile: text_style_prompt, image_style_url o multiview_image_urls. multiview_image_urls non può essere combinato con nessuno degli altri due; se vengono forniti sia text_style_prompt che image_style_url, image_style_url ha la priorità.
Name
text_style_prompt
Type
string
Obbligatorio
Description
Descrivi lo stile di texture desiderato per l'oggetto usando il testo. Massimo 800 caratteri.
Name
image_style_url
Type
string
Obbligatorio
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 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 dell'immagine codificati in base64>
La texturizzazione basata su immagine potrebbe non funzionare in modo ottimale se ci sono differenze geometriche sostanziali tra l'asset originale e l'immagine caricata.
Name
multiview_image_urls
Type
string[]
Obbligatorio
Description
Fornisci da 1 a 4 immagini che mostrano lo stesso oggetto da diverse angolazioni per guidare la texturizzazione. La prima immagine è la vista principale (frontale); l'ordine delle viste rimanenti (sinistra, retro, destra) non conta.
Ogni elemento accetta gli stessi formati di image_style_url (un URL pubblicamente accessibile o un data URI in base64, .jpg/.jpeg/.png).
Richiede un ai_model: "meshy-7" esplicito.
Name
ai_model
Type
string
predefinito latest
Description
ID del modello AI da usare per la retexturizzazione. Valori disponibili: meshy-6-lite, meshy-6, meshy-7, latest (Meshy 7).
Name
enable_original_uv
Type
boolean
predefinito false
Description
Mantieni il layout UV esistente del modello invece di generarne uno nuovo.
Se stai retexturizzando un modello generato da Meshy (tramite input_task_id, o un model_url che punta a un output di Meshy), imposta questo su true per riutilizzare il suo layout UV ottimizzato.
Se stai retexturizzando un modello di terze parti che hai caricato, imposta true quando ha già buoni UV che desideri mantenere, oppure lascialo su false per lasciare che Meshy generi nuovi UV (ideale per modelli privi di una corretta mappatura UV).
Name
enable_pbr
Type
boolean
predefinito false
Description
Genera mappe PBR (metallic, roughness, normal) oltre al colore base. Una mappa di emissione è inclusa anche quando ai_model è meshy-6, tranne quando texture_resolution: 8k. meshy-6-lite, meshy-7 e latest non producono una mappa di emissione.
Name
texture_resolution
Type
string
predefinito 2k
Description
Risoluzione della texture del colore base. Una tra 2k (2048×2048), 4k (4096×4096) o 8k (8192×8192). Risoluzioni più elevate catturano più dettagli della superficie.
4k e 8k richiedono ai_modelmeshy-6, meshy-7 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
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 con impostazioni di illuminazione personalizzate.
Supportato solo quando ai_model è meshy-6.
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, sono inclusi tutti i formati supportati.
Valori disponibili: glb, obj, fbx, stl, usdz, 3mf
Se omesso, vengono generati tutti i formati tranne 3mf. 3mf viene incluso solo quando specificato esplicitamente.
Name
alpha_thumbnail
Type
boolean
predefinito false
Description
Quando impostato su true, l'attività renderizza inoltre una versione con sfondo trasparente (RGBA) dell'anteprima e la restituisce come alpha_thumbnail_url nella risposta GET. Il campo esistente thumbnail_url rimane invariato.
Restituisce
La proprietà result della risposta contiene l'id dell'attività Retexture appena creata.
Modalità di errore
Name
400 - Bad Request
Description
La richiesta non era accettabile. Cause comuni:
Parametro mancante: deve essere fornito model_url oppure input_task_id.
Stile mancante: deve essere fornito uno tra text_style_prompt, image_style_url o multiview_image_urls.
Input di stile in conflitto: multiview_image_urls non può essere combinato con text_style_prompt o image_style_url.
Modello non supportato per multi-vista: multiview_image_urls richiede un ai_model: "meshy-7" esplicito.
Modello non disponibile: ai_model: "meshy-7" e ai_model: "meshy-6-lite" vengono distribuiti progressivamente e potrebbero non essere ancora abilitati per il tuo account.
Attività di input non valida: input_task_id deve fare riferimento a un'attività riuscita di un modello supportato.
Formato del modello non valido: model_url punta a un file con un'estensione non supportata.
URL non raggiungibile: non è stato possibile scaricare model_url, image_style_url o un elemento di multiview_image_urls.
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/v1/retexture
# Retexture with text promptcurlhttps://api.meshy.ai/openapi/v1/retexture \-H"Authorization: Bearer ${YOUR_API_KEY}" \-H'Content-Type: application/json' \-d'{ "model_url": "https://cdn.meshy.ai/model/example_model_2.glb", "text_style_prompt": "red fangs, Samurai outfit that fused with japanese batik style", "enable_original_uv": true, "enable_pbr": true }'# Retexture with image style and PBRcurlhttps://api.meshy.ai/openapi/v1/retexture \-H"Authorization: Bearer ${YOUR_API_KEY}" \-H'Content-Type: application/json' \-d'{ "model_url": "https://cdn.meshy.ai/model/example_model_2.glb", "image_style_url": "https://cdn.meshy.ai/image/example_image.jpg", "ai_model": "latest", "enable_pbr": true, "enable_original_uv": true }'
Questo endpoint consente di recuperare un task di Retexture dato un id di task valido.
Consulta L'oggetto task Retexture per vedere quali
proprietà sono incluse nell'oggetto task Retexture.
Parametri
Name
id
Type
path
Description
Identificatore univoco del task di Retexture da recuperare.
Risultati restituiti
La risposta contiene l'oggetto task Retexture. Consulta la sezione
L'oggetto task Retexture per i dettagli.
{"id":"018a210d-8ba4-705c-b111-1f1776f7f578","type":"retexture","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=***","obj":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.obj?Expires=***","usdz":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.usdz?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=***" },"thumbnail_url":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview.png?Expires=***","text_style_prompt":"red fangs, Samurai outfit that fused with japanese batik style","texture_image_url":"","progress":100,"started_at":1692771667037,"created_at":1692771650657,"expires_at":1692771679037,"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" } ],"task_error": {"message":"" },"consumed_credits":10}
Questo endpoint elimina permanentemente un'attività di retexture, inclusi tutti i modelli e i dati associati. Questa azione è irreversibile.
Parametri del percorso
Name
id
Type
path
Description
L'ID dell'attività di retexture da eliminare.
Stato dell'attività
Un'attività ancora PENDING viene eliminata e i crediti consumati al
momento della creazione vengono rimborsati.
Un'attività già IN_PROGRESS non può essere eliminata: la richiesta viene
rifiutata con 409 Conflict e l'attività continua a essere eseguita. I crediti per un'attività
che il worker ha già avviato non sono rimborsabili, quindi eliminarla a metà esecuzione
ti costerebbe sia i crediti che il risultato. Attendi che raggiunga lo stato
SUCCEEDED, FAILED o CANCELED, quindi eliminala.
Un'attività in uno stato terminale (SUCCEEDED, FAILED o CANCELED) viene eliminata
senza rimborso.
Restituisce
Restituisce 200 OK in caso di successo, oppure 409 Conflict quando l'attività è
IN_PROGRESS.
// 200 OK on success, with an empty body.//// 409 Conflict when the task is IN_PROGRESS — the task is left running:{"message":"Task is IN_PROGRESS and cannot be deleted. Credits for a task the worker has already started are not refundable; wait for it to reach SUCCEEDED, FAILED or CANCELED, then delete it."}
[ {"id":"018a210d-8ba4-705c-b111-1f1776f7f578","type":"retexture","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=***" },"thumbnail_url":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview.png?Expires=***","text_style_prompt":"red fangs, Samurai outfit that fused with japanese batik style","progress":100,"started_at":1692771667037,"created_at":1692771650657,"expires_at":1692771679037,"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":10 }]
L'oggetto Retexture Task è un'unità di lavoro che Meshy utilizza per generare una texture 3D a partire da input testuali o di immagine.
Il modello presenta le seguenti proprietà:
Proprietà
Name
id
Type
string
Description
Identificatore univoco del task. Sebbene come dettaglio implementativo utilizziamo un UUID k-sortable per gli id dei task, non dovresti fare alcuna assunzione sul formato dell'id.
Name
type
Type
string
Description
Tipo del task Retexture. Il valore è retexture.
Name
model_urls
Type
object
Description
URL scaricabile del file del modello 3D con texture generato da Meshy.
Name
glb
Type
string
Description
URL scaricabile del file GLB.
Name
fbx
Type
string
Description
URL scaricabile del file FBX.
Name
obj
Type
string
Description
URL scaricabile del file OBJ.
Name
usdz
Type
string
Description
URL scaricabile del file USDZ.
Name
mtl
Type
string
Description
URL scaricabile del file MTL, restituito insieme alle esportazioni OBJ quando sono presenti texture.
Name
stl
Type
string
Description
URL scaricabile del file STL.
Name
3mf
Type
string
Description
URL scaricabile del file 3MF. Presente solo quando 3mf è stato richiesto tramite target_formats.
Name
text_style_prompt
Type
string
Description
Questo è il prompt di testo che è stato utilizzato per creare il task di texturing.
Name
image_style_url
Type
string
Description
Questo è l'input immagine che è stato utilizzato per creare il task di texturing.
Name
multiview_image_urls
Type
string[]
Description
URL scaricabili delle immagini di riferimento multi-vista che sono state utilizzate per creare il task di texturing. Presente solo quando il task è stato creato con multiview_image_urls.
Name
thumbnail_url
Type
string
Description
URL scaricabile dell'immagine di miniatura del file del modello.
Name
alpha_thumbnail_url
Type
string
Description
URL scaricabile di una versione con 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 viene omesso.
Name
progress
Type
integer
Description
Progresso del task. Se il task non è ancora iniziato, questa proprietà sarà 0. Una volta che il task è andato a buon fine, 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 nella Meshy API.
Name
created_at
Type
timestamp
Description
Timestamp di quando il task è stato creato, in millisecondi.
Name
expires_at
Type
timestamp
Description
Timestamp di quando il risultato del task scade, in millisecondi.
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
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 di texture generati dal task. Normalmente questo contiene un solo oggetto URL di texture. Ogni URL di texture ha le seguenti proprietà:
Name
base_color
Type
string
Description
URL scaricabile dell'immagine della mappa del colore base.
Name
metallic
Type
string
Description
URL scaricabile dell'immagine della mappa metallica.
Se il task è creato con enable_pbr: false, questa proprietà verrà omessa.
Name
normal
Type
string
Description
URL scaricabile dell'immagine della normal map.
Se il task è creato con enable_pbr: false, questa proprietà verrà omessa.
Name
roughness
Type
string
Description
URL scaricabile dell'immagine della mappa di rugosità.
Se il task è creato con enable_pbr: false, questa proprietà verrà omessa.
Name
emission
Type
string
Description
URL scaricabile dell'immagine della mappa di emissione.
Se il task è creato con enable_pbr: false, oppure ai_model è meshy-6-lite, questa proprietà verrà omessa.
Name
preceding_tasks
Type
integer
Description
Il conteggio dei task precedenti.
Questa proprietà è presente solo quando lo stato del task è PENDING.
Name
task_error
Type
object
Description
Dettagli dell'errore per i task falliti. Consulta 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).
Example Retexture Task Model
{"id":"018a210d-8ba4-705c-b111-1f1776f7f578","type":"retexture","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=***" },"text_style_prompt":"red fangs, Samurai outfit that fused with japanese batik style","image_style_url":"https://assets.meshy.ai/***/image/example_image.jpg?Expires=***","thumbnail_url":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview.png?Expires=***","progress":100,"started_at":1692771667037,"created_at":1692771650657,"expires_at":1692771679037,"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":10}