Förvandla en textprompt eller ett källfoto till en 3D-utskrivbar lampskärm i två
steg: prototype genererar en stiliserad mattvit konceptbild, sedan
build omvandlar den konceptbilden till en ihålig STL-lampskärm (valfritt
parad med en basskiva för en ljuskällearmatur). De två stegen är länkade
via input_task_id.
Generera en enda mattvit konceptbild för lampskärmen — antingen
från en text-prompt (text-till-3D) eller från ett referensfoto (bild-till-3D).
Det returnerade uppgifts-ID:t är det du skickar som input_task_id till build-
endpointen. Se
Objektet Lamp Prototype Task
för svarsstrukturen.
Parameter
Exakt en av text eller image_url är obligatorisk. Att skicka båda, eller ingen av dem, returnerar 400.
Name
text
Type
string
Obligatorisk
Description
Text-prompt som beskriver det önskade motivet för lampskärmen. Obligatorisk när image_url utelämnas. Högst 800 tecken.
Name
image_url
Type
string
Obligatorisk
Description
Källfoto som Meshy använder som visuell referens för lampskärmen. Obligatorisk när text utelämnas. Vi stöder för närvarande formaten .jpg, .jpeg, .png och .webp.
Det finns två sätt att tillhandahålla bilden:
Offentligt åtkomlig URL: En URL som är åtkomlig från det offentliga internet.
Data URI: En base64-kodad Data URI för bilden. Exempel på en Data URI: data:image/jpeg;base64,<your base64-encoded image data>.
Name
image_subject
Type
string
standard character
Description
Tips om motivkategori för bild-till-3D-flödet. Tillgängliga värden:
character (standard) — enskilt karaktärs-/objektmotiv (figur, djur, maskot osv.).
Valfritt uppgiftsnamn för visningsändamål. Högst 100 tecken.
Returnerar
Egenskapen result i svaret innehåller uppgiftens id för den nyligen skapade prototypuppgiften för lampa. Polla endpointen Hämta en uppgift eller prenumerera på strömmen tills uppgiften når SUCCEEDED, och skicka sedan det ID:t till build-endpointen som input_task_id.
Fellägen
Name
400 - Bad Request
Description
Begäran var ogiltig. Vanliga orsaker:
Saknad parameter: Exakt en av text eller image_url krävs.
Båda angivna: Att skicka både text och image_url avvisas — de är ömsesidigt uteslutande.
Ogiltigt bildformat: Den angivna image_url har inte ett format som stöds (.jpg, .jpeg, .png, .webp).
Bildmått utanför intervallet: Bilden är för liten, överskrider den maximala filstorleken eller överskrider det maximala antalet pixlar.
Oåtkomlig URL: image_url kunde inte laddas ner (404 eller timeout).
Ogiltig Data URI: Base64-strängen är felaktigt formaterad.
Innehåll flaggat: Indatabilden flaggades av NSFW- eller immaterialrätts-moderation.
Texten är för lång: text överskrider 800 tecken.
Ogiltigt image_subject: Inte en av character / landscape.
Name
401 - Unauthorized
Description
Autentisering misslyckades. Kontrollera din API-nyckel.
Name
402 - Payment Required
Description
Otillräckligt med credits för att utföra denna uppgift.
Name
429 - Too Many Requests
Description
Du har överskridit din hastighetsgräns.
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.
Generera den slutliga 3D-utskrivbara lampskärmen från en lyckad prototyp-
uppgift. Bygget kör en bild-till-3D-pipeline på prototypens koncept-
bild och efterbehandlar sedan nät genom lampprocessorn för att urholka
det, plana ut toppen, eventuellt skära ut en bas och (när en armaturförinställning
väljs) skapa en separat basskiva för ljuskällan. Se
Objektet för lampbyggeuppgift för
svarsstrukturen.
Parametrar
Name
input_task_id
Type
string
Obligatorisk
Description
Uppgifts-ID:t för en prototypuppgift som skapats via samma OpenAPI-endpoint. Prototypen måste ha skapats med samma API-nyckel, måste ha nått SUCCEEDED och måste ha producerat exakt en kandidatbild.
Prototypuppgifter som skapats via webbappen accepteras inte — bygg-endpointen accepterar endast prototypuppgifter som producerats av POST /openapi/creative-lab/lamp/v1/prototype och avvisar alla andra källor med 404.
Name
name
Type
string
Description
Valfritt uppgiftsnamn för visningsändamål. Högst 100 tecken.
options
Valfria justeringsparametrar för lampskärmens geometri. Varje fält har en rimlig standardinställning — skicka endast de du vill åsidosätta.
Name
diameter_mm
Type
number
standard 80
Description
Målinställd maximal dimension för lampskärmens begränsningsruta, i millimeter. Nätet (mesh) skalas enhetligt för att passa. Intervall: [50, 400].
Name
thickness_mm
Type
number
standard 1.5
Description
Väggtjocklek för den ihåliga lampskärmen, i millimeter. Intervall: (0, 10].
Name
cut_amount_percent
Type
number
standard 35
Description
Procentandel av lampskärmens höjd som ska planas ut upptill så att utskriften kan stå på bädden. Intervall: [1, 100].
Name
light_source_preset
Type
string
standard bambu_mh001_60mm
Description
Förinställning för ljuskälleanslutning som avgör om (och vilken) basskiva som ska skapas tillsammans med lampskärmen. Tillgängliga värden:
bambu_mh001_60mm (standard) — skapar en 60 mm basskiva dimensionerad för en kompatibel ljuskälleanslutning. Resultatet inkluderar model_urls.base_stl.
none — ingen anslutning, ingen basskiva. model_urls.base_stl utelämnas.
Name
fixture_offset_x_mm
Type
number
standard 0
Description
Horisontell X-axelförskjutning för anslutningsurtaget relativt lampskärmens centrum, i millimeter. Endast meningsfullt när light_source_preset ≠ none. Intervall: [-80, 80].
Name
fixture_offset_z_mm
Type
number
standard 0
Description
Vertikal Z-axelförskjutning för anslutningsurtaget relativt lampskärmens botten, i millimeter. Intervall: [-80, 80].
Name
rotate_x_deg
Type
number
standard 0
Description
Rotation runt X-axeln som tillämpas på det importerade nätet (mesh) före bearbetning, i grader. Intervall: [-360, 360].
Name
rotate_y_deg
Type
number
standard 0
Description
Rotation runt Y-axeln som tillämpas på det importerade nätet (mesh) före bearbetning, i grader. Intervall: [-360, 360].
Name
rotate_z_deg
Type
number
standard 0
Description
Rotation runt Z-axeln som tillämpas på det importerade nätet (mesh) före bearbetning, i grader. Intervall: [-360, 360].
Name
include_result_json
Type
boolean
standard false
Description
När true och output.format är zip inkluderas lampprocessorns result.json (som innehåller uppmätta nätmått + den upplösta uppsättningen alternativ) i paketet. Ignoreras när output.format är stl.
output
Valfri väljare för överföringsformat. Standard är stl.
Name
format
Type
string
standard stl
Description
Artefaktpaket som returneras av bygget. Tillgängliga värden:
stl (standard) — returnerar lampskärmen som model_urls.lamp_stl, plus model_urls.base_stl när light_source_preset ≠ none.
zip — paketerar varje artefakt som processorn skapar (lamp.stl, valfri base.stl, valfri result.json) i en enda zip och returnerar den under model_urls.bundle_zip.
Returnerar
Egenskapen result i svaret innehåller uppgifts-id för den nyligen skapade lampbyggeuppgiften. Polla endpointen Hämta en uppgift eller prenumerera på strömmen tills uppgiften når SUCCEEDED, och ladda sedan ned artefakterna från model_urls.
Fellägen
Name
400 - Bad Request
Description
Begäran var oacceptabel. Vanliga orsaker:
Saknad parameter: input_task_id krävs.
Ogiltigt UUID: input_task_id är inte ett giltigt UUID.
Överordnad inte slutförd: Den refererade prototypuppgiften har inte nått SUCCEEDED ännu.
Ingen kandidat: Prototypuppgiften lyckades men producerade ingen kandidatbild.
Alternativ utanför intervall: Ett av fälten i options låg utanför sitt tillåtna intervall eller sin enum-uppsättning.
Name
401 - Unauthorized
Description
Autentisering misslyckades. Kontrollera din API-nyckel.
Name
402 - Payment Required
Description
Otillräckliga credits för att utföra denna uppgift.
Name
404 - Not Found
Description
Den refererade prototypuppgiften finns inte, tillhör en annan användare eller skapades via webbappen (endast prototypuppgifter i API-mode kan kedjas till bygge).
Hämta en prototyp- eller bygguppgift med ett giltigt id. URL-sökvägen
måste matcha uppgiftens steg — en bygguppgift som hämtas via
/prototype/:id returnerar 404, och vice versa.
Avbryt en lampa-uppgift. Om uppgiften fortfarande är PENDING återbetalas de credits som förbrukades
vid skapandet. Uppgifter som redan är IN_PROGRESS avbryts
utan återbetalning (arbetaren kanske redan förbrukar resurser).
Uppgifter som redan har nått ett sluttillstånd (SUCCEEDED, FAILED,
CANCELED) kan inte avbrytas.
URL-sökvägen måste matcha uppgiftens steg — DELETE på
/prototype/:buildId returnerar 404.
Sökvägsparametrar
Name
id
Type
path
Description
Unik identifierare för lampa-uppgiften som ska avbrytas.
Returnerar
Returnerar 204 No Content vid lyckat resultat med en tom body.
Fellägen
Name
400 - Bad Request
Description
Uppgiften är redan i ett sluttillstånd och kan inte avbrytas.
Name
404 - Not Found
Description
Uppgiften finns inte, tillhör en annan användare eller dess steg matchar inte URL-sökvägen.
Strömma uppdateringar i realtid för en lampa-uppgift via Server-Sent Events (SSE).
URL-sökvägen måste matcha uppgiftens steg — att öppna en ström vid
/prototype/:buildId/stream skickar en enda event: error payload med
status_code: 404 och stänger strömmen.
Parametrar
Name
id
Type
path
Description
Unik identifierare för lampa-uppgiften som ska strömmas.
Returnerar
Returnerar en ström av uppgiftsobjekt för lampa-prototyp
eller lampa-bygge som
Server-Sent Events. För PENDING- eller IN_PROGRESS-uppgifter kommer svarsströmmen
endast att inkludera de nödvändiga fälten progress och 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=***" }}
Hämta en paginerad lista över dina lampa-uppgifter för ett enskilt steg. URL-
sökvägen väljer steget — /prototype returnerar prototypuppgifter; /build
returnerar bygguppgifter. Uppgifter från det andra steget ingår inte i något
svar.
Sökvägsparametrar
Name
stage
Type
path
Obligatorisk
Description
Antingen prototype eller build. Samlingen returnerar endast uppgifter
vars steg matchar URL:en — hämtning av /prototype returnerar aldrig
bygguppgifter och vice versa.
Frågeparametrar
Name
page_num
Type
integer
standard 1
Description
Sidnummer för paginering.
Name
page_size
Type
integer
standard 10
Description
Gräns för sidstorlek. Högsta tillåtna är 50 objekt.
Name
sort_by
Type
string
standard -created_at
Description
Fält att sortera efter. Tillgängliga värden:
+created_at: Sortera efter skapandetid i stigande ordning.
-created_at: Sortera efter skapandetid i fallande ordning.
Prototypuppgiftsobjektet för lampa är en arbetsenhet som Meshy håller reda på för att
generera en stiliserad mattvit konceptbild från antingen en text-prompt
eller ett källfoto. Resultatet från detta steg kopplas vidare till
byggsteget via input_task_id.
Egenskaper
Name
id
Type
string
Description
Unik identifierare för uppgiften. Även om vi använder ett k-sorterbart UUID för uppgifts-id:n som implementeringsdetalj, bör du inte göra några antaganden om id:ts format.
Name
type
Type
string
Description
Typ av uppgift. Värdet är creative-lab-lamp-prototype.
Name
name
Type
string
Description
Uppgiftsnamnet som angavs när uppgiften skapades. Tom sträng om inget namn angavs.
Name
status
Type
string
Description
Uppgiftens status. Möjliga värden är ett av PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.
Name
progress
Type
integer
Description
Uppgiftens progress. Om uppgiften inte har startats ännu kommer den här egenskapen att vara 0. När uppgiften har slutförts blir detta 100.
Name
created_at
Type
timestamp
Description
Tidsstämpel för när uppgiften skapades, i millisekunder.
En tidsstämpel representerar antalet millisekunder som har förflutit sedan 1 januari 1970 UTC, enligt
standarden RFC 3339.
Till exempel representeras fredag 1 september 2023 12:00:00 PM GMT som 1693569600000. Detta gäller
alla tidsstämplar i Meshy API.
Name
started_at
Type
timestamp
Description
Tidsstämpel för när uppgiften startades, i millisekunder. Om uppgiften inte har startats ännu kommer den här egenskapen att vara 0.
Name
finished_at
Type
timestamp
Description
Tidsstämpel för när uppgiften slutfördes, i millisekunder. Om uppgiften inte är slutförd ännu kommer den här egenskapen att vara 0.
Name
expires_at
Type
timestamp
Description
Tidsstämpel för när uppgiftsresultatet upphör att gälla, i millisekunder.
Name
preceding_tasks
Type
integer
Description
Antalet föregående uppgifter.
Värdet för det här fältet är meningsfullt endast om uppgiftens status är PENDING.
Name
task_error
Type
object
Description
Feldetaljer för misslyckade uppgifter. Se Fel för den fullständiga objektreferensen för task_error.
Name
consumed_credits
Type
integer
Description
Antalet credits som förbrukas av den här uppgiften. Finns när uppgiftens status är PENDING, IN_PROGRESS eller SUCCEEDED. Returnerar 0 för FAILED-uppgifter (credits återbetalas vid fel).
Name
image_urls
Type
array of strings
Description
Nedladdningsbara URL:er för konceptbildskandidaterna som genereras av den här prototypuppgiften. För närvarande returnerar API:t alltid exakt en kandidat; fältet är en array så att framtida revisioner kan exponera flera kandidater utan en brytande ändring.
Objektet för bygguppgift för lampa är en arbetsenhet som Meshy håller reda på för att
generera den slutliga 3D-utskrivbara lampskärmen från en prototypuppgift med statusen SUCCEEDED.
Bygget kör en pipeline för bild-till-3D-utkast + textur på prototypens
konceptbild och efterbearbetar sedan nätet (mesh) genom lampprocessorn för att
göra det ihåligt, platta till det och (valfritt) skära ut en armaturbas.
Egenskaper
Name
id
Type
string
Description
Unik identifierare för uppgiften.
Name
type
Type
string
Description
Typ av uppgift. Värdet är creative-lab-lamp-build.
Name
name
Type
string
Description
Uppgiftsnamnet som angavs när uppgiften skapades. Tom sträng om inget namn angavs.
Name
status
Type
string
Description
Status för uppgiften. Möjliga värden är ett av PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.
Name
progress
Type
integer
Description
Progress för uppgiften. Om uppgiften inte har startats än kommer den här egenskapen att vara 0. När uppgiften har slutförts framgångsrikt blir den 100.
Name
created_at
Type
timestamp
Description
En tidsstämpel för när uppgiften skapades, i millisekunder.
Name
started_at
Type
timestamp
Description
En tidsstämpel för när uppgiften startades, i millisekunder.
Name
finished_at
Type
timestamp
Description
En tidsstämpel för när uppgiften slutfördes, i millisekunder.
Name
expires_at
Type
timestamp
Description
En tidsstämpel för när uppgiftsresultatet upphör att gälla, i millisekunder.
Name
preceding_tasks
Type
integer
Description
Antalet föregående uppgifter. Meningsfullt endast när status är PENDING.
Name
task_error
Type
object
Description
Felinformation för misslyckade uppgifter. Se Fel för den fullständiga objektreferensen för task_error.
Name
consumed_credits
Type
integer
Description
Antalet credits som förbrukas av den här uppgiften. Returnerar 0 för FAILED-uppgifter (credits återbetalas vid fel).
Name
model_urls
Type
object
Description
Nedladdningsbara URL:er för de genererade artefakterna, indexerade efter artefaktnamn. Uppsättningen nycklar beror på output.format och options.light_source_preset:
Name
lamp_stl
Type
string
Description
Nedladdningsbar URL till lampskärmen lamp.stl. Finns när output.format var stl (standardvärdet).
Name
base_stl
Type
string
Description
Nedladdningsbar URL till armaturbasen base.stl. Finns när output.format var stlochoptions.light_source_preset inte var none. Utelämnas när armaturförinställningen var none.
Name
bundle_zip
Type
string
Description
Nedladdningsbar URL till ett zip-paket med varje artefakt som processorn producerar (lamp.stl, valfri base.stl och — när options.include_result_json är true — result.json). Finns när output.format var zip. När bundle_zip finns utelämnas lamp_stl / base_stl.