Convierte un prompt de texto o una foto de origen en una pantalla de lámpara imprimible en 3D en dos
etapas: prototipo genera una imagen conceptual estilizada de color blanco mate y luego
construcción convierte esa imagen conceptual en una pantalla de lámpara STL hueca (opcionalmente
emparejada con un disco de base para un soporte de fuente de luz). Las dos etapas están vinculadas
mediante input_task_id.
Genera una única imagen conceptual en blanco mate para la pantalla de la lámpara, ya sea
desde un prompt de texto (texto a 3D) o desde una foto de referencia (imagen a 3D).
El ID de tarea devuelto es el que pasas como input_task_id al endpoint de
construcción. Consulta
El objeto de tarea de prototipo de lámpara
para ver la estructura de la respuesta.
Parámetros
Se requiere exactamente uno de text o image_url. Pasar ambos, o ninguno, devuelve 400.
Name
text
Type
string
Requerido
Description
Prompt de texto que describe el sujeto deseado de la pantalla de la lámpara. Requerido cuando se omite image_url. Máximo 800 caracteres.
Name
image_url
Type
string
Requerido
Description
Foto de origen que Meshy utiliza como referencia visual para la pantalla de la lámpara. Requerida cuando se omite text. Actualmente admitimos los formatos .jpg, .jpeg, .png y .webp.
Hay dos formas de proporcionar la imagen:
URL accesible públicamente: Una URL accesible desde Internet público.
Data URI: Un Data URI codificado en base64 de la imagen. Ejemplo de un Data URI: data:image/jpeg;base64,<your base64-encoded image data>.
Name
image_subject
Type
string
predeterminado character
Description
Sugerencia de categoría del sujeto para la ruta de imagen a 3D. Valores disponibles:
character (predeterminado) — sujeto de un solo personaje / objeto (figurita, animal, mascota, etc.).
Nombre de tarea opcional para fines de visualización. Máximo 100 caracteres.
Devuelve
La propiedad result de la respuesta contiene el id de tarea de la tarea de prototipo de lámpara recién creada. Consulta el endpoint Obtener una tarea o suscríbete al stream hasta que la tarea alcance SUCCEEDED, luego pasa ese ID al endpoint de construcción como input_task_id.
Modos de fallo
Name
400 - Bad Request
Description
La solicitud no era aceptable. Causas comunes:
Parámetro faltante: Se requiere exactamente uno de text o image_url.
Ambos proporcionados: Pasar tanto text como image_url se rechaza — son mutuamente excluyentes.
Formato de imagen no válido: El image_url proporcionado no es un formato compatible (.jpg, .jpeg, .png, .webp).
Dimensiones de imagen fuera de rango: La imagen es demasiado pequeña, supera el tamaño máximo de archivo o supera el recuento máximo de píxeles.
URL inaccesible: No se pudo descargar el image_url (404 o timeout).
Data URI no válido: La cadena base64 está mal formada.
Contenido marcado: La imagen de entrada fue marcada por moderation de NSFW o de propiedad intelectual.
Texto demasiado largo: text supera los 800 caracteres.
image_subject no válido: No es uno de character / landscape.
Name
401 - Unauthorized
Description
La autenticación falló. Comprueba tu clave de API.
Name
402 - Payment Required
Description
Créditos insuficientes para realizar esta tarea.
Name
429 - Too Many Requests
Description
Has superado tu límite de tasa.
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"}
Ejemplo de prototipo
Comienza con una foto de origen y luego genera la imagen de prototipo usada por la etapa de construcción de la lámpara.
Genera la pantalla de lámpara final imprimible en 3D a partir de una tarea de prototipo
completada correctamente. La construcción ejecuta una canalización de imagen a 3D sobre la imagen de concepto
del prototipo y luego posprocesa la malla mediante el procesador de lámparas para ahuecarla,
aplanar la parte superior, cortar opcionalmente una base y (cuando se elige un preset de accesorio)
emitir un disco base independiente para la fuente de luz. Consulta
El objeto de tarea de construcción de lámpara para ver la
forma de la respuesta.
Parámetros
Name
input_task_id
Type
string
Requerido
Description
El ID de tarea de una tarea de prototipo creada mediante este mismo endpoint de OpenAPI. El prototipo debe haberse creado con la misma clave de API, debe haber alcanzado SUCCEEDED y debe haber producido exactamente una imagen candidata.
Las tareas de prototipo creadas mediante la aplicación web no se aceptan — el endpoint de construcción solo acepta tareas de prototipo producidas por POST /openapi/creative-lab/lamp/v1/prototype y rechaza cualquier otro origen con 404.
Name
name
Type
string
Description
Nombre de tarea opcional para fines de visualización. Máximo 100 caracteres.
options
Parámetros de ajuste opcionales para la geometría de la pantalla de lámpara. Cada campo tiene un valor predeterminado razonable — envía solo los que quieras sobrescribir.
Name
diameter_mm
Type
number
predeterminado 80
Description
Dimensión máxima objetivo de la caja delimitadora de la pantalla de lámpara, en milímetros. La malla se escala uniformemente para ajustarse. Rango: [50, 400].
Name
thickness_mm
Type
number
predeterminado 1.5
Description
Grosor de pared de la pantalla de lámpara hueca, en milímetros. Rango: (0, 10].
Name
cut_amount_percent
Type
number
predeterminado 35
Description
Porcentaje de la altura de la pantalla de lámpara que se debe aplanar en la parte superior para que la impresión pueda apoyarse en la cama. Rango: [1, 100].
Name
light_source_preset
Type
string
predeterminado bambu_mh001_60mm
Description
Preset de accesorio de fuente de luz que determina si se emite (y cuál) disco base junto con la pantalla de lámpara. Valores disponibles:
bambu_mh001_60mm (predeterminado) — emite un disco base de 60 mm dimensionado para un accesorio de fuente de luz compatible. El resultado incluye model_urls.base_stl.
none — sin accesorio, sin disco base. Se omite model_urls.base_stl.
Name
fixture_offset_x_mm
Type
number
predeterminado 0
Description
Desplazamiento horizontal del eje X del recorte del accesorio en relación con el centro de la pantalla de lámpara, en milímetros. Solo tiene sentido cuando light_source_preset ≠ none. Rango: [-80, 80].
Name
fixture_offset_z_mm
Type
number
predeterminado 0
Description
Desplazamiento vertical del eje Z del recorte del accesorio en relación con la parte inferior de la pantalla de lámpara, en milímetros. Rango: [-80, 80].
Name
rotate_x_deg
Type
number
predeterminado 0
Description
Rotación alrededor del eje X aplicada a la malla importada antes del procesamiento, en grados. Rango: [-360, 360].
Name
rotate_y_deg
Type
number
predeterminado 0
Description
Rotación alrededor del eje Y aplicada a la malla importada antes del procesamiento, en grados. Rango: [-360, 360].
Name
rotate_z_deg
Type
number
predeterminado 0
Description
Rotación alrededor del eje Z aplicada a la malla importada antes del procesamiento, en grados. Rango: [-360, 360].
Name
include_result_json
Type
boolean
predeterminado false
Description
Cuando true y output.format es zip, incluye el result.json del procesador de lámparas (que contiene métricas de malla medidas + el conjunto de opciones resuelto) dentro del paquete. Se ignora cuando output.format es stl.
output
Selector opcional de formato de transmisión. El valor predeterminado es stl.
Name
format
Type
string
predeterminado stl
Description
Paquete de artefactos devuelto por la construcción. Valores disponibles:
stl (predeterminado) — devuelve la pantalla de lámpara como model_urls.lamp_stl, más model_urls.base_stl cuando light_source_preset ≠ none.
zip — empaqueta todos los artefactos que emite el procesador (lamp.stl, base.stl opcional, result.json opcional) en un único zip y lo devuelve en model_urls.bundle_zip.
Devuelve
La propiedad result de la respuesta contiene el id de tarea de la tarea de construcción de lámpara recién creada. Consulta periódicamente el endpoint Obtener una tarea o suscríbete al stream hasta que la tarea alcance SUCCEEDED; luego descarga los artefactos desde model_urls.
Modos de fallo
Name
400 - Bad Request
Description
La solicitud no era aceptable. Causas comunes:
Parámetro faltante: input_task_id es obligatorio.
UUID no válido: El input_task_id no es un UUID válido.
Padre no completado correctamente: La tarea de prototipo referenciada aún no ha alcanzado SUCCEEDED.
Sin candidato: La tarea de prototipo se completó correctamente pero no produjo ninguna imagen candidata.
Opciones fuera de rango: Uno de los campos de options quedó fuera de su rango permitido o conjunto enum.
Name
401 - Unauthorized
Description
Falló la autenticación. Comprueba tu clave de API.
Name
402 - Payment Required
Description
Créditos insuficientes para realizar esta tarea.
Name
404 - Not Found
Description
La tarea de prototipo referenciada no existe, pertenece a un usuario diferente o se creó mediante la aplicación web (solo las tareas de prototipo en mode API se encadenan a construcción).
Recupera una tarea de prototipo o de construcción dado un id de tarea válido. La ruta de la URL
debe coincidir con la etapa de la tarea: una tarea de construcción obtenida mediante
/prototype/:id devuelve 404, y viceversa.
Cancela una tarea de lámpara. Si la tarea aún está PENDING, los créditos consumidos
en el momento de creación se reembolsan. Las tareas que ya están IN_PROGRESS se
cancelan sin reembolso (puede que el worker ya esté consumiendo recursos).
Las tareas que ya han alcanzado un estado terminal (SUCCEEDED, FAILED,
CANCELED) no se pueden cancelar.
La ruta de la URL debe coincidir con la etapa de la tarea — DELETE en
/prototype/:buildId devuelve 404.
Parámetros de ruta
Name
id
Type
path
Description
Identificador único de la tarea de lámpara que se va a cancelar.
Devuelve
Devuelve 204 No Content en caso de éxito con un cuerpo vacío.
Modos de fallo
Name
400 - Bad Request
Description
La tarea ya está en un estado terminal y no se puede cancelar.
Name
404 - Not Found
Description
La tarea no existe, pertenece a un usuario diferente o su etapa no coincide con la ruta de la URL.
Transmite actualizaciones en tiempo real para una tarea de lámpara mediante SSE.
La ruta de la URL debe coincidir con la etapa de la tarea: abrir un flujo en
/prototype/:buildId/stream emite un único payload event: error con
status_code: 404 y cierra el flujo.
Parámetros
Name
id
Type
path
Description
Identificador único de la tarea de lámpara que se transmitirá.
Devuelve
Devuelve un flujo de objetos de tarea de Prototipo de lámpara
o Build de lámpara como
SSE. Para tareas PENDING o IN_PROGRESS, el flujo de respuesta
solo incluirá los campos necesarios progress y 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=***" }}
Recupera una lista paginada de tus tareas de lámpara para una única etapa. La
ruta de la URL selecciona la etapa: /prototype devuelve tareas de prototipo; /build
devuelve tareas de build. Las tareas de la otra etapa no se incluyen en ninguna
respuesta.
Parámetros de ruta
Name
stage
Type
path
Requerido
Description
Ya sea prototype o build. La colección devuelve solo tareas
cuya etapa coincide con la URL: obtener /prototype nunca devuelve
tareas de build y viceversa.
Parámetros de consulta
Name
page_num
Type
integer
predeterminado 1
Description
Número de página para la paginación.
Name
page_size
Type
integer
predeterminado 10
Description
Límite de tamaño de página. El máximo permitido es de 50 elementos.
Name
sort_by
Type
string
predeterminado -created_at
Description
Campo por el que ordenar. Valores disponibles:
+created_at: Ordenar por hora de creación en orden ascendente.
-created_at: Ordenar por hora de creación en orden descendente.
El objeto de tarea de prototipo de lámpara es una unidad de trabajo que Meshy rastrea para
generar una imagen conceptual estilizada de color blanco mate a partir de un prompt de texto
o de una foto de origen. La salida de esta etapa se encadena a
la etapa de construcción mediante input_task_id.
Propiedades
Name
id
Type
string
Description
Identificador único de la tarea. Aunque usamos un UUID ordenable por k para los ids de tareas como detalle de implementación, no debes hacer ninguna suposición sobre el formato del id.
Name
type
Type
string
Description
Tipo de la tarea. El valor es creative-lab-lamp-prototype.
Name
name
Type
string
Description
El nombre de la tarea proporcionado cuando se creó la tarea. Cadena vacía si no se proporcionó ningún nombre.
Name
status
Type
string
Description
Estado de la tarea. Los valores posibles son uno de PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.
Name
progress
Type
integer
Description
Progress de la tarea. Si la tarea aún no se ha iniciado, esta propiedad será 0. Una vez que la tarea se haya completado correctamente, esto pasará a ser 100.
Name
created_at
Type
timestamp
Description
Marca de tiempo de cuándo se creó la tarea, en milisegundos.
Una marca de tiempo representa el número de milisegundos transcurridos desde el 1 de enero de 1970 UTC, siguiendo
el estándar RFC 3339.
Por ejemplo, viernes, 1 de septiembre de 2023 12:00:00 PM GMT se representa como 1693569600000. Esto se aplica
a todas las marcas de tiempo en Meshy API.
Name
started_at
Type
timestamp
Description
Marca de tiempo de cuándo se inició la tarea, en milisegundos. Si la tarea aún no se ha iniciado, esta propiedad será 0.
Name
finished_at
Type
timestamp
Description
Marca de tiempo de cuándo finalizó la tarea, en milisegundos. Si la tarea aún no ha finalizado, esta propiedad será 0.
Name
expires_at
Type
timestamp
Description
Marca de tiempo de cuándo expira el resultado de la tarea, en milisegundos.
Name
preceding_tasks
Type
integer
Description
El recuento de tareas precedentes.
El valor de este campo solo es significativo si el estado de la tarea es PENDING.
Name
task_error
Type
object
Description
Detalles del error para tareas fallidas. Consulta Errores para ver la referencia completa del objeto task_error.
Name
consumed_credits
Type
integer
Description
El número de créditos consumidos por esta tarea. Presente cuando el estado de la tarea es PENDING, IN_PROGRESS o SUCCEEDED. Devuelve 0 para tareas FAILED (los créditos se reembolsan en caso de fallo).
Name
image_urls
Type
array of strings
Description
URLs descargables para las candidatas de imagen conceptual generadas por esta tarea de prototipo. Actualmente, la API siempre devuelve exactamente una candidata; el campo es un array para que futuras revisiones puedan mostrar múltiples candidatas sin un cambio incompatible.
El objeto de tarea de construcción de lámpara es una unidad de trabajo de la que Meshy realiza seguimiento para
generar la pantalla de lámpara final imprimible en 3D a partir de una tarea de prototipo SUCCEEDED.
La construcción ejecuta un borrador de imagen a 3D + un pipeline de textura sobre la imagen conceptual
del prototipo y, a continuación, posprocesa la malla mediante el procesador de lámparas para
vaciar, aplanar y (opcionalmente) cortar una base de accesorio.
Propiedades
Name
id
Type
string
Description
Identificador único de la tarea.
Name
type
Type
string
Description
Tipo de la tarea. El valor es creative-lab-lamp-build.
Name
name
Type
string
Description
El nombre de la tarea proporcionado cuando se creó la tarea. Cadena vacía si no se proporcionó ningún nombre.
Name
status
Type
string
Description
Estado de la tarea. Los valores posibles son uno de PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.
Name
progress
Type
integer
Description
progress de la tarea. Si la tarea aún no se ha iniciado, esta propiedad será 0. Una vez que la tarea se haya completado correctamente, pasará a ser 100.
Name
created_at
Type
timestamp
Description
Marca de tiempo de cuando se creó la tarea, en milisegundos.
Name
started_at
Type
timestamp
Description
Marca de tiempo de cuando se inició la tarea, en milisegundos.
Name
finished_at
Type
timestamp
Description
Marca de tiempo de cuando se finalizó la tarea, en milisegundos.
Name
expires_at
Type
timestamp
Description
Marca de tiempo de cuando expira el resultado de la tarea, en milisegundos.
Name
preceding_tasks
Type
integer
Description
El recuento de tareas precedentes. Solo tiene significado cuando el estado es PENDING.
Name
task_error
Type
object
Description
Detalles del error para tareas fallidas. Consulta Errores para la referencia completa del objeto task_error.
Name
consumed_credits
Type
integer
Description
El número de créditos consumidos por esta tarea. Devuelve 0 para tareas FAILED (los créditos se reembolsan en caso de fallo).
Name
model_urls
Type
object
Description
URL descargables para los artefactos generados, indexadas por nombre de artefacto. El conjunto de claves depende de output.format y options.light_source_preset:
Name
lamp_stl
Type
string
Description
URL descargable para la pantalla de la lámpara lamp.stl. Presente cuando output.format era stl (el valor predeterminado).
Name
base_stl
Type
string
Description
URL descargable para la base del accesorio base.stl. Presente cuando output.format era stlyoptions.light_source_preset no era none. Se omite cuando el preajuste del accesorio era none.
Name
bundle_zip
Type
string
Description
URL descargable a un paquete zip de cada artefacto que emite el procesador (lamp.stl, base.stl opcional y — cuando options.include_result_json es true — result.json). Presente cuando output.format era zip. Cuando bundle_zip está presente, lamp_stl / base_stl se omiten.