Transforme uma foto de origem em um medalhão de chaveiro imprimível em 3D — um
relevo de profundidade colorizado em formato de emblema — em duas etapas: o
prototype gera uma imagem conceitual colorizada a partir da sua foto de
entrada e, em seguida, o build transforma essa imagem conceitual em um
modelo 3D em relevo. As duas etapas são vinculadas por meio de input_task_id.
Gera uma única imagem conceitual colorizada a partir da foto de origem. O
ID da tarefa retornado é o que você passa como input_task_id para o
endpoint de build. Consulte
The Keychain Prototype Task Object
para o formato da resposta.
Parâmetros
Name
image_url
Type
string
Obrigatório
Description
Foto de origem para o Meshy colorizar em uma imagem conceitual pronta para chaveiro. Atualmente oferecemos suporte aos formatos .jpg, .jpeg, .png e .webp.
Há duas maneiras de fornecer a imagem:
URL publicamente acessível: uma URL que é acessível pela internet pública.
Data URI: um Data URI da imagem codificado em base64. Exemplo de Data URI: data:image/jpeg;base64,<seus dados de imagem codificados em base64>.
Name
name
Type
string
Description
Nome opcional da tarefa para fins de exibição. Máximo de 100 caracteres.
Isso rotula a tarefa em seu painel e nas listas de tarefas. Ele não é gravado no chaveiro — use name_text para isso.
Name
name_text
Type
string
Description
Texto a ser gravado no chaveiro, como o nome de um pet ou de uma pessoa. Máximo de 10 caracteres, contados como caracteres Unicode em vez de bytes, então um nome de 10 caracteres em chinês, japonês ou coreano é aceito. Omita-o para produzir um chaveiro sem gravação.
Espaços em branco ao redor são removidos e caracteres de formatação invisíveis são eliminados antes que o texto seja usado. O valor resultante é retornado como name_text no objeto de tarefa de protótipo, para que você possa confirmar exatamente o que será gravado antes de pagar pela etapa de build.
A gravação é aplicada aqui, na etapa de protótipo. A etapa de build a herda automaticamente e não aceita um name_text próprio.
Quando o texto não é ASCII simples, envie o corpo da requisição como UTF-8 e defina Content-Type: application/json; charset=utf-8. Alguns clientes HTTP — entre eles o Invoke-RestMethod do Windows PowerShell — codificam o corpo como ISO-8859-1 por padrão, o que transforma silenciosamente cada caractere não latino em ? antes de chegar ao Meshy. A API não consegue distinguir isso de uma gravação que você realmente solicitou.
Name
remove_background
Type
boolean
padrão false
Description
Quando definido como true, a imagem de protótipo é retornada como um PNG RGBA transparente com o fundo removido, para que você possa compor o assunto sobre qualquer fundo.
Isso controla apenas a imagem retornada por este endpoint. É separado da opção de build de mesmo nome (padrão true), que controla a remoção de fundo antes do relevo.
Retornos
A propriedade result da resposta contém o id da tarefa da tarefa de protótipo de chaveiro recém-criada. Consulte periodicamente o endpoint Get a Task ou inscreva-se no stream até que a tarefa atinja SUCCEEDED, e então passe esse ID para o endpoint de build como input_task_id.
Modos de Falha
Name
400 - Bad Request
Description
A requisição era inaceitável. Causas comuns:
Parâmetro ausente: image_url é obrigatório.
Formato de imagem inválido: o image_url fornecido não está em um formato suportado (.jpg, .jpeg, .png, .webp).
Dimensões da imagem fora do intervalo: a imagem é muito pequena, excede o tamanho máximo de arquivo ou excede a contagem máxima de pixels.
URL inacessível: não foi possível baixar o image_url (404 ou timeout).
Data URI inválido: a string base64 está malformada.
Gravação muito longa: name_text tem mais de 10 caracteres. A requisição é rejeitada em vez de truncada, então você nunca é cobrado por um chaveiro gravado com um nome encurtado.
Conteúdo sinalizado: a imagem de entrada foi sinalizada pela moderation de NSFW ou de propriedade intelectual, ou a gravação name_text foi sinalizada pela moderation de NSFW. A gravação é analisada apenas quanto a conteúdo NSFW — a análise de propriedade intelectual se aplica à imagem.
Name
401 - Unauthorized
Description
A autenticação falhou. Verifique sua chave de API.
Name
402 - Payment Required
Description
Créditos insuficientes para realizar esta tarefa.
Name
429 - Too Many Requests
Description
Você excedeu seu limite de taxa.
Request
POST
/openapi/creative-lab/keychain/v1/prototype
# Stage 1: generate a colorized keychain concept imagecurlhttps://api.meshy.ai/openapi/creative-lab/keychain/v1/prototype \-XPOST \-H"Authorization: Bearer ${YOUR_API_KEY}" \-H'Content-Type: application/json; charset=utf-8' \-d'{ "image_url": "<your publicly accessible image url or base64-encoded data URI>", "name_text": "Luna" }'
Response
{"result":"018a210d-8ba4-705c-b111-1f1776f7f578"}
Prototype example
Start with a source photo, then generate the prototype image used by the keychain build stage.
Gere o medalhão de chaveiro final pronto para impressão 3D a partir de uma tarefa de protótipo bem-sucedida. O build executa um pipeline de relevo por mapa de profundidade sobre a imagem conceitual colorizada do protótipo e entrega um único artefato de malha no formato solicitado. Consulte
O Objeto de Tarefa de Build do Keychain para conhecer o formato da resposta.
Parâmetros
Name
input_task_id
Type
string
Obrigatório
Description
O ID de tarefa de uma tarefa de protótipo criada por meio deste mesmo endpoint OpenAPI. O protótipo deve ter sido criado com a mesma chave de API, deve ter atingido SUCCEEDED e deve ter produzido exatamente uma imagem candidata.
Tarefas de protótipo criadas por meio do webapp não são aceitas — o endpoint de build aceita apenas tarefas de protótipo produzidas por POST /openapi/creative-lab/keychain/v1/prototype e recusa qualquer outra origem com 404.
Name
name
Type
string
Description
Nome opcional da tarefa para fins de exibição. Máximo de 100 caracteres.
options
Parâmetros de ajuste opcionais para a geometria do relevo. Todo campo possui um valor padrão sensato — envie apenas os que você deseja sobrescrever.
Name
badge_shape
Type
string
padrão circle
Description
Silhueta do contorno do medalhão do chaveiro. Valores disponíveis:
circle (padrão)
rounded-rect
hexagon
shield
star
Name
size_mm
Type
number
padrão 40
Description
Comprimento da aresta do quadrado delimitador do chaveiro, em milímetros. Intervalo: (0, 400].
Name
relief_height_mm
Type
number
padrão 2.2
Description
Altura máxima do relevo acima da base, em milímetros. Intervalo: [0, 20].
Name
relief_offset_mm
Type
number
padrão 0
Description
Deslocamento vertical aplicado ao relevo antes da extrusão, em milímetros. Intervalo: [0, 20].
Name
base_thickness_mm
Type
number
padrão 0.1
Description
Espessura da placa de base plana atrás do relevo, em milímetros. Intervalo: [0, 20].
Name
has_closed_back
Type
boolean
padrão true
Description
Define se a parte de trás do medalhão é vedada como uma superfície fechada. Defina como false para um shell aberto.
Name
relief_curve
Type
string
padrão linear
Description
Curva de transferência que mapeia os valores do mapa de profundidade para a altura do relevo. Valores disponíveis:
linear (padrão)
gamma
s-curve
Name
curve_param
Type
number
padrão 1.0
Description
Parâmetro de forma para a curva de transferência (relevante apenas quando relief_curve é gamma). Intervalo: (0, 10].
Name
invert_depth
Type
boolean
padrão false
Description
Inverte a interpretação do mapa de profundidade, de modo que regiões mais escuras se tornem relevo mais alto.
Name
smoothing
Type
number
padrão 0.24
Description
Intensidade de suavização aplicada ao mapa de profundidade antes da extração do relevo. Intervalo: [0, 10].
Name
relief_scale
Type
number
padrão 1.0
Description
Multiplicador de escala vertical aplicado sobre relief_height_mm. Intervalo: (0, 10].
Name
depth_threshold
Type
number
padrão 0.1
Description
Limiar de corte para valores do mapa de profundidade; qualquer valor abaixo dele é fixado em zero. Intervalo: [0, 1].
Name
remove_background
Type
boolean
padrão true
Description
Remove automaticamente o plano de fundo da imagem conceitual do protótipo antes de aplicar o relevo.
Independente do parâmetro de mesmo nome do protótipo (padrão false), que controla se a própria imagem do protótipo é retornada com transparência.
Name
export_resolution
Type
integer
padrão 512
Description
Resolução da malha usada para exportação. Intervalo: [64, 2048].
output
Seletor opcional de formato de saída. O padrão é glb.
Name
format
Type
string
padrão glb
Description
Pacote de artefato retornado pelo build. Valores disponíveis:
glb (padrão) — retorna um único model.glb em model_urls.glb.
obj — compacta model.obj + model.mtl + texture.png e retorna o pacote em model_urls.obj.
zip — compacta todos os artefatos emitidos pelo gerador e retorna o pacote em model_urls.bundle_zip.
Retornos
A propriedade result da resposta contém o id da tarefa da nova tarefa de build do chaveiro criada. Consulte o endpoint Get a Task periodicamente ou inscreva-se no stream até que a tarefa atinja SUCCEEDED e, em seguida, baixe o artefato da entrada única em model_urls.
Modos de Falha
Name
400 - Bad Request
Description
A solicitação era inaceitável. Causas comuns:
Parâmetro ausente: input_task_id é obrigatório.
UUID inválido: input_task_id não é um UUID válido.
Tarefa pai não concluída com sucesso: A tarefa de protótipo referenciada ainda não atingiu SUCCEEDED.
Nenhum candidato: A tarefa de protótipo foi bem-sucedida, mas não produziu nenhuma imagem candidata.
Opções fora do intervalo: Um dos campos de options ficou fora do intervalo permitido ou do conjunto de valores enumerados.
Name
401 - Unauthorized
Description
Falha na autenticação. Verifique sua chave de API.
Name
402 - Payment Required
Description
Créditos insuficientes para realizar esta tarefa.
Name
404 - Not Found
Description
A tarefa de protótipo referenciada não existe, pertence a outro usuário ou foi criada por meio do webapp (apenas tarefas de protótipo em modo API podem ser encadeadas em um build).
Recupera uma tarefa de protótipo ou de build a partir de um id de tarefa válido. O caminho da URL
deve corresponder ao estágio da tarefa — uma tarefa de build buscada por meio de
/prototype/:id retorna 404, e vice-versa.
Cancela uma tarefa de chaveiro. Se a tarefa ainda estiver PENDING, os
créditos consumidos no momento da criação são reembolsados. Tarefas que já
estão IN_PROGRESS são canceladas sem reembolso (o worker já pode estar
consumindo recursos). Tarefas que já atingiram um estado terminal
(SUCCEEDED, FAILED, CANCELED) não podem ser canceladas.
O caminho da URL deve corresponder ao estágio da tarefa — DELETE em
/prototype/:buildId retorna 404.
Parâmetros de Caminho
Name
id
Type
path
Description
Identificador único da tarefa de chaveiro a ser cancelada.
Retornos
Retorna 204 No Content em caso de sucesso, com um corpo vazio.
Modos de Falha
Name
400 - Bad Request
Description
A tarefa já está em um estado terminal e não pode ser cancelada.
Name
404 - Not Found
Description
A tarefa não existe, pertence a um usuário diferente, ou seu estágio não corresponde ao caminho da URL.
Transmita atualizações em tempo real de uma tarefa do chaveiro via Server-Sent Events (SSE).
O caminho da URL deve corresponder ao estágio da tarefa — abrir um stream em
/prototype/:buildId/stream emite um único payload de event: error com
status_code: 404 e encerra o stream.
Parâmetros
Name
id
Type
path
Description
Identificador único da tarefa do chaveiro a ser transmitida.
Retornos
Retorna um stream de objetos de tarefa Keychain Prototype
ou Keychain Build como
Server-Sent Events. Cada frame carrega o objeto de tarefa completo referente ao estágio — o mesmo formato que o
endpoint Get retorna — então, enquanto a tarefa está PENDING ou IN_PROGRESS, os
campos de saída simplesmente ainda não estão preenchidos (null, [] ou {}) 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": "019c320e-9a8f-7a1c-9c11-2a1876f8a9bb","progress": 0,"status": "PENDING"}event: messagedata: {"id": "019c320e-9a8f-7a1c-9c11-2a1876f8a9bb","type": "creative-lab-keychain-build","status": "SUCCEEDED","progress": 100,"created_at": 1729123500000,"started_at": 1729123510000,"finished_at": 1729123535000,"expires_at": 1729382735000,"task_error": null,"consumed_credits": 20,"model_urls": {"glb":"https://assets.meshy.ai/***/tasks/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/output/model.glb?Expires=***" }}
Recupere uma lista paginada das suas tarefas de chaveiro para um único estágio. O caminho da
URL seleciona o estágio — /prototype retorna tarefas de prototype; /build
retorna tarefas de build. As tarefas do outro estágio não são incluídas em nenhuma das
respostas.
Parâmetros de Caminho
Name
stage
Type
path
Obrigatório
Description
prototype ou build. A coleção retorna apenas tarefas
cujo estágio corresponde à URL — buscar em /prototype nunca retorna
tarefas de build e vice-versa.
Parâmetros de Consulta
Name
page_num
Type
integer
padrão 1
Description
Número da página para paginação.
Name
page_size
Type
integer
padrão 10
Description
Limite de tamanho da página. O máximo permitido é 100 itens.
Name
sort_by
Type
string
padrão -created_at
Description
Campo para ordenação. Valores disponíveis:
+created_at: Ordenar pelo horário de criação em ordem crescente.
-created_at: Ordenar pelo horário de criação em ordem decrescente.
O objeto Keychain Prototype Task é uma unidade de trabalho que a Meshy monitora para
gerar uma imagem conceitual colorizada a partir de uma foto de origem. A saída
dessa etapa é encadeada com a etapa de build
por meio de input_task_id.
Propriedades
Name
id
Type
string
Description
Identificador único da tarefa. Embora usemos um UUID k-sortable para os ids das tarefas como detalhe de implementação, você não deve fazer suposições sobre o formato do id.
Name
type
Type
string
Description
Tipo da tarefa. O valor é creative-lab-keychain-prototype.
Name
name
Type
string
Description
O nome da tarefa fornecido no momento da criação. String vazia se nenhum nome foi fornecido.
Name
name_text
Type
string
Description
A gravação aplicada a este chaveiro, após remover espaços e caracteres de formatação invisíveis. Ausente quando a tarefa foi criada sem name_text. Compare-o com o que você enviou para confirmar que o texto sobreviveu à codificação do seu cliente HTTP.
Name
status
Type
string
Description
Status da tarefa. Os valores possíveis são PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.
Name
progress
Type
integer
Description
Progresso da tarefa. Se a tarefa ainda não foi iniciada, esta propriedade será 0. Assim que a tarefa for concluída com sucesso, ela se tornará 100.
Name
created_at
Type
timestamp
Description
Carimbo de data/hora de quando a tarefa foi criada, em milissegundos.
Um carimbo de data/hora representa o número de milissegundos decorridos desde 1º de janeiro de 1970 UTC, seguindo
o padrão RFC 3339.
Por exemplo, sexta-feira, 1º de setembro de 2023, 12:00:00 GMT é representado como 1693569600000. Isso se aplica
a todos os carimbos de data/hora na Meshy API.
Name
started_at
Type
timestamp
Description
Carimbo de data/hora de quando a tarefa foi iniciada, em milissegundos. Se a tarefa ainda não foi iniciada, esta propriedade será 0.
Name
finished_at
Type
timestamp
Description
Carimbo de data/hora de quando a tarefa foi finalizada, em milissegundos. Se a tarefa ainda não foi finalizada, esta propriedade será 0.
Name
expires_at
Type
timestamp
Description
Carimbo de data/hora de quando o resultado da tarefa expira, em milissegundos.
Name
preceding_tasks
Type
integer
Description
A contagem de tarefas precedentes.
O valor deste campo só é significativo se o status da tarefa for PENDING.
Name
task_error
Type
object
Description
Detalhes de erro para tarefas com falha. 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 status da tarefa é PENDING, IN_PROGRESS ou SUCCEEDED. Retorna 0 para tarefas FAILED (os créditos são reembolsados em caso de falha).
Name
image_urls
Type
array of strings
Description
URLs para download das candidatas a imagem conceitual geradas por esta tarefa de protótipo. Atualmente a API sempre retorna exatamente uma candidata; o campo é um array para que revisões futuras possam apresentar múltiplas candidatas sem uma alteração que quebre a compatibilidade.
O objeto Keychain Build Task é uma unidade de trabalho que a Meshy rastreia para
gerar a malha 3D final do chaveiro a partir de uma tarefa de protótipo bem-sucedida. O
build executa um pipeline de relevo de mapa de profundidade na imagem conceitual do protótipo e
publica um único artefato de malha no formato solicitado pelo chamador.
Propriedades
Name
id
Type
string
Description
Identificador único da tarefa.
Name
type
Type
string
Description
Tipo da tarefa. O valor é creative-lab-keychain-build.
Name
name
Type
string
Description
O nome da tarefa fornecido no momento da criação. String vazia se nenhum nome foi fornecido.
Name
status
Type
string
Description
Status da tarefa. Os valores possíveis são PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.
Name
progress
Type
integer
Description
Progress da tarefa. Se a tarefa ainda não foi iniciada, esta propriedade será 0. Quando a tarefa for bem-sucedida, isso se tornará 100.
Name
created_at
Type
timestamp
Description
Carimbo de data/hora de quando a tarefa foi criada, em milissegundos.
Name
started_at
Type
timestamp
Description
Carimbo de data/hora de quando a tarefa foi iniciada, em milissegundos.
Name
finished_at
Type
timestamp
Description
Carimbo de data/hora de quando a tarefa foi finalizada, em milissegundos.
Name
expires_at
Type
timestamp
Description
Carimbo de data/hora de quando o resultado da tarefa expira, em milissegundos.
Name
preceding_tasks
Type
integer
Description
A contagem de tarefas precedentes. Significativo apenas quando o status é PENDING.
Name
task_error
Type
object
Description
Detalhes do erro para tarefas com falha. 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. Retorna 0 para tarefas FAILED (os créditos são reembolsados em caso de falha).
Name
model_urls
Type
object
Description
URLs para download do artefato gerado, indexadas pelo nome do artefato. Sempre contém exatamente uma entrada — o formato solicitado por meio do output.format da requisição de build. A chave corresponde ao formato solicitado:
Name
glb
Type
string
Description
URL para download do arquivo GLB. Presente quando output.format era glb (o padrão).
Name
obj
Type
string
Description
URL para download de um pacote zip contendo model.obj, model.mtl e texture.png. Presente quando output.format era obj.
Name
bundle_zip
Type
string
Description
URL para download de um pacote zip com todos os artefatos que o gerador produz. Presente quando output.format era zip.