Proměňte zdrojovou fotografii na 3D tisknutelné stínidlo lampy ve dvou fázích:
prototyp vygeneruje stylizovaný matně bílý koncepční obrázek a promění jej
v dutý 3D model (GLB), poté sestavení spustí procesor lampy na tomto
modelu, aby vytvořil tisknutelné díly STL — stínidlo s otevřeným dnem se
základovou deskou pro světelný zdroj, plus samotné upevnění zdroje. Obě fáze
jsou propojeny pomocí input_task_id.
Vygenerujte jediný matně bílý koncepční obrázek z referenční fotografie a
převeďte jej na dutý 3D model stínidla lampy. Odpověď obsahuje jak
koncepční obrázek (image_urls), tak 3D model (model_urls.glb s
thumbnail_url). Vrácené ID úlohy je to, co předáváte jako input_task_id
koncovému bodu sestavení. Podrobnosti o tvaru odpovědi naleznete v části
Objekt úlohy prototypu lampy.
Parametry
Name
image_url
Type
string
Povinné
Description
Zdrojová fotografie, kterou Meshy používá jako vizuální referenci pro stínidlo lampy. V současnosti podporujeme formáty .jpg, .jpeg, .png a .webp.
Obrázek lze poskytnout dvěma způsoby:
Veřejně přístupná URL adresa: URL adresa přístupná z veřejného internetu.
Data URI: Base64 kódovaná datová URI adresa obrázku. Příklad Data URI: data:image/jpeg;base64,<vaše base64 kódovaná data obrázku>.
Name
image_subject
Type
string
výchozí character
Description
Nápověda kategorie subjektu, která vybírá prompt pro stylizaci. Dostupné hodnoty:
character (výchozí) — subjekt jedné postavy / objektu (figurka, zvíře, maskot atd.).
landscape — subjekt venkovní scény / panoramatu (hora, panorama města, les atd.).
Name
name
Type
string
Description
Volitelný název úlohy pro účely zobrazení. Maximálně 100 znaků.
Name
remove_background
Type
boolean
výchozí false
Description
Když je nastaveno na true, prototypový obrázek se vrátí jako transparentní RGBA PNG s odstraněným pozadím, takže můžete subjekt zkombinovat s libovolným pozadím.
Návratové hodnoty
Vlastnost result odpovědi obsahuje id úlohy nově vytvořeného prototypu lampy. Dotazujte se koncového bodu Získání úlohy nebo se přihlaste k odběru streamu, dokud úloha nedosáhne stavu SUCCEEDED, poté toto ID předejte koncovému bodu sestavení jako input_task_id.
Režimy selhání
Name
400 - Bad Request
Description
Požadavek byl nepřijatelný. Běžné příčiny:
Chybějící parametr: image_url je povinný.
Neplatný formát obrázku: Poskytnutý image_url není v podporovaném formátu (.jpg, .jpeg, .png, .webp).
Rozměry obrázku mimo rozsah: Obrázek je příliš malý, přesahuje maximální velikost souboru nebo přesahuje maximální počet pixelů.
Nedostupná URL adresa: image_url se nepodařilo stáhnout (404 nebo timeout).
Neplatné Data URI: Base64 řetězec je poškozený.
Obsah označen: Vstupní obrázek byl označen moderací NSFW nebo duševního vlastnictví.
Neplatné image_subject: Není jedno z character / landscape.
Name
401 - Unauthorized
Description
Autentizace selhala. Zkontrolujte prosím svůj API klíč.
Name
402 - Payment Required
Description
Nedostatek kreditů pro provedení této úlohy.
Name
429 - Too Many Requests
Description
Překročili jste svůj limit rychlosti.
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
Start with a source photo; the prototype returns the concept image and a hollow 3D model that the build stage processes.
Vygenerujte finální 3D tisknutelné díly z úspěšně dokončené úlohy prototypu.
Sestavení spustí procesor lampy nad 3D modelem prototypu: model
přeškáluje na diameter_mm, zploští spodní část o cut_amount_percent,
vydutí ho na thickness_mm, otevře spodní část a — pokud je zvolen
předvolený fixture — přidá základovou desku s otvorem pro fixture a
samostatný úchyt pro zdroj světla. Podobu odpovědi naleznete v části
Objekt úlohy sestavení lampy.
Parametry
Name
input_task_id
Type
string
Povinné
Description
ID úlohy prototypu vytvořené prostřednictvím téhož OpenAPI koncového bodu. Prototyp musel být vytvořen se stejným API klíčem, musel dosáhnout stavu SUCCEEDED a musel vytvořit 3D model.
Úlohy prototypů vytvořené prostřednictvím webové aplikace nejsou akceptovány — koncový bod pro sestavení přijímá pouze úlohy prototypů vytvořené pomocí POST /openapi/creative-lab/lamp/v1/prototype a jakýkoli jiný zdroj odmítne s chybou 404.
Name
name
Type
string
Description
Volitelný název úlohy pro zobrazení. Maximálně 100 znaků.
options
Volitelné parametry pro doladění geometrie stínidla lampy. Každé pole má rozumnou výchozí hodnotu — odešlete pouze ta, která chcete přepsat.
Name
diameter_mm
Type
number
výchozí 150
Description
Cílová maximální hodnota ohraničujícího kvádru stínidla lampy, v milimetrech. Síť je rovnoměrně přeškálována tak, aby se do rozměru vešla. Rozsah: [50, 400].
Name
thickness_mm
Type
number
výchozí 1
Description
Tloušťka stěny dutého stínidla lampy, v milimetrech. Rozsah: (0, 10].
Name
cut_amount_percent
Type
number
výchozí 1
Description
Procento výšky modelu odříznuté naplocho ve spodní části, aby stínidlo lampy stálo na tiskové podložce a mělo otvor pro fixture. Rozsah: [1, 100].
Name
light_source_preset
Type
string
výchozí bambu_mh001_60mm
Description
Předvolba fixture zdroje světla, která určuje, jak je vytvořena spodní část. Dostupné hodnoty:
bambu_mh001_60mm (výchozí) — stínidlo lampy s otevřenou spodní částí plus základová deska s 60mm otvorem pro fixture, obojí v model_urls.lamp_stl, a úchyt pro fixture jako model_urls.base_stl.
none — jediné uzavřené stínidlo lampy v model_urls.lamp_stl; model_urls.base_stl je vynecháno.
Name
fixture_offset_x_mm
Type
number
výchozí 0
Description
Posun otvoru pro fixture na základové desce podél osy X vzhledem ke středu stínidla lampy, v milimetrech. Má význam pouze pokud light_source_preset ≠ none. Rozsah: [-80, 80].
Name
fixture_offset_z_mm
Type
number
výchozí 0
Description
Posun otvoru pro fixture na základové desce podél osy Z (hloubka) vzhledem ke středu stínidla lampy, v milimetrech. Má význam pouze pokud light_source_preset ≠ none. Rozsah: [-80, 80].
Name
rotate_x_deg
Type
number
výchozí 0
Description
Otočení kolem osy X aplikované na model před zpracováním, ve stupních. Tři otočení jsou aplikována jako Eulerovy úhly XYZ kolem středu modelu. Rozsah: [-360, 360].
Name
rotate_y_deg
Type
number
výchozí 0
Description
Otočení kolem osy Y aplikované na importovanou síť před zpracováním, ve stupních. Rozsah: [-360, 360].
Name
rotate_z_deg
Type
number
výchozí 0
Description
Otočení kolem osy Z aplikované na importovanou síť před zpracováním, ve stupních. Rozsah: [-360, 360].
Name
include_result_json
Type
boolean
výchozí false
Description
Pokud je true a output.format je zip, zahrne do balíčku soubor result.json procesoru lampy (název pipeline, upozornění a cesty k artefaktům). Ignorováno, pokud je output.format nastaveno na stl.
output
Volitelný selektor formátu přenosu. Výchozí hodnota je stl.
stl (výchozí) — vrátí model_urls.lamp_stl (stínidlo lampy, spolu se základovou deskou, pokud je nastavena předvolba fixture), plus model_urls.base_stl, pokud light_source_preset ≠ none.
zip — zabalí každý artefakt vytvořený procesorem (lamp.stl, volitelně base.stl, volitelně result.json) do jednoho zip souboru a vrátí ho pod model_urls.bundle_zip.
Návratové hodnoty
Vlastnost result odpovědi obsahuje id úlohy nově vytvořené úlohy sestavení lampy. Dotazujte koncový bod Get a Task, nebo se přihlaste k odběru streamu, dokud úloha nedosáhne stavu SUCCEEDED, a poté stáhněte artefakty z model_urls.
Chybové stavy
Name
400 - Bad Request
Description
Požadavek byl neakceptovatelný. Časté příčiny:
Chybějící parametr: input_task_id je povinný.
Neplatné UUID: input_task_id není platné UUID.
Nadřazená úloha nedokončena úspěšně: Odkazovaná úloha prototypu ještě nedosáhla stavu SUCCEEDED.
Žádný model: Úloha prototypu byla úspěšná, ale nevytvořila žádný 3D model.
Options mimo rozsah: Jedno z polí options bylo mimo povolený rozsah nebo mimo množinu povolených hodnot.
Name
401 - Unauthorized
Description
Autentizace selhala. Zkontrolujte prosím svůj API klíč.
Name
402 - Payment Required
Description
Nedostatek kreditů k provedení této úlohy.
Name
404 - Not Found
Description
Odkazovaná úloha prototypu neexistuje, patří jinému uživateli nebo byla vytvořena prostřednictvím webové aplikace (do sestavení lze zřetězit pouze úlohy prototypů v API režimu).
Načtěte úlohu prototypu nebo úlohu sestavení pomocí platného id úlohy. Cesta URL
musí odpovídat fázi úlohy — úloha sestavení načtená přes
/prototype/:id vrátí 404, a naopak.
Zruší úlohu lampy. Pokud je úloha stále ve stavu PENDING, kredity
spotřebované při vytvoření jsou vráceny. Úlohy, které jsou již ve stavu
IN_PROGRESS, jsou zrušeny bez vrácení prostředků (worker může už spotřebovávat zdroje). Úlohy, které již dosáhly koncového stavu (SUCCEEDED, FAILED,
CANCELED), nelze zrušit.
Cesta URL musí odpovídat fázi úlohy — DELETE na
/prototype/:buildId vrátí 404.
Parametry cesty
Name
id
Type
path
Description
Jedinečný identifikátor úlohy lampy, kterou chcete zrušit.
Návratová hodnota
Při úspěchu vrací 204 No Content s prázdným tělem.
Chybové stavy
Name
400 - Bad Request
Description
Úloha je již v koncovém stavu a nelze ji zrušit.
Name
404 - Not Found
Description
Úloha neexistuje, patří jinému uživateli, nebo její fáze neodpovídá cestě URL.
Streamujte aktualizace úlohy typu lampa v reálném čase prostřednictvím Server-Sent Events (SSE).
Cesta URL musí odpovídat fázi úlohy — otevření streamu na
/prototype/:buildId/stream vyšle jediný event: error payload se
status_code: 404 a stream se uzavře.
Parametry
Name
id
Type
path
Description
Jedinečný identifikátor úlohy typu lampa, kterou chcete streamovat.
Návratová hodnota
Vrací proud objektů úlohy Lamp Prototype
nebo Lamp Build jako
Server-Sent Events. Každý snímek nese kompletní objekt úlohy pro danou fázi — stejný tvar, jaký vrací
koncový bod Get — takže dokud je úloha ve stavu PENDING nebo IN_PROGRESS, výstupní
pole zkrátka ještě nejsou vyplněná (null, [] nebo {}) a
finished_at je 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=***" }}
Načte stránkovaný seznam vašich úloh lampy pro jednu fázi. Cesta URL
určuje fázi — /prototype vrací úlohy prototypu; /build
vrací úlohy sestavení. Úlohy z druhé fáze nejsou zahrnuty v žádné
z odpovědí.
Parametry cesty
Name
stage
Type
path
Povinné
Description
Buď prototype, nebo build. Kolekce vrací pouze úlohy,
jejichž fáze odpovídá URL — načtení /prototype nikdy nevrátí
úlohy sestavení a naopak.
Parametry dotazu
Name
page_num
Type
integer
výchozí 1
Description
Číslo stránky pro stránkování.
Name
page_size
Type
integer
výchozí 10
Description
Limit velikosti stránky. Maximální povolená hodnota je 100 položek.
Name
sort_by
Type
string
výchozí -created_at
Description
Pole, podle kterého se řadí. Dostupné hodnoty:
+created_at: Řazení podle času vytvoření vzestupně.
-created_at: Řazení podle času vytvoření sestupně.
Objekt Lamp Prototype Task je pracovní jednotka, kterou Meshy sleduje za účelem
vygenerování stylizovaného matně bílého koncepčního obrázku ze zdrojové fotografie a
jeho převodu na dutý 3D model. Výstup této fáze je řetězen do
fáze sestavení prostřednictvím input_task_id.
Vlastnosti
Name
id
Type
string
Description
Jedinečný identifikátor úlohy. Ačkoli jako implementační detail používáme pro id úlohy k-sortovatelné UUID, neměli byste dělat žádné předpoklady o formátu id.
Name
type
Type
string
Description
Typ úlohy. Hodnota je creative-lab-lamp-prototype.
Name
name
Type
string
Description
Název úlohy zadaný při jejím vytvoření. Prázdný řetězec, pokud nebyl žádný název zadán.
Name
status
Type
string
Description
Stav úlohy. Možné hodnoty jsou jedna z PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.
Name
progress
Type
integer
Description
Progress úlohy. Pokud úloha ještě nebyla spuštěna, tato vlastnost bude 0. Jakmile úloha uspěje, stane se 100.
Name
created_at
Type
timestamp
Description
Časové razítko vytvoření úlohy, v milisekundách.
Časové razítko představuje počet milisekund uplynulých od 1. ledna 1970 UTC, podle
standardu RFC 3339.
Například pátek 1. září 2023 12:00:00 SEČ je reprezentován jako 1693569600000. To platí
pro všechna časová razítka v Meshy API.
Name
started_at
Type
timestamp
Description
Časové razítko spuštění úlohy, v milisekundách. Pokud úloha ještě nebyla spuštěna, tato vlastnost bude 0.
Name
finished_at
Type
timestamp
Description
Časové razítko dokončení úlohy, v milisekundách. Pokud úloha ještě nebyla dokončena, tato vlastnost bude 0.
Name
expires_at
Type
timestamp
Description
Časové razítko vypršení platnosti výsledku úlohy, v milisekundách.
Name
preceding_tasks
Type
integer
Description
Počet předcházejících úloh.
Hodnota tohoto pole má smysl pouze tehdy, je-li stav úlohy PENDING.
Name
task_error
Type
object
Description
Podrobnosti chyby u neúspěšných úloh. Kompletní referenci objektu task_error naleznete v části Chyby.
Name
consumed_credits
Type
integer
Description
Počet kreditů spotřebovaných touto úlohou. Je přítomno, pokud je stav úlohy PENDING, IN_PROGRESS nebo SUCCEEDED. Vrací 0 u úloh se stavem FAILED (kredity jsou při selhání vráceny).
Name
model_urls
Type
object
Description
URL adresy ke stažení pro 3D model vygenerovaný z koncepčního obrázku. Jsou přítomny po úspěšném dokončení úlohy; před tím {}.
Name
glb
Type
string
Description
URL ke stažení dutého matně bílého modelu stínidla lampy ve formátu GLB. Toto je model, který zpracovává fáze sestavení.
Name
thumbnail_url
Type
string
Description
URL ke stažení vykresleného náhledu 3D modelu. Prázdný řetězec, dokud úloha neuspěje.
Name
image_urls
Type
array of strings
Description
URL adresy ke stažení kandidátů koncepčního obrázku vygenerovaných touto prototypovou úlohou. API v současnosti vždy vrací přesně jednoho kandidáta; pole je pole (array), aby budoucí revize mohly zobrazit více kandidátů bez zásadní změny.
Objekt Lamp Build Task je pracovní jednotka, kterou Meshy sleduje za účelem
vygenerování finálního 3D tisknutelného stínidla lampy z úspěšně dokončeného úkolu prototypu.
Build spustí procesor lampy nad 3D modelem prototypu, aby jej vydutil,
zploštil a otevřel spodní část, a (s předvolbou fixace) přidal základovou desku
a montážní úchyt.
Vlastnosti
Name
id
Type
string
Description
Jedinečný identifikátor úkolu.
Name
type
Type
string
Description
Typ úkolu. Hodnota je creative-lab-lamp-build.
Name
name
Type
string
Description
Název úkolu zadaný při jeho vytvoření. Prázdný řetězec, pokud nebyl žádný název zadán.
Name
status
Type
string
Description
Stav úkolu. Možné hodnoty jsou jedna z PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.
Name
progress
Type
integer
Description
Postup úkolu (progress). Pokud úkol ještě nebyl zahájen, tato hodnota bude 0. Jakmile úkol úspěšně skončí, hodnota se změní na 100.
Name
created_at
Type
timestamp
Description
Časové razítko okamžiku vytvoření úkolu, v milisekundách.
Name
started_at
Type
timestamp
Description
Časové razítko okamžiku zahájení úkolu, v milisekundách.
Name
finished_at
Type
timestamp
Description
Časové razítko okamžiku dokončení úkolu, v milisekundách.
Name
expires_at
Type
timestamp
Description
Časové razítko okamžiku, kdy vyprší platnost výsledku úkolu, v milisekundách.
Name
preceding_tasks
Type
integer
Description
Počet předcházejících úkolů. Má význam pouze tehdy, když je stav PENDING.
Name
task_error
Type
object
Description
Podrobnosti o chybě u neúspěšných úkolů. Kompletní referenci objektu task_error najdete v části Chyby.
Name
consumed_credits
Type
integer
Description
Počet kreditů spotřebovaných tímto úkolem. U úkolů se stavem FAILED vrací 0 (kredity jsou v případě selhání vráceny).
Name
model_urls
Type
object
Description
Odkazy ke stažení vygenerovaných artefaktů, klíčované podle názvu artefaktu. Sada klíčů závisí na output.format a options.light_source_preset:
Name
lamp_stl
Type
string
Description
Odkaz ke stažení lamp.stl: stínidlo lampy s otevřeným dnem spolu se základovou deskou nesoucí otvor pro úchyt, nebo jednoduché uzavřené stínidlo lampy, pokud bylo options.light_source_preset nastaveno na none. Přítomno, pokud bylo output.format nastaveno na stl (výchozí hodnota).
Name
base_stl
Type
string
Description
Odkaz ke stažení base.stl, montážního úchytu pro světelný zdroj. Přítomno, pokud bylo output.format nastaveno na stla zároveňoptions.light_source_preset nebylo none. Vynecháno, pokud byla předvolba úchytu none.
Name
bundle_zip
Type
string
Description
Odkaz ke stažení zip balíčku obsahujícího všechny artefakty vytvořené procesorem (lamp.stl, volitelně base.stl, a — pokud je options.include_result_json nastaveno na true — result.json). Přítomno, pokud bylo output.format nastaveno na zip. Pokud je přítomno bundle_zip, jsou lamp_stl / base_stl vynechány.