A Retexture API é uma funcionalidade que lhe permite integrar as capacidades de retexturização por IA da Meshy na sua própria aplicação. Nesta secção, encontrará todas as informações
de que precisa para começar a utilizar esta API.
Este endpoint permite-lhe criar uma nova tarefa de Retexturizar. Consulte
O Objeto de Tarefa de Retexturizar para ver quais
propriedades estão incluídas no objeto de tarefa Retexturizar.
Parâmetros
Apenas um dos parâmetros input_task_id ou model_url é obrigatório. Se ambos forem fornecidos, input_task_id tem prioridade.
Name
input_task_id
Type
string
Obrigatório
Description
O ID da tarefa concluída de Imagem para 3D ou Texto para 3D que deseja retexturizar.
Esta tarefa deve ser uma das seguintes: Text to 3D Preview, Text to 3D Refine, Image to 3D ou Remesh. Além disso, deve ter o estado SUCCEEDED.
Name
model_url
Type
string
Obrigatório
Description
Forneça um modelo 3D para o Meshy texturizar. Formatos suportados: .glb, .gltf, .obj, .fbx, .stl.
Existem duas formas de fornecer o modelo:
URL publicamente acessível: Um URL que é acessível a partir da internet pública.
Data URI: Um data URI do modelo codificado em base64. Utilize o MIME type application/octet-stream. Exemplo: data:application/octet-stream;base64,<your base64-encoded model data>.
É obrigatório exatamente um input de estilo: text_style_prompt, image_style_url ou multiview_image_urls. multiview_image_urls não pode ser combinado com nenhum dos outros dois; se tanto text_style_prompt como image_style_url forem fornecidos, image_style_url tem prioridade.
Name
text_style_prompt
Type
string
Obrigatório
Description
Descreva o estilo de textura pretendido para o objeto utilizando texto. Máximo de 800 caracteres.
Name
image_style_url
Type
string
Obrigatório
Description
Forneça uma imagem 2D para orientar o processo de texturização. Atualmente suportamos os formatos .jpg, .jpeg e .png.
Existem duas formas de fornecer a imagem:
URL publicamente acessível: Um URL que é acessível a partir da internet pública
Data URI: Um data URI da imagem codificado em base64. Exemplo de um data URI: data:image/jpeg;base64,<your base64-encoded image data>
A texturização por imagem pode não funcionar de forma ótima se existirem diferenças substanciais de geometria entre o asset original e a imagem carregada.
Name
multiview_image_urls
Type
string[]
Obrigatório
Description
Forneça de 1 a 4 imagens que mostrem o mesmo objeto a partir de diferentes vistas para orientar a texturização. A primeira imagem é a vista principal (frontal); a ordem das restantes vistas (esquerda, traseira, direita) não importa.
Cada elemento aceita os mesmos formatos que image_style_url (um URL publicamente acessível ou um data URI em base64, .jpg/.jpeg/.png).
Requer um ai_model: "meshy-7" explícito.
Name
ai_model
Type
string
predefinição latest
Description
ID do modelo de IA a utilizar para a retexturização. Valores disponíveis: meshy-6-lite, meshy-6, meshy-7, latest (Meshy 7).
Name
enable_original_uv
Type
boolean
predefinição false
Description
Mantém a disposição UV existente do modelo em vez de gerar uma nova.
Se estiver a retexturizar um modelo que o Meshy gerou (através de input_task_id, ou de um model_url que aponte para um resultado do Meshy), defina como true para reutilizar a sua disposição UV otimizada.
Se estiver a retexturizar um modelo de terceiros que carregou, defina como true quando este já tiver boas UVs que deseja manter, ou deixe como false para permitir que o Meshy desdobre novas UVs (melhor opção para modelos sem um mapeamento UV adequado).
Name
enable_pbr
Type
boolean
predefinição false
Description
Gera mapas PBR (metálico, rugosidade, normal) além da cor base. Um mapa de emissão também é incluído quando ai_model é meshy-6, exceto em texture_resolution: 8k. meshy-6-lite, meshy-7 e latest não produzem mapa de emissão.
Name
texture_resolution
Type
string
predefinição 2k
Description
Resolução da textura de cor base. Uma de 2k (2048×2048), 4k (4096×4096) ou 8k (8192×8192). Resoluções mais elevadas captam mais detalhe de superfície.
4k e 8k requerem ai_modelmeshy-6, meshy-7 ou latest. Em 8k, não é produzido nenhum mapa de emissão.
Name
hd_texture
Type
boolean
⚠ obsoleto
predefinição false
Description
Utilize texture_resolution em vez deste — equivalente a texture_resolution: "4k". Quando ambos são definidos, texture_resolution tem precedência.
Name
remove_lighting
Type
boolean
predefinição true
Description
Remove realces e sombras da textura de cor base, produzindo um resultado mais limpo que funciona melhor em configurações de iluminação personalizadas.
Apenas suportado quando ai_model é meshy-6.
Name
target_formats
Type
string[]
Description
Especifica quais formatos de ficheiro 3D incluir no resultado. Apenas os formatos solicitados serão gerados e devolvidos, o que pode reduzir o tempo de conclusão da tarefa. Quando omitido, todos os formatos suportados são incluídos.
Quando omitido, são gerados todos os formatos exceto 3mf. O 3mf só é incluído quando especificado explicitamente.
Name
alpha_thumbnail
Type
boolean
predefinição false
Description
Quando definido como true, a tarefa gera adicionalmente uma versão com fundo transparente (RGBA) da pré-visualização e devolve-a como alpha_thumbnail_url na resposta GET. O campo existente thumbnail_url permanece inalterado.
Retornos
A propriedade result da resposta contém o id da tarefa da tarefa de Retexturizar recém-criada.
Modos de Falha
Name
400 - Bad Request
Description
O pedido foi inaceitável. Causas comuns:
Parâmetro em falta: É necessário fornecer model_url ou input_task_id.
Estilo em falta: É necessário fornecer um dos seguintes: text_style_prompt, image_style_url ou multiview_image_urls.
Inputs de estilo em conflito: multiview_image_urls não pode ser combinado com text_style_prompt ou image_style_url.
Modelo não suportado para multivista: multiview_image_urls requer um ai_model: "meshy-7" explícito.
Modelo não disponível: ai_model: "meshy-7" e ai_model: "meshy-6-lite" estão a ser disponibilizados progressivamente e podem ainda não estar ativados para a sua conta.
Tarefa de entrada inválida: O input_task_id deve referir-se a uma tarefa bem-sucedida de um modelo suportado.
Formato de modelo inválido: O model_url aponta para um ficheiro com uma extensão não suportada.
URL inacessível: Não foi possível transferir o model_url, image_style_url ou um elemento de multiview_image_urls.
Name
401 - Unauthorized
Description
Falha na autenticação. Verifique a sua chave de API.
Name
402 - Payment Required
Description
Créditos insuficientes para realizar esta tarefa.
Name
429 - Too Many Requests
Description
Excedeu o seu limite de taxa.
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 }'
Este endpoint permite obter uma tarefa de Retexturização a partir de um id de tarefa válido.
Consulte O Objeto de Tarefa de Retexturização para ver quais
propriedades estão incluídas no objeto de tarefa de Retexturização.
Parâmetros
Name
id
Type
path
Description
Identificador único da tarefa de Retexturização a obter.
{"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}
Este endpoint elimina permanentemente uma tarefa de retexturização, incluindo todos os modelos e dados associados. Esta ação é irreversível.
Parâmetros de Caminho
Name
id
Type
path
Description
O ID da tarefa de retexturização a eliminar.
Estado da Tarefa
Uma tarefa que ainda está PENDING é eliminada e os créditos consumidos no
momento da criação são reembolsados.
Uma tarefa que já está IN_PROGRESS não pode ser eliminada: o pedido é
rejeitado com 409 Conflict e a tarefa continua em execução. Os créditos de uma tarefa
que o worker já iniciou não são reembolsáveis, pelo que eliminá-la a meio da execução
faria com que perdesse tanto os créditos como o resultado. Aguarde que atinja
SUCCEEDED, FAILED ou CANCELED, e só depois a elimine.
Uma tarefa num estado terminal (SUCCEEDED, FAILED ou CANCELED) é eliminada
sem reembolso.
Retorna
Retorna 200 OK em caso de sucesso, ou 409 Conflict quando a tarefa está
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 }]
O objeto Retexture Task é uma unidade de trabalho que a Meshy utiliza para gerar uma textura 3D a partir de entradas de texto ou imagem.
O modelo tem as seguintes propriedades:
Propriedades
Name
id
Type
string
Description
Identificador único da tarefa. Embora utilizemos um UUID k-sortable para os ids de tarefa como
detalhe de implementação, não deve fazer quaisquer suposições sobre o formato do id.
Name
type
Type
string
Description
Tipo da tarefa Retexture. O valor é retexture.
Name
model_urls
Type
object
Description
URL para transferência do ficheiro do modelo 3D texturizado gerado pela Meshy.
Name
glb
Type
string
Description
URL para transferência do ficheiro GLB.
Name
fbx
Type
string
Description
URL para transferência do ficheiro FBX.
Name
obj
Type
string
Description
URL para transferência do ficheiro OBJ.
Name
usdz
Type
string
Description
URL para transferência do ficheiro USDZ.
Name
mtl
Type
string
Description
URL para transferência do ficheiro MTL, devolvido em conjunto com as exportações OBJ quando existem texturas.
Name
stl
Type
string
Description
URL para transferência do ficheiro STL.
Name
3mf
Type
string
Description
URL para transferência do ficheiro 3MF. Apenas presente quando 3mf foi solicitado através de target_formats.
Name
text_style_prompt
Type
string
Description
Este é o prompt de texto que foi utilizado para criar a tarefa de texturização.
Name
image_style_url
Type
string
Description
Esta é a imagem de entrada que foi utilizada para criar a tarefa de texturização.
Name
multiview_image_urls
Type
string[]
Description
URLs para transferência das imagens de referência de Multivista que foram utilizadas para criar a tarefa de texturização. Apenas presente quando a tarefa foi criada com multiview_image_urls.
Name
thumbnail_url
Type
string
Description
URL para transferência da imagem de miniatura do ficheiro do modelo.
Name
alpha_thumbnail_url
Type
string
Description
URL para transferência de uma versão com fundo transparente (RGBA) de thumbnail_url. Apenas presente quando a tarefa foi criada com alpha_thumbnail: true e a pré-visualização transparente foi renderizada com sucesso; caso contrário, este campo é omitido.
Name
progress
Type
integer
Description
Progresso da tarefa. Se a tarefa ainda não tiver começado, esta propriedade será 0. Assim que a tarefa for concluída com sucesso, tornar-se-á 100.
Name
started_at
Type
timestamp
Description
Carimbo de data/hora de quando a tarefa foi iniciada, em milissegundos. Se a tarefa ainda não tiver começado, esta propriedade será 0.
Um carimbo de data/hora representa o número de milissegundos decorridos desde 1 de janeiro de 1970 UTC, seguindo
a norma RFC 3339.
Por exemplo, sexta-feira, 1 de setembro de 2023, 12:00:00 GMT é representado como 1693569600000. Isto aplica-se
a todos os carimbos de data/hora na Meshy API.
Name
created_at
Type
timestamp
Description
Carimbo de data/hora de quando a tarefa foi criada, em milissegundos.
Name
expires_at
Type
timestamp
Description
Carimbo de data/hora de quando o resultado da tarefa expira, em milissegundos.
Name
finished_at
Type
timestamp
Description
Carimbo de data/hora de quando a tarefa foi concluída, em milissegundos. Se a tarefa ainda não tiver terminado, esta propriedade será 0.
Name
status
Type
string
Description
Estado da tarefa. Os valores possíveis são um de PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.
Name
texture_urls
Type
array
Description
Um array de objetos de URL de textura gerados pela tarefa. Normalmente, este contém apenas um objeto de URL de textura. Cada URL de textura tem as seguintes propriedades:
Name
base_color
Type
string
Description
URL para transferência da imagem do mapa de cor base.
Name
metallic
Type
string
Description
URL para transferência da imagem do mapa metálico.
Se a tarefa for criada com enable_pbr: false, esta propriedade será omitida.
Name
normal
Type
string
Description
URL para transferência da imagem do mapa de normais.
Se a tarefa for criada com enable_pbr: false, esta propriedade será omitida.
Name
roughness
Type
string
Description
URL para transferência da imagem do mapa de rugosidade.
Se a tarefa for criada com enable_pbr: false, esta propriedade será omitida.
Name
emission
Type
string
Description
URL para transferência da imagem do mapa de emissão.
Se a tarefa for criada com enable_pbr: false, ou se ai_model for meshy-6-lite, esta propriedade será omitida.
Name
preceding_tasks
Type
integer
Description
A contagem de tarefas precedentes.
Esta propriedade só está presente quando o estado da tarefa é PENDING.
Name
task_error
Type
object
Description
Detalhes do erro para tarefas falhadas. Consulte Erros para a referência completa do objeto task_error.
Name
consumed_credits
Type
integer
Description
O número de créditos consumidos por esta tarefa. Presente quando o estado da tarefa é PENDING, IN_PROGRESS ou SUCCEEDED. Devolve 0 para tarefas FAILED (os créditos são reembolsados em caso de falha).
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}