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 přemění jej na
dutý 3D model (GLB), poté sestavení spustí procesor lampy na tomto modelu,
aby vytvořil tisknutelné díly STL — stínidlo lampy s otevřeným dnem se základní
deskou pro světelný zdroj, plus samotný úchyt pro světelný zdroj. Obě fáze jsou
propojeny prostřednictvím input_task_id.
Vygenerujte jeden 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
do koncového bodu pro sestavení (build). Podrobnosti o tvaru odpovědi
naleznete v
objektu úlohy Lamp Prototype.
Parametry
Name
image_url
Type
string
Povinné
Description
Zdrojová fotografie, kterou Meshy používá jako vizuální referenci pro stínidlo lampy. Momentálně podporujeme formáty .jpg, .jpeg, .png a .webp.
Obrázek lze poskytnout dvěma způsoby:
Veřejně dostupná 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í) — jednotlivá postava / předmět (figurka, zvíře, maskot atd.).
landscape — venkovní scéna / panorama (hora, panorama města, les atd.).
Name
name
Type
string
Description
Volitelný název úlohy pro zobrazovací účely. Maximálně 100 znaků.
Name
remove_background
Type
boolean
výchozí false
Description
Pokud je nastaveno na true, prototypový obrázek je vrácen jako průhledný RGBA PNG s odstraněným pozadím, takže můžete subjekt umístit na jakékoli pozadí.
Návratové hodnoty
Vlastnost result v odpovědi obsahuje id nově vytvořené úlohy Lamp Prototype. Dotazujte se na koncový bod 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 pro sestavení jako input_task_id.
Chybové stavy
Name
400 - Bad Request
Description
Požadavek byl nepřijatelný. Časté příčiny:
Chybějící parametr: image_url je povinný.
Neplatný formát obrázku: Zadaný 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í ani character, ani landscape.
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
429 - Too Many Requests
Description
Překročili jste 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.
Vygeneruje finální 3D tisknutelné díly z úspěšně dokončené prototypové úlohy.
Sestavení spustí procesor lampy na 3D modelu prototypu: přeškáluje
model na diameter_mm, zploští spodní část o cut_amount_percent,
vydlabe ji na thickness_mm, otevře spodní část a — pokud je zvolen
předvolený typ objímky (fixture preset) — přidá základovou desku s otvorem
pro objímku a samostatný držák pro zdroj světla. Podrobnosti o tvaru
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.
Prototypové úlohy vytvořené prostřednictvím webové aplikace nejsou akceptovány — koncový bod pro sestavení přijímá pouze prototypové úlohy vytvořené prostřednictvím 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í dimenze ohraničujícího kvádru stínidla lampy, v milimetrech. Síť je rovnoměrně přeškálována, aby se do ní 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, které je zploštěno u spodní části, aby stínidlo lampy sedělo na tiskové podložce a mělo otvor pro objímku. Rozsah: [1, 100].
Name
light_source_preset
Type
string
výchozí bambu_mh001_60mm
Description
Předvolba objímky 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 otvorem pro objímku o průměru 60 mm, obojí v model_urls.lamp_stl, a držák objímky 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 objímku na základové desce po ose 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 objímku na základové desce po ose 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. Všechny tři rotace jsou aplikovány jako XYZ Eulerovy úhly 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 nastaveno na 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ý výběr výstupního formátu. 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 objímky), plus model_urls.base_stl, pokud light_source_preset ≠ none.
zip — zabalí každý artefakt vygenerovaný procesorem (lamp.stl, volitelně base.stl, volitelně result.json) do jednoho zip souboru a vrátí jej v model_urls.bundle_zip.
Návratové hodnoty
Vlastnost result odpovědi obsahuje id úlohy nově vytvořené úlohy sestavení 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é stáhněte artefakty z model_urls.
Režimy selhání
Name
400 - Bad Request
Description
Požadavek byl nepřijatelný. Časté příčiny:
Chybějící parametr: input_task_id je povinný.
Neplatné UUID: input_task_id není platné UUID.
Nadřazená úloha nebyla úspěšná: Odkazovaná prototypová úloha ještě nedosáhla stavu SUCCEEDED.
Žádný model: Prototypová úloha byla úspěšná, ale nevytvořila žádný 3D model.
Volby mimo rozsah: Jedno z polí options bylo mimo povolený rozsah nebo množinu povolených hodnot.
Name
401 - Unauthorized
Description
Autentizace se nezdařila. 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á prototypová úloha neexistuje, patří jinému uživateli nebo byla vytvořena prostřednictvím webové aplikace (do sestavení lze zřetězit pouze prototypové úlohy vytvořené v API režimu).
Získá úlohu prototypu nebo sestavení podle 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šit úkol lampy. Pokud je úkol stále PENDING, kredity spotřebované při vytvoření jsou vráceny. Úkoly, které jsou již IN_PROGRESS, jsou zrušeny bez vrácení peněz (pracovník může již spotřebovávat zdroje). Úkoly, které již dosáhly konečného stavu (SUCCEEDED, FAILED, CANCELED), nelze zrušit.
Cesta URL musí odpovídat fázi úkolu — DELETE na
/prototype/:buildId vrací 404.
Parametry cesty
Name
id
Type
path
Description
Unikátní identifikátor úkolu lampy k zrušení.
Vrací
Vrací 204 No Content při úspěchu s prázdným tělem.
Režimy selhání
Name
400 - Bad Request
Description
Úkol je již v konečném stavu a nelze jej zrušit.
Name
404 - Not Found
Description
Úkol neexistuje, patří jinému uživateli nebo jeho fáze neodpovídá cestě URL.
Streamujte aktualizace v reálném čase pro úlohu lampy pomocí Server-Sent Events (SSE).
Cesta URL musí odpovídat fázi úlohy — otevření streamu na
/prototype/:buildId/stream vygeneruje jediný event: error payload s
status_code: 404 a stream se uzavře.
Parametry
Name
id
Type
path
Description
Jedinečný identifikátor úlohy lampy, kterou chcete streamovat.
Návratové hodnoty
Vrací stream objektů úlohy Lamp Prototype
nebo Lamp Build formou
Server-Sent Events. U úloh se stavem PENDING nebo IN_PROGRESS
bude proud odpovědí obsahovat pouze nezbytná pole progress a 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": 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čtě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á adrese 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 50 položek.
Name
sort_by
Type
string
výchozí -created_at
Description
Pole, podle kterého se má řadit. Dostupné hodnoty:
+created_at: Seřadit podle času vytvoření vzestupně.
-created_at: Seřadit podle času vytvoření sestupně.
Objekt úlohy prototypu lampy je pracovní jednotka, kterou Meshy sleduje a
která ze zdrojové fotografie vygeneruje stylizovaný matně bílý koncepční
obrázek a převede jej na dutý 3D model. Výstup této fáze je navázán na
fázi sestavení prostřednictvím input_task_id.
Vlastnosti
Name
id
Type
string
Description
Jedinečný identifikátor úlohy. I když jako implementační detail používáme pro id úloh 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
Průběh úlohy (progress). Pokud úloha ještě nebyla zahájena, tato vlastnost bude 0. Jakmile úloha úspěšně skončí, hodnota se změní na 100.
Name
created_at
Type
timestamp
Description
Časové razítko vytvoření úlohy, v milisekundách.
Časové razítko představuje počet milisekund, které uplynuly od 1. ledna 1970 UTC, podle
standardu RFC 3339.
Například pátek 1. září 2023 12:00:00 PM GMT 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 zahájení úlohy, v milisekundách. Pokud úloha ještě nebyla zahájena, 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, pokud je stav úlohy PENDING.
Name
task_error
Type
object
Description
Podrobnosti chyby pro neúspěšné úlohy. Kompletní referenci objektu task_error naleznete v části Chyby.
Name
consumed_credits
Type
integer
Description
Počet kreditů spotřebovaných touto úlohou. Přítomno, pokud je stav úlohy PENDING, IN_PROGRESS nebo SUCCEEDED. Vrací 0 pro úlohy se stavem FAILED (v případě selhání jsou kredity vráceny).
Name
model_urls
Type
object
Description
Stažitelné URL adresy pro 3D model vygenerovaný z koncepčního obrázku. Přítomno, jakmile úloha úspěšně skončí; do té doby {}.
Name
glb
Type
string
Description
Stažitelná URL adresa 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
Stažitelná URL adresa vykresleného náhledu 3D modelu. Prázdný řetězec, dokud úloha úspěšně neskončí.
Name
image_urls
Type
array of strings
Description
Stažitelné URL adresy pro kandidáty koncepčního obrázku vygenerované touto úlohou prototypu. V současnosti API vždy vrací přesně jednoho kandidáta; pole je typu array, aby budoucí revize mohly nabídnout více kandidátů bez rušivé (breaking) 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é prototypové úlohy.
Sestavení spustí procesor lampy nad 3D modelem z prototypu, aby jej vydutil,
zploštil a otevřel spodní část, a (s předvolbou úchytu) přidal základní desku
a úchyt pro svítidlo.
Vlastnosti
Name
id
Type
string
Description
Jedinečný identifikátor úlohy.
Name
type
Type
string
Description
Typ úlohy. Hodnota je creative-lab-lamp-build.
Name
name
Type
string
Description
Název úlohy zadaný při jejím vytvoření. Prázdný řetězec, pokud nebyl 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
Postup (progress) úlohy. Pokud úloha ještě nebyla spuštěna, bude tato vlastnost 0. Jakmile úloha uspěje, hodnota se změní na 100.
Name
created_at
Type
timestamp
Description
Časové razítko vytvoření úlohy, v milisekundách.
Name
started_at
Type
timestamp
Description
Časové razítko spuštění úlohy, v milisekundách.
Name
finished_at
Type
timestamp
Description
Časové razítko dokončení úlohy, v milisekundách.
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. Má význam pouze pokud je stav PENDING.
Name
task_error
Type
object
Description
Podrobnosti o chybě u neúspěšných úloh. Úplný popis objektu task_error naleznete v části Chyby.
Name
consumed_credits
Type
integer
Description
Počet kreditů spotřebovaných touto úlohou. U úloh se stavem FAILED vrací 0 (kredity jsou v případě selhání vráceny).
Name
model_urls
Type
object
Description
URL adresy ke stažení vygenerovaných výstupů, klíčované podle názvu výstupu. Sada klíčů závisí na output.format a options.light_source_preset:
Name
lamp_stl
Type
string
Description
URL ke stažení lamp.stl: stínidlo s otevřenou spodní částí spolu se základní deskou nesoucí otvor pro úchyt, nebo jediné uzavřené stínidlo, 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
URL ke stažení base.stl, ú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
URL ke stažení zip balíčku obsahujícího všechny výstupy generované 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.