Transforme um prompt de texto ou uma fotografia de origem num abat-jour de candeeiro imprimível em 3D em duas
fases: protótipo gera uma imagem conceptual estilizada em branco mate e, depois,
construção transforma essa imagem conceptual num abat-jour oco em STL (opcionalmente
emparelhado com um disco de base para um suporte de fonte de luz). As duas fases estão associadas
através de input_task_id.
Gere uma única imagem conceptual branco mate para a cúpula do candeeiro — quer
a partir de um prompt de texto (text-to-3D), quer a partir de uma fotografia de referência (image-to-3D).
O ID da tarefa devolvido é o que passa como input_task_id para o endpoint
de build. Consulte
O objeto da tarefa de protótipo de candeeiro
para ver a estrutura da resposta.
Parâmetros
É obrigatório exatamente um de text ou image_url. Passar ambos, ou nenhum, devolve 400.
Name
text
Type
string
Obrigatório
Description
Prompt de texto que descreve o tema pretendido para a cúpula do candeeiro. Obrigatório quando image_url é omitido. Máximo de 800 caracteres.
Name
image_url
Type
string
Obrigatório
Description
Fotografia de origem que a Meshy utiliza como referência visual para a cúpula do candeeiro. Obrigatória quando text é omitido. Atualmente, suportamos os formatos .jpg, .jpeg, .png e .webp.
Existem duas formas de fornecer a imagem:
URL publicamente acessível: Um URL 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
Sugestão da categoria do tema para o percurso image-to-3D. Valores disponíveis:
character (predefinição) — tema de personagem / objeto único (figurino, animal, mascote, etc.).
landscape — tema de cena exterior / panorama (montanha, paisagem urbana, floresta, etc.).
Ignorado no percurso text-to-3D.
Name
name
Type
string
Description
Nome opcional da tarefa para fins de apresentação. Máximo de 100 caracteres.
Devoluções
A propriedade result da resposta contém o id da tarefa de protótipo de candeeiro recém-criada. Consulte o endpoint Obter uma tarefa ou subscreva o stream até a tarefa atingir SUCCEEDED; em seguida, passe esse ID ao endpoint de build como input_task_id.
Modos de falha
Name
400 - Bad Request
Description
O pedido era inaceitável. Causas comuns:
Parâmetro em falta: É obrigatório exatamente um de text ou image_url.
Ambos fornecidos: Passar text e image_url é rejeitado — são mutuamente exclusivos.
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 cadeia base64 está malformada.
Conteúdo sinalizado: A imagem de entrada foi sinalizada por moderation de NSFW ou propriedade intelectual.
Texto demasiado longo: text excede 800 caracteres.
image_subject inválido: Não é um de character / landscape.
Name
401 - Unauthorized
Description
A autenticação falhou. Verifique a sua chave de API.
Name
402 - Payment Required
Description
Créditos insuficientes para executar esta tarefa.
Name
429 - Too Many Requests
Description
Excedeu o 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.
Gera o abajur final imprimível em 3D a partir de uma tarefa de protótipo
bem-sucedida. A construção executa uma pipeline de imagem-para-3D na imagem
conceptual do protótipo e, em seguida, pós-processa a malha através do processador
de candeeiro para a tornar oca, aplanar o topo, cortar opcionalmente uma base e
(quando é escolhida uma predefinição de suporte) emitir um disco de base separado
para a fonte de luz. Consulte
O objeto da tarefa de construção de candeeiro 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 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 exatamente uma imagem candidata.
As tarefas de protótipo criadas através da aplicação Web 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 opcional da tarefa para fins de apresentação. Máximo de 100 caracteres.
options
Parâmetros de ajuste opcionais para a geometria do abajur. Todos os campos têm um valor predefinido sensato — envie apenas os que pretende substituir.
Name
diameter_mm
Type
number
predefinição 80
Description
Dimensão máxima alvo da caixa delimitadora do abajur, em milímetros. A malha é escalada uniformemente para caber. Intervalo: [50, 400].
Name
thickness_mm
Type
number
predefinição 1.5
Description
Espessura de parede do abajur oco, em milímetros. Intervalo: (0, 10].
Name
cut_amount_percent
Type
number
predefinição 35
Description
Percentagem da altura do abajur a aplanar no topo para que a impressão possa assentar na mesa. Intervalo: [1, 100].
Name
light_source_preset
Type
string
predefinição bambu_mh001_60mm
Description
Predefinição do suporte da fonte de luz que determina se (e qual) disco de base deve ser emitido juntamente com o abajur. Valores disponíveis:
bambu_mh001_60mm (predefinição) — emite 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
predefinição 0
Description
Deslocamento horizontal no eixo X do recorte do suporte em relação ao centro do abajur, em milímetros. Só é significativo quando light_source_preset ≠ none. Intervalo: [-80, 80].
Name
fixture_offset_z_mm
Type
number
predefinição 0
Description
Deslocamento vertical no eixo Z do recorte do suporte em relação à parte inferior do abajur, em milímetros. Intervalo: [-80, 80].
Name
rotate_x_deg
Type
number
predefiniçã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
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 candeeiro (contendo métricas medidas da malha + o conjunto de opções resolvido) dentro do pacote. Ignorado quando output.format é stl.
output
Seletor opcional do formato de transmissão. 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 o abajur como model_urls.lamp_stl, além de 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.
Devoluções
A propriedade result da resposta contém o id da tarefa de construção de candeeiro recém-criada. Faça polling do endpoint Obter uma tarefa ou subscreva o fluxo até a tarefa atingir SUCCEEDED; em seguida, transfira os artefactos a partir de model_urls.
Modos de falha
Name
400 - Bad Request
Description
O pedido não era aceitá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 bem-sucedida: A tarefa de protótipo referenciada ainda não atingiu SUCCEEDED.
Sem 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 enumeração.
Name
401 - Unauthorized
Description
A autenticação falhou. Verifique a 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 utilizador diferente ou foi criada através da aplicação Web (apenas tarefas de protótipo em mode de API podem ser encadeadas para construção).
Obtenha uma tarefa de protótipo ou de construção com um id de tarefa válido. O caminho do URL
deve corresponder à fase da tarefa — uma tarefa de construção obtida através de
/prototype/:id devolve 404, e vice-versa.
Cancelar 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 pode já estar a consumir recursos).
As tarefas que já atingiram um estado terminal (SUCCEEDED, FAILED,
CANCELED) não podem ser canceladas.
O caminho do URL deve 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á está num estado terminal e não pode ser cancelada.
Name
404 - Not Found
Description
A tarefa não existe, pertence a um utilizador diferente ou a sua fase não corresponde ao caminho do URL.
Transmita atualizações em tempo real para uma tarefa de candeeiro através de Server-Sent Events (SSE).
O caminho do URL deve corresponder à etapa da tarefa — abrir um fluxo em
/prototype/:buildId/stream emite um único payload event: error com
status_code: 404 e fecha o fluxo.
Parâmetros
Name
id
Type
path
Description
Identificador único da tarefa de candeeiro a transmitir em fluxo.
Devolve
Devolve um fluxo de objetos de tarefa Protótipo de candeeiro
ou Construção de candeeiro como
Server-Sent Events. Para tarefas PENDING ou IN_PROGRESS, o fluxo de
resposta incluirá apenas os campos progress e status necessários.
// 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=***" }}
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 build. 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
Ou prototype ou build. A coleção devolve apenas tarefas
cuja fase corresponde ao URL — obter /prototype nunca devolve
tarefas de build 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 de tamanho da página. O máximo permitido é de 50 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 por ordem ascendente.
-created_at: Ordenar por hora de criação por ordem descendente.
O objeto de Tarefa de Protótipo de Candeeiro é uma unidade de trabalho que a Meshy acompanha para
gerar uma imagem de conceito estilizada em branco mate a partir de um prompt de texto
ou de uma fotografia de origem. O resultado desta etapa é encadeado para
a etapa de construção através de input_task_id.
Propriedades
Name
id
Type
string
Description
Identificador único da tarefa. Embora utilizemos um UUID k-sortable para os ids das tarefas 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. 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 qualquer 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 sido iniciada, esta propriedade será 0. Assim que a tarefa tiver sido concluída com êxito, passará a 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
a norma RFC 3339.
Por exemplo, sexta-feira, 1 de setembro de 2023 12:00:00 PM 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 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).
Name
image_urls
Type
array of strings
Description
URLs transferíveis para as imagens de conceito candidatas geradas por esta tarefa de protótipo. Atualmente, a API devolve sempre exatamente uma candidata; o campo é uma matriz para que revisões futuras possam disponibilizar múltiplas candidatas sem uma alteração disruptiva.
O objeto Tarefa de Construção de candeeiro é uma unidade de trabalho que a Meshy acompanha para
gerar o abajur final imprimível em 3D a partir de uma tarefa de protótipo SUCCEEDED.
A construção executa um pipeline de rascunho imagem-para-3D + textura na imagem de
conceito do protótipo e, em seguida, pós-processa a malha através do processador de candeeiro para
esvaziar, achatar e (opcionalmente) cortar uma base 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 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
O progress da tarefa. Se a tarefa ainda não tiver sido iniciada, esta propriedade será 0. Assim que a tarefa tiver sido concluída com êxito, passará a 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 terminada, 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 estado é 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. 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 o abat-jour lamp.stl. Presente quando output.format era stl (a predefinição).
Name
base_stl
Type
string
Description
URL transferível para a base de fixação base.stl. Presente quando output.format era stleoptions.light_source_preset não era none. Omitido quando a predefinição da fixação era none.
Name
bundle_zip
Type
string
Description
URL transferível para um pacote zip de todos os artefactos 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.