Omvandla ett källfoto till en 3D-utskrivbar lampskärm i två steg:
prototyp genererar en stiliserad, matvit konceptbild och omvandlar den till
en ihålig 3D-modell (GLB), sedan kör bygge lampbearbetaren på den modellen
för att producera de utskrivbara STL-delarna — en lampskärm med öppen botten och en basplatta
för ljuskällans fattning, samt själva fästet för fattningen. De två stegen är
länkade via input_task_id.
Generera en enda matt-vit konceptbild från ett referensfoto och
konvertera den till en ihålig 3D-lampskärmsmodell. Svaret innehåller både
konceptbilden (image_urls) och 3D-modellen (model_urls.glb med en
thumbnail_url). Det returnerade task-ID:t är det du skickar som input_task_id
till build-endpointen. Se
The Lamp Prototype Task Object
för svarets struktur.
Parametrar
Name
image_url
Type
string
Obligatorisk
Description
Källfoto som Meshy använder som visuell referens för lampskärmen. Vi stöder för närvarande formaten .jpg, .jpeg, .png och .webp.
Det finns två sätt att tillhandahålla bilden:
Offentligt tillgänglig URL: En URL som är tillgänglig från det offentliga internet.
Data URI: En base64-kodad data URI av bilden. Exempel på en data URI: data:image/jpeg;base64,<your base64-encoded image data>.
Name
image_subject
Type
string
standard character
Description
Ledtråd för ämneskategori som väljer stylization-prompten. Tillgängliga värden:
character (standard) — enskild karaktär/objekt-ämne (figur, djur, maskot, etc.).
Valfritt tasknamn för visningsändamål. Maximalt 100 tecken.
Name
remove_background
Type
boolean
standard false
Description
När detta är satt till true returneras prototypbilden som en transparent RGBA-PNG med bakgrunden borttagen, så att du kan sammanfoga ämnet mot valfri bakgrund.
Returer
Egenskapen result i svaret innehåller task-id:t för den nyskapade lamp-prototyptasken. Poll:a Get a Task-endpointen eller prenumerera på stream tills tasken når SUCCEEDED, och skicka sedan det ID:t till build-endpointen som input_task_id.
Felfall
Name
400 - Bad Request
Description
Begäran var oacceptabel. Vanliga orsaker:
Saknad parameter: image_url krävs.
Ogiltigt bildformat: Den angivna image_url har inte ett format som stöds (.jpg, .jpeg, .png, .webp).
Bilddimensioner utanför tillåtet intervall: Bilden är för liten, överskrider maximal filstorlek eller överskrider maximalt antal pixlar.
Onåbar URL: image_url kunde inte laddas ner (404 eller timeout).
Ogiltig Data URI: Base64-strängen är felaktigt formaterad.
Innehåll flaggat: Inbildens innehåll flaggades av NSFW- eller immaterialrätts-moderation.
Ogiltig image_subject: Inte en av character / landscape.
Name
401 - Unauthorized
Description
Autentiseringen misslyckades. Kontrollera din API-nyckel.
Name
402 - Payment Required
Description
Otillräckliga credits för att utföra denna task.
Name
429 - Too Many Requests
Description
Du har överskridit din hastighetsgräns.
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
Börja med ett källfoto; prototypen returnerar konceptbilden och en ihålig 3D-modell som build-steget sedan bearbetar.
Skapa de slutliga 3D-utskrivbara delarna från en lyckad prototyp-task.
Byggprocessen kör lampprocessorn på prototypens 3D-modell: den skalar
modellen till diameter_mm, planar ut botten med cut_amount_percent,
urholkar den till thickness_mm, öppnar botten och — när en fixture-
förinställning väljs — lägger till en bottenplatta med fixture-hålet och
en separat montering för ljuskällan. Se
The Lamp Build Task Object för
svarsformatet.
Parametrar
Name
input_task_id
Type
string
Obligatorisk
Description
Task-ID för en prototyp-task skapad via samma OpenAPI-endpoint. Prototypen måste ha skapats med samma API-nyckel, måste ha nått SUCCEEDED och måste ha producerat en 3D-modell.
Prototyp-tasks skapade via webbappen accepteras inte — build-endpointen accepterar endast prototyp-tasks som producerats av POST /openapi/creative-lab/lamp/v1/prototype och avvisar alla andra källor med 404.
Name
name
Type
string
Description
Valfritt task-namn för visningsändamål. Maximalt 100 tecken.
options
Valfria justeringsparametrar för lampskärmens geometri. Varje fält har ett rimligt standardvärde — skicka bara de du vill åsidosätta.
Name
diameter_mm
Type
number
standard 150
Description
Måldimension (maximal) för lampskärmens begränsningsruta, i millimeter. Nätet skalas jämnt för att passa. Intervall: [50, 400].
Name
thickness_mm
Type
number
standard 1
Description
Väggtjocklek för den ihåliga lampskärmen, i millimeter. Intervall: (0, 10].
Name
cut_amount_percent
Type
number
standard 1
Description
Procentandel av modellens höjd som skärs plant vid botten, så att lampskärmen står på utskriftsbädden och har en öppning för fixturen. Intervall: [1, 100].
Name
light_source_preset
Type
string
standard bambu_mh001_60mm
Description
Förinställning för ljuskällans fixture som avgör hur botten byggs. Tillgängliga värden:
bambu_mh001_60mm (standard) — öppen-botten lampskärm plus en bottenplatta med ett 60 mm fixture-hål, båda i model_urls.lamp_stl, och fixture-monteringen som model_urls.base_stl.
none — en enda förseglad lampskärm i model_urls.lamp_stl; model_urls.base_stl utelämnas.
Name
fixture_offset_x_mm
Type
number
standard 0
Description
X-axelförskjutning för fixture-hålet på bottenplattan, i förhållande till 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
Z-axelförskjutning (djup) för fixture-hålet på bottenplattan, i förhållande till lampskärmens centrum, i millimeter. Endast meningsfullt när light_source_preset ≠ none. Intervall: [-80, 80].
Name
rotate_x_deg
Type
number
standard 0
Description
Rotation kring X-axeln som tillämpas på modellen innan bearbetning, i grader. De tre rotationerna tillämpas som XYZ-Euler-vinklar kring modellens centrum. Intervall: [-360, 360].
Name
rotate_y_deg
Type
number
standard 0
Description
Rotation kring Y-axeln som tillämpas på det importerade nätet innan bearbetning, i grader. Intervall: [-360, 360].
Name
rotate_z_deg
Type
number
standard 0
Description
Rotation kring Z-axeln som tillämpas på det importerade nätet innan 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 (pipeline-namn, varningar och sökvägar till artefakter) i paketet. Ignoreras när output.format är stl.
output
Valfri väljare för dataformat. Standard är stl.
Name
format
Type
string
standard stl
Description
Artefaktpaket som returneras av byggprocessen. Tillgängliga värden:
stl (standard) — returnerar model_urls.lamp_stl (lampskärmen, tillsammans med bottenplattan när en fixture-förinställning har angetts), plus model_urls.base_stl när light_source_preset ≠ none.
zip — paketerar varje artefakt som processorn genererar (lamp.stl, valfri base.stl, valfri result.json) i en enda zip-fil och returnerar den under model_urls.bundle_zip.
Returvärden
Egenskapen result i svaret innehåller task-id för den nyligen skapade lamp build-tasken. Fråga Get a Task-endpointen eller prenumerera på stream tills tasken når SUCCEEDED, och ladda sedan ner artefakterna från model_urls.
Felfall
Name
400 - Bad Request
Description
Förfrågan var inte godtagbar. Vanliga orsaker:
Saknad parameter: input_task_id krävs.
Ogiltig UUID: input_task_id är inte en giltig UUID.
Överordnad task inte lyckad: Den refererade prototyp-tasken har ännu inte nått SUCCEEDED.
Ingen modell: Prototyp-tasken lyckades men producerade ingen 3D-modell.
Alternativ utanför intervall: Ett av fälten i options låg utanför sitt tillåtna intervall eller uppräkningsvärde.
Name
401 - Unauthorized
Description
Autentiseringen misslyckades. Kontrollera din API-nyckel.
Name
402 - Payment Required
Description
Otillräckligt med credits för att utföra denna task.
Name
404 - Not Found
Description
Den refererade prototyp-tasken finns inte, tillhör en annan användare eller skapades via webbappen (endast prototyp-tasks i API-mode kan kedjas till build).
Hämta en prototyp- eller byggnadsuppgift givet ett giltigt uppgifts-id. URL-sökvägen
måste matcha uppgiftens skede — en byggnadsuppgift som hämtas via
/prototype/:id returnerar 404, och vice versa.
Avbryt en lamp-uppgift. Om uppgiften fortfarande är PENDING återbetalas de
credits som förbrukades vid skapandet. Uppgifter som redan är IN_PROGRESS
avbryts utan återbetalning (arbetaren kan redan hålla på att förbruka resurser).
Uppgifter som redan har nått ett slutgiltigt tillstå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 lamp-uppgiften som ska avbrytas.
Returnerar
Returnerar 204 No Content vid lyckat resultat med en tom body.
Felscenarier
Name
400 - Bad Request
Description
Uppgiften befinner sig redan i ett slutgiltigt tillstå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.
Streama uppdateringar i realtid för en lamp-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 sedan strömmen.
Parametrar
Name
id
Type
path
Description
Unik identifierare för den lamp-uppgift som ska streamas.
Returnerar
Returnerar en ström av Lamp Prototype-
eller Lamp Build-uppgiftsobjekt som
Server-Sent Events. Varje frame innehåller hela uppgiftsobjektet för steget — samma form som
Get-endpointen returnerar — så medan uppgiften är PENDING eller IN_PROGRESS är
utdatafälten helt enkelt inte ifyllda ännu (null, [] eller {}) och
finished_at är 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=***" }}
Hämta en paginerad lista över dina lampuppgifter för ett enskilt steg. URL-sökvägen väljer steget — /prototype returnerar prototypuppgifter; /build returnerar byggnadsuppgifter. Uppgifter från det andra steget ingår inte i något av svaren.
Sökvägsparametrar
Name
stage
Type
path
Obligatorisk
Description
Antingen prototype eller build. Samlingen returnerar endast uppgifter vars steg matchar URL:en — att hämta /prototype returnerar aldrig byggnadsuppgifter 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
Sidstorleksgräns. Maximalt tillåtet är 100 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.
Objektet Lamp Prototype Task är en arbetsenhet som Meshy håller reda på för att
generera en stiliserad, mattvit konceptbild från ett källfoto och
konvertera den till en ihålig 3D-modell. Resultatet av detta steg kedjas vidare till
byggsteget via input_task_id.
Egenskaper
Name
id
Type
string
Description
Unik identifierare för uppgiften. Även om vi använder en k-sorterbar UUID för uppgifts-id:n som implementationsdetalj, bör du inte göra några antaganden om formatet på id:t.
Name
type
Type
string
Description
Uppgiftens typ. Värdet är creative-lab-lamp-prototype.
Name
name
Type
string
Description
Uppgiftens namn 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 ännu inte har startats kommer denna egenskap att vara 0. När uppgiften har lyckats blir den 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 fredagen den 1 september 2023 kl. 12:00:00 GMT som 1693569600000. Detta gäller
för alla tidsstämplar i Meshy API.
Name
started_at
Type
timestamp
Description
Tidsstämpel för när uppgiften startades, i millisekunder. Om uppgiften ännu inte har startats kommer denna egenskap att vara 0.
Name
finished_at
Type
timestamp
Description
Tidsstämpel för när uppgiften avslutades, i millisekunder. Om uppgiften ännu inte är avslutad kommer denna egenskap att vara 0.
Name
expires_at
Type
timestamp
Description
Tidsstämpel för när uppgiftens resultat upphör att gälla, i millisekunder.
Name
preceding_tasks
Type
integer
Description
Antalet föregående uppgifter.
Värdet i detta fält är endast relevant om uppgiftens status är PENDING.
Name
task_error
Type
object
Description
Felinformation för misslyckade uppgifter. Se Fel för den fullständiga referensen för objektet task_error.
Name
consumed_credits
Type
integer
Description
Antalet credits som förbrukats av denna uppgift. Finns när uppgiftens status är PENDING, IN_PROGRESS eller SUCCEEDED. Returnerar 0 för uppgifter med status FAILED (credits återbetalas vid fel).
Name
model_urls
Type
object
Description
Nedladdningsbara URL:er för 3D-modellen som genererats från konceptbilden. Finns när uppgiften har lyckats; {} innan dess.
Name
glb
Type
string
Description
Nedladdningsbar URL till den ihåliga, mattvita lampskärmsmodellen i GLB-format. Detta är modellen som byggsteget bearbetar.
Name
thumbnail_url
Type
string
Description
Nedladdningsbar URL till en renderad förhandsvisning av 3D-modellen. Tom sträng tills uppgiften har lyckats.
Name
image_urls
Type
array of strings
Description
Nedladdningsbara URL:er för de konceptbildkandidater som genererats av denna prototyp-uppgift. För närvarande returnerar API:et alltid exakt en kandidat; fältet är en array så att framtida revisioner kan visa flera kandidater utan en brytande ändring.
Lampbygguppgiftsobjektet är en arbetsenhet som Meshy håller reda på för att
generera den slutliga 3D-utskrivbara lampskärmen från en lyckad prototypuppgift.
Bygget kör lampprocessorn på prototypens 3D-modell för att göra den ihålig,
platta till och öppna botten, och (med en fixturförinställning) lägga till basplattan
och fixturfästet.
Egenskaper
Name
id
Type
string
Description
Unik identifierare för uppgiften.
Name
type
Type
string
Description
Typ av uppgiften. Värdet är creative-lab-lamp-build.
Name
name
Type
string
Description
Uppgiftens namn 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 ännu inte har startat är denna egenskap 0. När uppgiften har lyckats blir den 100.
Name
created_at
Type
timestamp
Description
Tidsstämpel för när uppgiften skapades, i millisekunder.
Name
started_at
Type
timestamp
Description
Tidsstämpel för när uppgiften startades, i millisekunder.
Name
finished_at
Type
timestamp
Description
Tidsstämpel för när uppgiften avslutades, i millisekunder.
Name
expires_at
Type
timestamp
Description
Tidsstämpel för när uppgiftens resultat 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
Feldetaljer för misslyckade uppgifter. Se Fel för den fullständiga referensen för task_error-objektet.
Name
consumed_credits
Type
integer
Description
Antalet credits som förbrukats av denna uppgift. Returnerar 0 för FAILED-uppgifter (credits återbetalas vid misslyckande).
Name
model_urls
Type
object
Description
Nedladdningsbara URL:er för de genererade artefakterna, nycklade efter artefaktnamn. Uppsättningen nycklar beror på output.format och options.light_source_preset:
Name
lamp_stl
Type
string
Description
Nedladdningsbar URL till lamp.stl: lampskärmen med öppen botten tillsammans med basplattan som bär fixturhålet, eller en enda förseglad lampskärm när options.light_source_preset var none. Finns när output.format var stl (standardvärdet).
Name
base_stl
Type
string
Description
Nedladdningsbar URL till base.stl, ljuskällans fixturfäste. Finns när output.format var stlochoptions.light_source_preset inte var none. Utelämnas när fixturfö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.