Transforme um prompt de texto ou uma foto de origem em uma cúpula de luminária imprimível em 3D em duas
etapas: protótipo gera uma imagem conceitual estilizada em branco fosco e, em seguida,
construção transforma essa imagem conceitual em uma cúpula de luminária oca em STL (opcionalmente
combinada com um disco de base para um suporte de fonte de luz). As duas etapas são vinculadas
via input_task_id.
Gere uma única imagem conceitual em branco fosco para a cúpula da luminária — seja
a partir de um prompt de texto (text-to-3D) ou de uma foto de referência (image-to-3D).
O ID da tarefa retornado é o que você passa como input_task_id para o endpoint
de build. Consulte
O objeto da tarefa de protótipo de luminária
para o formato da resposta.
Parâmetros
Exatamente um de text ou image_url é obrigatório. Passar ambos, ou nenhum, retorna 400.
Name
text
Type
string
Obrigatório
Description
Prompt de texto descrevendo o tema desejado da cúpula da luminária. Obrigatório quando image_url é omitido. Máximo de 800 caracteres.
Name
image_url
Type
string
Obrigatório
Description
Foto de origem que a Meshy usa como referência visual para a cúpula da luminária. Obrigatório quando text é omitido. Atualmente oferecemos suporte aos formatos .jpg, .jpeg, .png e .webp.
Há duas maneiras de fornecer a imagem:
URL publicamente acessível: Uma URL acessível pela internet pública.
Data URI: Uma Data URI da imagem codificada em base64. Exemplo de uma Data URI: data:image/jpeg;base64,<your base64-encoded image data>.
Name
image_subject
Type
string
padrão character
Description
Dica de categoria do tema para o caminho image-to-3D. Valores disponíveis:
character (padrão) — tema de personagem / objeto único (figurino, animal, mascote etc.).
landscape — tema de cena externa / panorama (montanha, paisagem urbana, floresta etc.).
Ignorado no caminho text-to-3D.
Name
name
Type
string
Description
Nome opcional da tarefa para fins de exibição. Máximo de 100 caracteres.
Retorna
A propriedade result da resposta contém o id da tarefa de protótipo de luminária recém-criada. Faça polling no endpoint Obter uma tarefa ou assine o stream até que a tarefa atinja SUCCEEDED; em seguida, passe esse ID para o endpoint de build como input_task_id.
Modos de falha
Name
400 - Bad Request
Description
A solicitação era inaceitável. Causas comuns:
Parâmetro ausente: Exatamente um de text ou image_url é obrigatório.
Ambos fornecidos: Passar ambos text e image_url é rejeitado — eles são mutuamente exclusivos.
Formato de imagem inválido: O image_url fornecido não está em um formato compatível (.jpg, .jpeg, .png, .webp).
Dimensões da imagem fora do intervalo: A imagem é pequena demais, excede o tamanho máximo do 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álida: A string base64 está malformada.
Conteúdo sinalizado: A imagem de entrada foi sinalizada por moderation de NSFW ou propriedade intelectual.
Texto longo demais: text excede 800 caracteres.
image_subject inválido: Não é um de character / landscape.
Name
401 - Unauthorized
Description
A autenticação falhou. Verifique sua chave de API.
Name
402 - Payment Required
Description
Créditos insuficientes para executar esta tarefa.
Name
429 - Too Many Requests
Description
Você excedeu seu limite de taxa.
Request
POST
/openapi/creative-lab/lamp/v1/prototype
# Stage 1 (image-to-3D): generate a matte-white lampshade concept imagecurl https://api.meshy.ai/openapi/creative-lab/lamp/v1/prototype \ -X POST \ -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" }'# Stage 1 (text-to-3D): generate from a text promptcurl https://api.meshy.ai/openapi/creative-lab/lamp/v1/prototype \ -X POST \ -H "Authorization: Bearer ${YOUR_API_KEY}" \ -H 'Content-Type: application/json' \ -d '{ "text": "a stylized owl perched on a tree branch under moonlight" }'
Response
{"result":"018a210d-8ba4-705c-b111-1f1776f7f578"}
Prototype example
Start with a source photo, then generate the prototype image used by the lamp build stage.
Gere a cúpula de luminária final imprimível em 3D a partir de uma tarefa
de protótipo bem-sucedida. O build executa um pipeline de imagem para 3D na
imagem de conceito do protótipo e, em seguida, pós-processa a malha por meio
do processador de luminária para torná-la oca, achatar a parte superior,
opcionalmente cortar uma base e (quando uma predefinição de suporte for
escolhida) gerar um disco de base separado para a fonte de luz. Consulte
O objeto da tarefa de build de luminária para o
formato da resposta.
Parâmetros
Name
input_task_id
Type
string
Obrigatório
Description
O ID da 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 alcançado SUCCEEDED e deve ter produzido exatamente uma imagem candidata.
Tarefas de protótipo criadas pelo webapp não são aceitas — o endpoint de build 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 opcional da tarefa para fins de exibição. Máximo de 100 caracteres.
options
Parâmetros de ajuste opcionais para a geometria da cúpula de luminária. Todo campo tem um padrão adequado — envie apenas aqueles que você deseja substituir.
Name
diameter_mm
Type
number
padrão 80
Description
Dimensão máxima alvo da caixa delimitadora da cúpula de luminária, em milímetros. A malha é escalada uniformemente para caber. Intervalo: [50, 400].
Name
thickness_mm
Type
number
padrão 1.5
Description
Espessura de parede da cúpula de luminária oca, em milímetros. Intervalo: (0, 10].
Name
cut_amount_percent
Type
number
padrão 35
Description
Porcentagem da altura da cúpula de luminária a achatar na parte superior para que a impressão possa ficar apoiada na mesa. Intervalo: [1, 100].
Name
light_source_preset
Type
string
padrão bambu_mh001_60mm
Description
Predefinição do suporte da fonte de luz que determina se (e qual) disco de base será gerado junto com a cúpula de luminária. Valores disponíveis:
bambu_mh001_60mm (padrão) — gera um disco de base de 60 mm dimensionado para um suporte de fonte de luz compatível. O resultado inclui model_urls.base_stl.
none — sem suporte, sem disco de base. model_urls.base_stl é omitido.
Name
fixture_offset_x_mm
Type
number
padrão 0
Description
Deslocamento horizontal no eixo X do recorte do suporte em relação ao centro da cúpula de luminária, em milímetros. Significativo apenas quando light_source_preset ≠ none. Intervalo: [-80, 80].
Name
fixture_offset_z_mm
Type
number
padrão 0
Description
Deslocamento vertical no eixo Z do recorte do suporte em relação à parte inferior da cúpula de luminária, em milímetros. Intervalo: [-80, 80].
Name
rotate_x_deg
Type
number
padrão 0
Description
Rotação em torno do eixo X aplicada à malha importada antes do processamento, em graus. Intervalo: [-360, 360].
Name
rotate_y_deg
Type
number
padrã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
padrã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
padrão false
Description
Quando true e output.format é zip, inclui o result.json do processador de luminária (contendo métricas medidas da malha + o conjunto de opções resolvido) dentro do pacote. Ignorado quando output.format é stl.
output
Seletor opcional de formato de transmissão. O padrão é stl.
Name
format
Type
string
padrão stl
Description
Pacote de artefatos retornado pelo build. Valores disponíveis:
stl (padrão) — retorna a cúpula de luminária como model_urls.lamp_stl, além de model_urls.base_stl quando light_source_preset ≠ none.
zip — empacota todos os artefatos gerados pelo processador (lamp.stl, base.stl opcional, result.json opcional) em um único zip e o retorna em model_urls.bundle_zip.
Retorna
A propriedade result da resposta contém o id da tarefa de build de luminária recém-criada. Consulte o endpoint Obter uma tarefa ou assine o stream até que a tarefa alcance SUCCEEDED; em seguida, baixe os artefatos de 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: O input_task_id não é um UUID válido.
Pai não bem-sucedido: A tarefa de protótipo referenciada ainda não alcançou SUCCEEDED.
Sem candidata: 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 enum.
Name
401 - Unauthorized
Description
A autenticação falhou. Verifique sua chave de API.
Name
402 - Payment Required
Description
Créditos insuficientes para executar esta tarefa.
Name
404 - Not Found
Description
A tarefa de protótipo referenciada não existe, pertence a um usuário diferente ou foi criada pelo webapp (somente tarefas de protótipo em mode de API podem ser encadeadas para build).
Recupere uma tarefa de protótipo ou build dado 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.
Cancele uma tarefa de luminária. Se a tarefa ainda estiver PENDING, os créditos consumidos
no momento da criação serão reembolsados. Tarefas que já estão IN_PROGRESS são
canceladas sem reembolso (o worker pode já 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 luminária 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 de luminária via Server-Sent Events (SSE).
O caminho da URL deve corresponder à etapa 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 luminária a ser transmitida.
Retornos
Retorna um stream de objetos de tarefa Protótipo de luminária
ou Build de luminária como
Server-Sent Events. Para tarefas PENDING ou IN_PROGRESS, o stream da resposta
incluirá apenas os campos necessários progress e status.
// Error event example (wrong stage or task not found)event: errordata: {"status_code": 404,"message": "Task not found"}// Message event examples illustrate task progress.// For PENDING or IN_PROGRESS tasks, the response stream will not include all fields.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": 30,"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=***" }}
Recupere uma lista paginada das suas tarefas de luminária para uma única etapa. O caminho
da URL seleciona a etapa — /prototype retorna tarefas de protótipo; /build
retorna tarefas de build. Tarefas da outra etapa 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
cuja etapa corresponde à URL — buscar /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 é de 50 itens.
Name
sort_by
Type
string
padrã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 de tarefa de protótipo de luminária é uma unidade de trabalho que a Meshy acompanha para
gerar uma imagem conceitual estilizada em branco fosco a partir de um prompt de texto
ou de uma foto de origem. A saída desta etapa é encadeada para
a etapa de construção via input_task_id.
Propriedades
Name
id
Type
string
Description
Identificador exclusivo da tarefa. Embora usemos um UUID k-sortable para ids de tarefas como detalhe de implementação, você não deve fazer nenhuma suposição 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. String vazia se nenhum nome foi fornecido.
Name
status
Type
string
Description
Status 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 foi iniciada, esta propriedade será 0. Assim que a tarefa for concluída com sucesso, isso 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 PM 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 anteriores.
O valor deste campo é significativo apenas 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 baixáveis para os candidatos de imagem conceitual gerados por esta tarefa de protótipo. Atualmente, a API sempre retorna exatamente um candidato; o campo é um array para que revisões futuras possam apresentar vários candidatos sem uma alteração incompatível.
O objeto de tarefa de construção de luminária é uma unidade de trabalho que a Meshy acompanha para
gerar a cúpula de luminária final imprimível em 3D a partir de uma tarefa de protótipo bem-sucedida.
A construção executa um pipeline de rascunho de imagem para 3D + textura na
imagem de conceito do protótipo e, em seguida, pós-processa a malha por meio do processador de luminária para
tornar oca, achatar e (opcionalmente) cortar uma base de fixação.
Propriedades
Name
id
Type
string
Description
Identificador exclusivo 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. String vazia se nenhum nome foi fornecido.
Name
status
Type
string
Description
Status 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 foi iniciada, esta propriedade será 0. Quando a tarefa for concluída com sucesso, 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 somente 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 dos artefatos gerados, indexadas pelo nome do artefato. O conjunto de chaves depende de output.format e options.light_source_preset:
Name
lamp_stl
Type
string
Description
URL para download da cúpula da luminária lamp.stl. Presente quando output.format era stl (o padrão).
Name
base_stl
Type
string
Description
URL para download da base de fixação base.stl. 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 para download de um pacote zip de todos os artefatos que o processador emite (lamp.stl, base.stl opcional 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.