lowpoly bude vyřazen 30. 10. 2026. Před těmito daty přejděte na jiný model, abyste předešli chybám požadavků. Zobrazit všechna ukončení podpory

Reliéf API

Proměňte jednu fotografii na 3D model s basreliéfem a 16bitovou hloubkovou mapu pro 3D tisk, laserové gravírování a CNC frézování.


POST/openapi/v1/relief

Vytvoření úlohy Reliéf

Vytvoří úlohu Reliéf. Tato úloha promění fotografii v basreliéfní model. Po úspěšném dokončení úloha vytvoří model jako soubor GLB a soubor STL, 16bitovou šedotónovou hloubkovou mapu a náhledový obrázek. Chcete-li získat pouze hloubkovou mapu, nastavte should_generate_model na false.

Úloha běží na pozadí.

Úloha Reliéf nemůže být vstupem jiného koncového bodu, například Remesh, Převést nebo Auto Split. Takové požadavky vrátí 403.

Request

POST
/openapi/v1/relief
# Simple request: a low relief, 60 mm on its longer side
curl https://api.meshy.ai/openapi/v1/relief \
-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>"
  }'

# Advanced request: a deep 120 mm relief with a thicker base, curved from side to side
curl https://api.meshy.ai/openapi/v1/relief \
-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>",
    "variant": "high",
    "size_mm": 120,
    "carving_depth_mm": 10,
    "base_thickness_mm": 3,
    "bend_mode": "convex",
    "bend_angle": 90
  }'

Response

{
  "result": "0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20"
}

Parametry

  • Name
    image_url
    Type
    string
    Povinné
    Description

    Fotografie, která se má proměnit v reliéf, jako veřejně dostupná URL adresa nebo Data URI (data:image/png;base64,...).

    Obrázek musí být soubor JPG, JPEG, PNG nebo WebP o velikosti nejvýše 20 MB a rozměrech alespoň 32 × 32 pixelů. Jeho delší strana může být nejvýše přibližně 16× delší než kratší strana. Jakýkoli jiný obrázek vrátí 400. Meshy před vytvořením reliéfu vyplní průhledné oblasti černou barvou.

  • Name
    variant
    Type
    string
    výchozí low
    Description

    Styl reliéfu. Určuje tvar hloubkové mapy a výchozí hodnotu carving_depth_mm.

    Dostupné hodnoty:

    • high: hlubší rytí, pro 3D tištěné kusy.
    • low: mělké rytí, pro laserové gravírování, CNC rytí a tenké destičky.

    Odeslání null nebo "" má stejný účinek jako vynechání parametru. Jakákoli jiná hodnota vrátí 400.

  • Name
    should_generate_model
    Type
    boolean
    výchozí true
    Description

    Zda se má vytvořit reliéfní model. Nastavte na false pro úlohu, která vytvoří pouze hloubkovou mapu, bez modelu a bez náhledového obrázku. Meshy přesto zkontroluje parametry velikosti, rytí, základny, ohybu a rozlišení, ale nepoužije je. Toto nastavení nemění cenu v kreditech.

  • Name
    size_mm
    Type
    number
    výchozí 60
    Description

    Délka delší strany fotografie na modelu, měřená v plochém stavu před jakýmkoli ohybem, od 20 do 250 milimetrů. S parametrem remove_base může být model menší.

  • Name
    carving_mode
    Type
    string
    výchozí emboss
    Description

    Zda motiv vystupuje z desky, nebo je do ní vyryt.

    Dostupné hodnoty:

    • emboss: bližší části fotografie vystupují.
    • engrave: hloubka je obrácená, takže bližší části jsou vyryty dovnitř.

    Hloubková mapa je v obou režimech stejná.

  • Name
    carving_depth_mm
    Type
    number
    výchozí 6 (high), 3 (low)
    Description

    Jak hluboko je reliéf vyryt, od 0 do 60 milimetrů. Pokud je remove_base nastaveno na true, hodnota 0 vytvoří prázdný model. Úloha přesto proběhne úspěšně a stojí 20 kreditů, přičemž její soubory GLB a STL neobsahují žádnou geometrii.

  • Name
    remove_base
    Type
    boolean
    výchozí false
    Description

    Zda se má odříznout pozadí a nevytvářet základní desku. Pokud je true, removal_threshold určuje, co se považuje za pozadí. Meshy kontroluje removal_threshold v obou případech.

Platí pouze když remove_base = true
  • Name
    removal_threshold
    Type
    number
    výchozí 0.01
    Description

    Hloubka, pod kterou Meshy odřízne pozadí, od 0.01 do 1, přičemž hloubková mapa se pohybuje od 0 do 1. Vysoká hodnota může odříznout celý reliéf a zanechat prázdný model, což přesto proběhne úspěšně a je zpoplatněno.

  • Name
    base_thickness_mm
    Type
    number
    výchozí 1, or 0 with remove_base
    Description

    Tloušťka základní desky, od 0.1 do 10 milimetrů. Pokud je remove_base nastaveno na true, vynechte tento parametr nebo odešlete 0.

  • Name
    bend_mode
    Type
    string
    výchozí off
    Description

    Zda a jakým směrem se má reliéf ohnout. Pokud není off, tvar ohybu určují bend_axis a bend_angle. Meshy je kontroluje v obou případech.

    Dostupné hodnoty:

    • off: plochý reliéf.
    • convex: přední strana se vyklenuje ven.
    • concave: přední strana se prohýbá dovnitř.
Platí pouze když bend_mode = convex or concave
  • Name
    bend_axis
    Type
    string
    výchozí xz
    Description

    Které okraje se ohybem zakřivují.

    Dostupné hodnoty:

    • xz: levý a pravý okraj.
    • yz: horní a dolní okraj.
  • Name
    bend_angle
    Type
    number
    výchozí 60
    Description

    Úhel oblouku, který ohyb pokrývá, od 0 do 360 stupňů. Pod hodnotou 1 zůstává reliéf plochý.

  • Name
    mesh_resolution
    Type
    integer
    výchozí 1024
    Description

    Počet bodů sítě podél delší strany fotografie, od 512 do 2048. Vyšší hodnota zachovává jemnější detaily a vytváří větší soubory. Při výchozí hodnotě 1024 má soubor GLB přibližně 40 až 50 MB a soubor STL přibližně 80 až 105 MB. Čtvercová fotografie dává větší velikosti. Při hodnotě 2048 jsou to přibližně 150 MB a 300 MB. Ohyb je ještě zvětšuje: soubor STL může při hodnotě 2048 dosáhnout přibližně 800 MB.

Návratové hodnoty

202 Accepted, s ID nové úlohy Reliéf v result.

Režimy selhání

  • Name
    400 - Bad Request
    Description

    Požadavek nelze spustit. Chybová zpráva uvádí, jaký problém byl zjištěn. Například:

    • Chybějící parametr: nebyl odeslán image_url.
    • Neplatný parametr: Parametr má špatný typ, je mimo svůj rozsah, nebo není jednou z dostupných hodnot. Například variant není high ani low, nebo mesh_resolution není celé číslo od 512 do 2048.
    • Tloušťka základny: base_thickness_mm není 0, pokud je remove_base nastaveno na true, nebo je nižší než 0.1, pokud nastaveno není.
    • Nedostupná URL adresa: Meshy nemůže stáhnout obrázek z image_url, například protože URL adresa vrací 404 nebo vyprší časový limit.
    • Neplatný obrázek: Obrázek není soubor JPG, JPEG, PNG ani WebP, má více než 20 MB, je menší než 32 × 32 pixelů, má příliš mnoho pixelů nebo jej nelze přečíst.
    • Extrémní poměr stran: Delší strana obrázku je více než přibližně 16× delší než kratší strana.

    Opravte požadavek a odešlete jej znovu. Meshy jej neúčtuje. Viz Chyby.

  • Name
    401 - Unauthorized
    Description

    API klíč chybí nebo je neplatný. Zkontrolujte hlavičku Authorization.

  • Name
    402 - Payment Required
    Description

    Například:

    • Nedostatek kreditů: Účet nemá dostatek kreditů pro tuto úlohu, nebo účet dosáhl limitu kreditů. Zkontrolujte svůj zůstatek kreditů a zkuste to znovu.
    • Plán zdarma: Vytvoření úlohy vyžaduje placený plán. Upgradujte svůj plán v nastavení předplatného a zkuste to znovu.
  • Name
    403 - Forbidden
    Description

    Moderation obsahu obrázek zablokovala. Meshy požadavek neúčtuje. Odešlete jiný obrázek.

  • Name
    429 - Too Many Requests
    Description

    Byl dosažen jeden z těchto limitů:

    • Odeslali jste příliš mnoho požadavků. Počkejte a poté to zkuste znovu. Viz Omezení rychlosti.
    • Příliš mnoho vašich úloh čeká ve frontě nebo běží. Počkejte, až se některé dokončí, a poté to zkuste znovu.
    • V neomezeném plánu bez zbývajících kreditů jste dosáhli počtu úloh, které mohou běžet bez kreditů. Počkejte, až se nějaká úloha dokončí, nebo přidejte kredity.

Pokud bezpečnostní kontrola obrázek během běhu úlohy odmítne, úloha selže s hodnotou task_error.type nastavenou na invalid_input a task_error.code nastavenou na provider_content_refused. Meshy vrátí kredity za úlohu. Odešlete jiný obrázek. Viz Chyby.


GET/openapi/v1/relief/:id

Získat úlohu Reliéf

Vrátí úlohu Reliéf podle jejího ID.

Request

GET
/openapi/v1/relief/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20
curl https://api.meshy.ai/openapi/v1/relief/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20 \
-H "Authorization: Bearer ${YOUR_API_KEY}"

Response

{
  "id": "0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20",
  "type": "relief",
  "model_urls": {
    "glb": "https://assets.meshy.ai/***/tasks/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20/output/model.glb?Expires=***",
    "stl": "https://assets.meshy.ai/***/tasks/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20/output/model.stl?Expires=***"
  },
  "depth_map_url": "https://assets.meshy.ai/***/tasks/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20/output/depth.png?Expires=***",
  "thumbnail_url": "https://assets.meshy.ai/***/tasks/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20/output/preview.png?Expires=***",
  "progress": 100,
  "status": "SUCCEEDED",
  "created_at": 1699999999000,
  "started_at": 1700000000000,
  "finished_at": 1700000060000,
  "expires_at": 1700259260000,
  "task_error": null,
  "consumed_credits": 20
}

Parametry

  • Name
    id
    Type
    path
    Description

    ID úlohy z odpovědi na vytvoření.

Návratová hodnota

Objekt úlohy Reliéf.


DELETE/openapi/v1/relief/:id

Smazání úlohy Reliéfu

Trvale smaže úlohu Reliéfu, včetně jejího modelu, mapy hloubky a dat. Smazání nelze vrátit zpět.

Request

DELETE
/openapi/v1/relief/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20
curl --request DELETE \
  --url https://api.meshy.ai/openapi/v1/relief/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20 \
  -H "Authorization: Bearer ${YOUR_API_KEY}"

Response

// 200 OK on success, with an empty body.
//
// 409 Conflict when the task is IN_PROGRESS. The task keeps running:
{
  "message": "Task is IN_PROGRESS and cannot be deleted. Credits for a task the worker has already started are not refundable; wait for it to reach SUCCEEDED, FAILED or CANCELED, then delete it."
}

Parametry cesty

  • Name
    id
    Type
    path
    Description

    ID úlohy, která má být smazána.

Stav úlohy

Smazání úlohy ve stavu PENDING vrátí kredity, které byly použity při jejím vytvoření.

Úlohu ve stavu IN_PROGRESS nelze smazat. Požadavek vrátí 409 Conflict a úloha pokračuje v běhu. Meshy nevrací kredity za úlohu, která už byla spuštěna, takže její smazání by vás stálo jak kredity, tak výsledek. Počkejte, až dosáhne stavu SUCCEEDED nebo FAILED, a poté ji smažte.

Smazání úlohy ve stavu SUCCEEDED nevrací její kredity. Úloze ve stavu FAILED již byly kredity vráceny v okamžiku selhání.

Návratové hodnoty

200 OK, pokud byla úloha smazána, nebo 409 Conflict, pokud je úloha ve stavu IN_PROGRESS.


GET/openapi/v1/relief

Seznam úloh Reliéfu

Vrátí seznam vašich úloh Reliéfu.

Request

GET
/openapi/v1/relief
curl https://api.meshy.ai/openapi/v1/relief?page_size=10 \
-H "Authorization: Bearer ${YOUR_API_KEY}"

Response

[
  {
    "id": "0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20",
    "type": "relief",
    "model_urls": {
      "glb": "https://assets.meshy.ai/***/tasks/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20/output/model.glb?Expires=***",
      "stl": "https://assets.meshy.ai/***/tasks/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20/output/model.stl?Expires=***"
    },
    "depth_map_url": "https://assets.meshy.ai/***/tasks/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20/output/depth.png?Expires=***",
    "thumbnail_url": "https://assets.meshy.ai/***/tasks/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20/output/preview.png?Expires=***",
    "progress": 100,
    "status": "SUCCEEDED",
    "created_at": 1699999999000,
    "started_at": 1700000000000,
    "finished_at": 1700000060000,
    "expires_at": 1700259260000,
    "task_error": null,
    "consumed_credits": 20
  }
]

Parametry

  • Name
    page_num
    Type
    integer
    Description

    Číslo stránky, kterou chcete vrátit. Začíná na 1 a výchozí hodnota je 1.

  • Name
    page_size
    Type
    integer
    Description

    Počet úloh na stránku, až 100. Výchozí hodnota je 10. Meshy zachází s hodnotou od 101 do 255 jako s 100 a vyšší hodnota vrátí 400.

  • Name
    sort_by
    Type
    string
    Description

    Pořadí řazení.

    Dostupné hodnoty:

    • +created_at: od nejstarších
    • -created_at: od nejnovějších

Návratové hodnoty

Stránkovaný seznam objektů úlohy Reliéfu.


GET/openapi/v1/relief/:id/stream

Streamování úlohy Reliéf

Streamuje aktualizace úlohy Reliéf jako Server-Sent Events (SSE).

Request

GET
/openapi/v1/relief/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20/stream
curl -N https://api.meshy.ai/openapi/v1/relief/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20/stream \
-H "Authorization: Bearer ${YOUR_API_KEY}"

Response Stream

// Error event example
event: error
data: {
  "status_code": 404,
  "message": "Task not found"
}

// Message event examples illustrate task progress (other task fields omitted here for brevity;
// each frame is the full task object).
event: message
data: {
  "id": "0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20",
  "progress": 0,
  "status": "PENDING"
}

event: message
data: {
  "id": "0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20",
  "type": "relief",
  "model_urls": {
    "glb": "https://assets.meshy.ai/***/tasks/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20/output/model.glb?Expires=***",
    "stl": "https://assets.meshy.ai/***/tasks/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20/output/model.stl?Expires=***"
  },
  "depth_map_url": "https://assets.meshy.ai/***/tasks/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20/output/depth.png?Expires=***",
  "thumbnail_url": "https://assets.meshy.ai/***/tasks/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20/output/preview.png?Expires=***",
  "progress": 100,
  "status": "SUCCEEDED",
  "created_at": 1699999999000,
  "started_at": 1700000000000,
  "finished_at": 1700000060000,
  "expires_at": 1700259260000,
  "task_error": null,
  "consumed_credits": 20
}

Parametry

  • Name
    id
    Type
    path
    Description

    ID úlohy z odpovědi na vytvoření.

Návratová hodnota

Proud objektů úlohy Reliéf jako Server-Sent Events.

Každá událost message obsahuje celý objekt úlohy, stejný, jaký vrací Získání úlohy Reliéf. Dokud je úloha ve stavu PENDING nebo IN_PROGRESS, pole, která se mezi událostmi mění, jsou progress, status, started_at a preceding_tasks (přítomné pouze tehdy, když jsou před touto úlohou ještě jiné úlohy). Pole model_urls, depth_map_url a thumbnail_url získají hodnoty, jakmile úloha dosáhne stavu SUCCEEDED. Úloha vytvářející pouze mapu hloubky si ponechá model_urls {} a prázdné thumbnail_url.

Událost error obsahuje pouze status_code a message, proto si před čtením status ověřte název události.


Objekt úkolu Reliéf

Objekt úkolu Reliéf popisuje jeden reliéf vytvořený z fotografie. model_urls, depth_map_url a thumbnail_url jsou vždy přítomné a prázdné, dokud úkol neuspěje.

The Relief Task Object

{
  "id": "0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20",
  "type": "relief",
  "model_urls": {
    "glb": "https://assets.meshy.ai/***/tasks/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20/output/model.glb?Expires=***",
    "stl": "https://assets.meshy.ai/***/tasks/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20/output/model.stl?Expires=***"
  },
  "depth_map_url": "https://assets.meshy.ai/***/tasks/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20/output/depth.png?Expires=***",
  "thumbnail_url": "https://assets.meshy.ai/***/tasks/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20/output/preview.png?Expires=***",
  "progress": 100,
  "status": "SUCCEEDED",
  "created_at": 1699999999000,
  "started_at": 1700000000000,
  "finished_at": 1700000060000,
  "expires_at": 1700259260000,
  "task_error": null,
  "consumed_credits": 20
}

Depth map only

{
  "id": "0199c3d2-6b8f-7c25-8f3a-4d9e2b7c5a31",
  "type": "relief",
  "model_urls": {},
  "depth_map_url": "https://assets.meshy.ai/***/tasks/0199c3d2-6b8f-7c25-8f3a-4d9e2b7c5a31/output/depth.png?Expires=***",
  "thumbnail_url": "",
  "progress": 100,
  "status": "SUCCEEDED",
  "created_at": 1699999999000,
  "started_at": 1700000000000,
  "finished_at": 1700000030000,
  "expires_at": 1700259230000,
  "task_error": null,
  "consumed_credits": 20
}
  • Name
    id
    Type
    string
    Description

    ID úkolu. Považujte jej za neprůhledný řetězec a nespoléhejte na jeho formát.

  • Name
    type
    Type
    string
    Description

    Typ úkolu, vždy relief.

  • Name
    model_urls
    Type
    object
    Description

    Adresy URL ke stažení modelu reliéfu. Soubory mohou být velké; mesh_resolution uvádí typické velikosti.

    • Name
      glb
      Type
      string
      Description

      Soubor GLB bez textury. Jeho jednotkami jsou metry. Chybí u úkolu, který generuje pouze mapu hloubky.

    • Name
      stl
      Type
      string
      Description

      Stejný model jako binární soubor STL. Jeho jednotkami jsou milimetry, takže se otevře ve skutečné velikosti reliéfu, s osou Z nahoru. Chybí u úkolu, který generuje pouze mapu hloubky.

  • Name
    depth_map_url
    Type
    string
    Description

    Adresa URL ke stažení 16bitové mapy hloubky ve stupních šedi, ze které je reliéf vytvořen. Světlejší pixely jsou výše. Hodnoty představují relativní výšky, nikoli milimetry. Software pro laserové gravírování a CNC ji může použít jako výškovou mapu. Soubor má přibližně 1 až 2 MB. Prázdné, pokud žádná neexistuje.

  • Name
    thumbnail_url
    Type
    string
    Description

    Adresa URL ke stažení náhledového obrázku modelu reliéfu. Prázdné, pokud nebyl žádný vykreslen, včetně úkolu generujícího pouze mapu hloubky.

  • Name
    progress
    Type
    integer
    Description

    Kolik z úkolu je hotovo, v procentech. Je 0, dokud úkol nezačne, a 100, když uspěje.

  • Name
    status
    Type
    string
    Description

    Stav úkolu, jeden z PENDING, IN_PROGRESS, SUCCEEDED nebo FAILED.

  • Name
    preceding_tasks
    Type
    integer
    Description

    Počet úkolů před tímto úkolem ve frontě. Pole se vynechává, pokud je hodnota 0, takže se zobrazuje pouze tehdy, když jsou před tímto úkolem jiné úkoly.

  • Name
    created_at
    Type
    timestamp
    Description

    Čas vytvoření úkolu, v milisekundách Unixového času.

  • Name
    started_at
    Type
    timestamp
    Description

    Čas spuštění úkolu, v milisekundách Unixového času. Je 0, dokud úkol nezačne.

  • Name
    finished_at
    Type
    timestamp
    Description

    Čas dokončení úkolu, v milisekundách Unixového času. Je 0, dokud úkol neskončí.

  • Name
    expires_at
    Type
    timestamp
    Description

    Čas vypršení platnosti výsledku úkolu, v milisekundách Unixového času. Je 0, dokud úkol neskončí.

  • Name
    task_error
    Type
    object
    Description

    Podrobnosti o chybě, pokud úkol selže. Viz Chyby.

  • Name
    consumed_credits
    Type
    integer
    Description

    Počet kreditů, které úkol spotřeboval: 20, nebo 0 u úkolu se stavem FAILED, který Meshy vrátí.