Transforme uma foto de origem num quebra-luz de candeeiro imprimível em 3D em duas fases:
prototype gera uma imagem concetual estilizada em branco fosco e transforma-a numa
malha 3D oca (GLB), depois build executa o processador de candeeiro sobre esse modelo
para produzir as peças imprimíveis em STL — um quebra-luz com a base aberta e uma placa
de base para a fixação da fonte de luz, mais o próprio suporte de fixação. As duas fases estão
ligadas através de input_task_id.
Gere uma única imagem de conceito branco-fosco a partir de uma foto de referência e
converta-a num modelo 3D oco de abajur. A resposta contém tanto a imagem de
conceito (image_urls) como o modelo 3D (model_urls.glb com um
thumbnail_url). O ID da tarefa devolvido é o que passa como input_task_id
para o endpoint de build. Consulte
O Objeto de Tarefa de Protótipo de Candeeiro
para conhecer a estrutura da resposta.
Parâmetros
Name
image_url
Type
string
Obrigatório
Description
Foto de origem que a Meshy utiliza como referência visual para o abajur. Atualmente suportamos os formatos .jpg, .jpeg, .png e .webp.
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>.
Name
image_subject
Type
string
predefinição character
Description
Indicação da categoria do sujeito que seleciona o prompt de stylization. Valores disponíveis:
character (predefinido) — sujeito único de personagem/objeto (figura, animal, mascote, etc.).
landscape — sujeito de cena exterior/panorama (montanha, paisagem urbana, floresta, etc.).
Name
name
Type
string
Description
Nome de tarefa opcional para fins de apresentação. Máximo de 100 carateres.
Name
remove_background
Type
boolean
predefinição false
Description
Quando definido como true, a imagem do protótipo é devolvida como um PNG RGBA transparente com o fundo removido, para que possa compor o sujeito sobre qualquer fundo.
Devolve
A propriedade result da resposta contém o id da tarefa da tarefa de protótipo de candeeiro recém-criada. Faça polling ao endpoint Obter uma Tarefa ou subscreva o stream até a tarefa atingir SUCCEEDED, e depois passe esse ID para o endpoint de build como input_task_id.
Modos de Falha
Name
400 - Bad Request
Description
O pedido foi inaceitável. Causas comuns:
Parâmetro em falta: image_url é obrigatório.
Formato de imagem inválido: O image_url fornecido não está num formato suportado (.jpg, .jpeg, .png, .webp).
Dimensões da imagem fora do intervalo: A imagem é demasiado pequena, excede o tamanho máximo de ficheiro, ou excede a contagem máxima de píxeis.
URL inacessível: Não foi possível descarregar o image_url (404 ou timeout).
Data URI inválido: A string em base64 está mal formada.
Conteúdo assinalado: A imagem de entrada foi assinalada por moderation de NSFW ou de propriedade intelectual.
image_subject inválido: Não é character / landscape.
Name
401 - Unauthorized
Description
A autenticação falhou. Por favor, 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/creative-lab/lamp/v1/prototype
# Stage 1: concept image + hollow 3D lampshade model from a source photocurlhttps://api.meshy.ai/openapi/creative-lab/lamp/v1/prototype \-XPOST \-H"Authorization: Bearer ${YOUR_API_KEY}" \-H'Content-Type: application/json' \-d'{ "image_url": "<your publicly accessible image url or base64-encoded data URI>", "image_subject": "character" }'
Response
{"result":"018a210d-8ba4-705c-b111-1f1776f7f578"}
Prototype example
Start with a source photo; the prototype returns the concept image and a hollow 3D model that the build stage processes.
Gera as peças finais prontas para impressão 3D a partir de uma tarefa de protótipo bem-sucedida.
A construção executa o processador de candeeiros sobre o modelo 3D do protótipo: escala
o modelo para diameter_mm, achata a base em cut_amount_percent,
esvazia-o até thickness_mm, abre a base e — quando é escolhido um preset de
fixação — adiciona uma placa de base com o orifício de fixação e um suporte
separado para a fonte de luz. Consulte
The Lamp Build Task Object para saber a
forma da resposta.
Parâmetros
Name
input_task_id
Type
string
Obrigatório
Description
O ID de tarefa de uma tarefa de protótipo criada através 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 um modelo 3D.
As tarefas de protótipo criadas através da webapp não são aceites — o endpoint de construção aceita apenas tarefas de protótipo produzidas por POST /openapi/creative-lab/lamp/v1/prototype e recusa qualquer outra origem com 404.
Name
name
Type
string
Description
Nome de tarefa opcional para efeitos de exibição. Máximo de 100 carateres.
options
Parâmetros de ajuste opcionais para a geometria da cúpula do candeeiro. Todos os campos têm um valor predefinido sensato — envie apenas os que pretende substituir.
Name
diameter_mm
Type
number
predefinição 150
Description
Dimensão máxima alvo da caixa delimitadora da cúpula do candeeiro, em milímetros. A malha é escalada uniformemente para se ajustar. Intervalo: [50, 400].
Name
thickness_mm
Type
number
predefinição 1
Description
Espessura de parede da cúpula oca do candeeiro, em milímetros. Intervalo: (0, 10].
Name
cut_amount_percent
Type
number
predefinição 1
Description
Percentagem da altura do modelo cortada de forma plana na base, para que a cúpula do candeeiro assente na base de impressão e tenha uma abertura para a fixação. Intervalo: [1, 100].
Name
light_source_preset
Type
string
predefinição bambu_mh001_60mm
Description
Preset de fixação da fonte de luz que determina como a base é construída. Valores disponíveis:
bambu_mh001_60mm (predefinição) — cúpula de candeeiro com base aberta mais uma placa de base com um orifício de fixação de 60 mm, ambos em model_urls.lamp_stl, e o suporte de fixação como model_urls.base_stl.
none — uma única cúpula de candeeiro selada em model_urls.lamp_stl; model_urls.base_stl é omitido.
Name
fixture_offset_x_mm
Type
number
predefinição 0
Description
Deslocamento no eixo X do orifício de fixação na placa de base, em relação ao centro da cúpula do candeeiro, em milímetros. Apenas relevante quando light_source_preset ≠ none. Intervalo: [-80, 80].
Name
fixture_offset_z_mm
Type
number
predefinição 0
Description
Deslocamento no eixo Z (profundidade) do orifício de fixação na placa de base, em relação ao centro da cúpula do candeeiro, em milímetros. Apenas relevante quando light_source_preset ≠ none. Intervalo: [-80, 80].
Name
rotate_x_deg
Type
number
predefinição 0
Description
Rotação em torno do eixo X aplicada ao modelo antes do processamento, em graus. As três rotações são aplicadas como ângulos de Euler XYZ em torno do centro do modelo. Intervalo: [-360, 360].
Name
rotate_y_deg
Type
number
predefinição 0
Description
Rotação em torno do eixo Y aplicada à malha importada antes do processamento, em graus. Intervalo: [-360, 360].
Name
rotate_z_deg
Type
number
predefinição 0
Description
Rotação em torno do eixo Z aplicada à malha importada antes do processamento, em graus. Intervalo: [-360, 360].
Name
include_result_json
Type
boolean
predefinição false
Description
Quando true e output.format é zip, inclui o result.json do processador de candeeiros (nome do pipeline, avisos e caminhos dos artefactos) dentro do pacote. Ignorado quando output.format é stl.
output
Seletor de formato de saída opcional. A predefinição é stl.
Name
format
Type
string
predefinição stl
Description
Pacote de artefactos devolvido pela construção. Valores disponíveis:
stl (predefinição) — devolve model_urls.lamp_stl (a cúpula do candeeiro, juntamente com a placa de base quando é definido um preset de fixação), mais model_urls.base_stl quando light_source_preset ≠ none.
zip — empacota todos os artefactos emitidos pelo processador (lamp.stl, base.stl opcional, result.json opcional) num único zip e devolve-o em model_urls.bundle_zip.
Retorna
A propriedade result da resposta contém o id de tarefa da tarefa de construção de candeeiro recém-criada. Consulte periodicamente o endpoint Get a Task ou subscreva o stream até a tarefa atingir SUCCEEDED, e depois transfira os artefactos a partir de model_urls.
Modos de Falha
Name
400 - Bad Request
Description
O pedido foi inaceitável. Causas comuns:
Parâmetro em falta: input_task_id é obrigatório.
UUID inválido: O input_task_id não é um UUID válido.
Tarefa principal não concluída com sucesso: A tarefa de protótipo referenciada ainda não atingiu SUCCEEDED.
Sem modelo: A tarefa de protótipo foi bem-sucedida, mas não produziu nenhum modelo 3D.
Opções fora do intervalo: Um dos campos de options está fora do intervalo permitido ou do conjunto de valores enumerados.
Name
401 - Unauthorized
Description
A autenticação falhou. Verifique a 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 um utilizador diferente ou foi criada através da webapp (apenas tarefas de protótipo em modo API se encadeiam na construção).
Obtenha uma tarefa de prototype ou build indicando um id de tarefa válido. O caminho do URL
tem de corresponder à fase da tarefa — uma tarefa de build obtida através de
/prototype/:id devolve 404, e vice-versa.
Cancela uma tarefa de candeeiro. Se a tarefa ainda estiver PENDING, os créditos
consumidos no momento da criação são reembolsados. As tarefas que já estão IN_PROGRESS são
canceladas sem reembolso (o worker já pode estar a consumir recursos).
As tarefas que já atingiram um estado terminal (SUCCEEDED, FAILED,
CANCELED) não podem ser canceladas.
O caminho do URL tem de corresponder à fase da tarefa — DELETE em
/prototype/:buildId devolve 404.
Parâmetros de Caminho
Name
id
Type
path
Description
Identificador único da tarefa de candeeiro a cancelar.
Devolve
Devolve 204 No Content em caso de sucesso, com um corpo vazio.
Modos de Falha
Name
400 - Bad Request
Description
A tarefa já se encontra num estado terminal e não pode ser cancelada.
Name
404 - Not Found
Description
A tarefa não existe, pertence a outro utilizador ou a sua fase não corresponde ao caminho do URL.
Transmite atualizações em tempo real para uma tarefa de candeeiro através de Server-Sent Events (SSE).
O caminho do URL deve corresponder à fase da tarefa — abrir um stream em
/prototype/:buildId/stream emite um único payload event: error com
status_code: 404 e fecha o stream.
Parâmetros
Name
id
Type
path
Description
Identificador único da tarefa de candeeiro a transmitir.
Retorna
Devolve um stream de objetos de tarefa Lamp Prototype
ou Lamp Build como
Server-Sent Events. Cada frame contém o objeto de tarefa completo para a fase — a mesma estrutura que o
endpoint Get devolve — pelo que, 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-lamp-build","status": "SUCCEEDED","progress": 100,"created_at": 1729123500000,"started_at": 1729123510000,"finished_at": 1729123535000,"expires_at": 1729382735000,"task_error": null,"consumed_credits": 6,"model_urls": {"lamp_stl":"https://assets.meshy.ai/***/tasks/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/output/lamp.stl?Expires=***","base_stl":"https://assets.meshy.ai/***/tasks/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/output/base.stl?Expires=***" }}
Obtenha uma lista paginada das suas tarefas de candeeiro para uma única fase. O caminho do URL
seleciona a fase — /prototype devolve tarefas de protótipo; /build
devolve tarefas de construção. As tarefas da outra fase 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 devolve apenas tarefas
cuja fase corresponde ao URL — obter /prototype nunca devolve
tarefas de construção e vice-versa.
Parâmetros de Consulta
Name
page_num
Type
integer
predefinição 1
Description
Número da página para paginação.
Name
page_size
Type
integer
predefinição 10
Description
Limite do tamanho da página. O máximo permitido é 100 itens.
Name
sort_by
Type
string
predefinição -created_at
Description
Campo pelo qual ordenar. Valores disponíveis:
+created_at: Ordenar por hora de criação em ordem crescente.
-created_at: Ordenar por hora de criação em ordem decrescente.
O objeto Lamp Prototype Task é uma unidade de trabalho que a Meshy mantém sob controlo para
gerar uma imagem de conceito estilizada branca mate a partir de uma foto de origem e
convertê-la num modelo 3D oco. O resultado desta fase é encadeado com
a fase de build através de input_task_id.
Propriedades
Name
id
Type
string
Description
Identificador único da tarefa. Embora utilizemos um UUID ordenável por k como detalhe de implementação para os ids das tarefas, não deve fazer suposições sobre o formato do id.
Name
type
Type
string
Description
Tipo da tarefa. O valor é creative-lab-lamp-prototype.
Name
name
Type
string
Description
O nome da tarefa fornecido quando a tarefa foi criada. Cadeia vazia se não tiver sido fornecido nenhum nome.
Name
status
Type
string
Description
Estado da tarefa. Os valores possíveis são um de PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.
Name
progress
Type
integer
Description
Progress da tarefa. Se a tarefa ainda não tiver começado, esta propriedade será 0. Assim que a tarefa for concluída com sucesso, esta passará a ser 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. Isto aplica-se
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 tiver sido iniciada, esta propriedade será 0.
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 sido concluída, 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 estado da tarefa for 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. Presente quando o estado da tarefa é PENDING, IN_PROGRESS ou SUCCEEDED. 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 modelo 3D gerado a partir da imagem de conceito. Presente uma vez que a tarefa tenha sido concluída com sucesso; {} antes disso.
Name
glb
Type
string
Description
URL para download do modelo de quebra-luz oco branco mate em formato GLB. Este é o modelo que a fase de build processa.
Name
thumbnail_url
Type
string
Description
URL para download de uma pré-visualização renderizada do modelo 3D. Cadeia vazia até a tarefa ser concluída com sucesso.
Name
image_urls
Type
array of strings
Description
URLs para download dos candidatos a imagem de conceito gerados por esta tarefa de prototipagem. Atualmente, a API devolve sempre exatamente um candidato; o campo é uma matriz para que revisões futuras possam apresentar múltiplos candidatos sem uma alteração disruptiva.
O objeto Lamp Build Task é uma unidade de trabalho que a Meshy monitoriza para
gerar a candeeiro final imprimível em 3D a partir de uma tarefa de protótipo bem-sucedida.
A construção executa o processador de candeeiro no modelo 3D do protótipo para o esvaziar,
achatar e abrir o fundo, e (com uma predefinição de fixação) adicionar a placa de base
e o suporte de fixação.
Propriedades
Name
id
Type
string
Description
Identificador único da tarefa.
Name
type
Type
string
Description
Tipo da tarefa. O valor é creative-lab-lamp-build.
Name
name
Type
string
Description
O nome da tarefa fornecido quando a tarefa foi criada. Cadeia vazia se não tiver sido fornecido um nome.
Name
status
Type
string
Description
Estado 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 tiver sido iniciada, esta propriedade será 0. Assim que a tarefa for bem-sucedida, passará a ser 100.
Name
created_at
Type
timestamp
Description
Carimbo de data/hora da criação da tarefa, em milissegundos.
Name
started_at
Type
timestamp
Description
Carimbo de data/hora do início da tarefa, em milissegundos.
Name
finished_at
Type
timestamp
Description
Carimbo de data/hora da conclusão da tarefa, 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. Apenas relevante quando o estado é 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. Devolve 0 para tarefas FAILED (os créditos são reembolsados em caso de falha).
Name
model_urls
Type
object
Description
URLs transferíveis para os artefactos gerados, indexados pelo nome do artefacto. O conjunto de chaves depende de output.format e options.light_source_preset:
Name
lamp_stl
Type
string
Description
URL transferível para lamp.stl: o candeeiro de fundo aberto juntamente com a placa de base que contém o orifício de fixação, ou um único candeeiro selado quando options.light_source_preset era none. Presente quando output.format era stl (o valor por predefinição).
Name
base_stl
Type
string
Description
URL transferível para base.stl, o suporte de fixação da fonte de luz. Presente quando output.format era stleoptions.light_source_preset não era none. Omitido quando a predefinição de fixação era none.
Name
bundle_zip
Type
string
Description
URL transferível para um pacote zip com todos os artefactos que o processador produz (lamp.stl, opcionalmente base.stl, e — quando options.include_result_json é true — result.json). Presente quando output.format era zip. Quando bundle_zip está presente, lamp_stl / base_stl são omitidos.