Remesh API
Přestavte síť 3D modelu s novou topology a počtem ploch a exportujte ji ve formátech, které si zvolíte. Model může pocházet z jiné úlohy Meshy, například Obrázek na 3D nebo Text na 3D, nebo ze souboru modelu.
Vytvoření úlohy Remesh
Vytvoří úlohu Remesh. Úloha běží na pozadí. Informace o tom, jak dlouho úloha obvykle trvá, najdete v části Doby zpracování.
Pro převod formátu modelu nebo změnu jeho velikosti použijte Convert API nebo Resize API. Zastaralé parametry na této stránce stále fungují, ale nové integrace by měly používat tyto koncové body.
Request
# Basic remesh with custom formats and resize
curl https://api.meshy.ai/openapi/v1/remesh \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"input_task_id": "018a210d-8ba4-705c-b111-1f1776f7f578",
"target_formats": ["glb", "fbx"],
"topology": "quad",
"target_polycount": 50000,
"resize_height": 1.0,
"origin_at": "bottom"
}'
# Quad remesh with auto-size
curl https://api.meshy.ai/openapi/v1/remesh \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"input_task_id": "018a210d-8ba4-705c-b111-1f1776f7f578",
"target_formats": ["glb", "fbx"],
"topology": "quad",
"target_polycount": 50000,
"auto_size": true
}'
Response
{
"result": "0193bfc5-ee4f-73f8-8525-44b398884ce9"
}
Parametry
- Name
- input_task_id
- Type
- string
- Povinné
- Description
Povinné, pokud neodešlete
model_url. ID úlohy, jejíž model chcete remeshovat, například úlohy Text na 3D, Obrázek na 3D, Retexturování nebo Remesh. Úloha musí být vytvořena vámi přes API a musí mít stavSUCCEEDED.
- Name
- model_url
- Type
- string
- Povinné
- Description
Povinné, pokud neodešlete
input_task_id. Model k remeshování, jako veřejná URL adresa nebo data URI. Pokud odešlete obojí, Meshy použijeinput_task_id.Model musí být soubor GLB, glTF, OBJ, FBX nebo STL o velikosti maximálně 400 MB z URL adresy
httpnebohttps, nebo 100 MB jako data URI. U data URI použijte MIME typeapplication/octet-stream.Soubor nad 100 MB musí navíc splňovat tato pravidla:
- Soubor GLB, glTF, FBX nebo OBJ může mít maximálně 10 000 000 ploch. Meshy počítá plochy jako trojúhelníky, takže čtyřúhelník se počítá jako 2 a síť vykreslená vícekrát se počítá jednou za každou kopii.
- Soubor FBX musí být binární FBX 7.1 nebo novější.
- Soubor GLB nebo glTF nesmí používat kompresi Draco.
- Name
- target_formats
- Type
- string[]
- výchozí ["glb"]
- Description
Formáty souborů, které se mají vygenerovat.
Dostupné hodnoty:
glbfbxobjusdzblendstl3mf
- Name
- topology
- Type
- string
- výchozí triangle
- Description
Typ ploch remeshovaného modelu.
Dostupné hodnoty:
quad: síť s převahou čtyřúhelníkůtriangle: decimovaná trojúhelníková síť
- Name
- target_polycount
- Type
- integer
- výchozí 30000
- Description
Počet ploch, kterého se má dosáhnout, od
100do300000. Výsledek se může od cílové hodnoty lišit v závislosti na geometrii modelu. Hodnota mimo rozsah vrátí400.
- Name
- decimation_mode
- Type
- integer
- Description
Adaptivní počet ploch podle úrovně. Pokud ji nastavíte, Meshy ignoruje
target_polycount.Dostupné hodnoty:
1: ultra2: vysoká3: střední4: nízká
- Name
- resize_height
- Type
- number
- ⚠ zastaralé
- výchozí 0
- Description
Místo toho použijte Resize API. Výška, na kterou se má model změnit, v metrech. Odešlete maximálně jeden z parametrů
resize_height,resize_longest_sideaauto_size.
- Name
- resize_longest_side
- Type
- number
- ⚠ zastaralé
- výchozí 0
- Description
Místo toho použijte Resize API. Délka, na kterou se má změnit nejdelší strana ohraničujícího kvádru modelu, v metrech. Odešlete maximálně jeden z parametrů
resize_height,resize_longest_sideaauto_size.
- Name
- auto_size
- Type
- boolean
- ⚠ zastaralé
- výchozí false
- Description
Místo toho použijte Resize API. Zda odhadnout skutečnou výšku objektu pomocí AI vidění a podle toho model změnit velikost. Odešlete maximálně jeden z parametrů
resize_height,resize_longest_sideaauto_size.
- Name
- origin_at
- Type
- string
- ⚠ zastaralé
- výchozí bottom
- Description
Místo toho použijte Resize API. Kam umístit počátek modelu,
bottomnebocenter. Výchozí hodnota se použije, pokud odešleteresize_height,resize_longest_sideneboauto_size. Bez jednoho z nich Meshy přesune počátek, jen pokud odešleteorigin_at.
- Name
- convert_format_only
- Type
- boolean
- ⚠ zastaralé
- Description
Místo toho použijte Convert API. Zda pouze převést model do formátů
target_formats. Pokud jetrue, Meshy ignorujetopology,target_polycount,decimation_mode,resize_height,resize_longest_sideaauto_size, ale přesto kontroluje jejich hodnoty, takže neplatná hodnota vrátí400. Sconvert_format_only: trueprázdné nebonulltarget_formatsvrátí400.
- Name
- alpha_thumbnail
- Type
- boolean
- výchozí false
- Description
Zda vykreslit i náhled s průhledným pozadím (RGBA), vrácený v
alpha_thumbnail_urlpři získání úlohy.thumbnail_urlse nezmění.
Návratové hodnoty
Pole result v odpovědi obsahuje ID nové úlohy Remesh.
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 ani
model_url, aniinput_task_id. - Neplatná vstupní úloha:
input_task_idnení úspěšná úloha API, nebo její AI model nepodporuje remeshování. - Neplatný formát modelu: Soubor
model_urlmá nepodporovanou příponu. - Nedostupná URL adresa: Meshy nemůže stáhnout soubor
model_url. - Soubor modelu je příliš velký: Soubor
model_urlje větší než 400 MB z URL adresyhttpnebohttps, nebo větší než 100 MB jako data URI. - Příliš mnoho ploch: Soubor
model_urlje větší než 100 MB a má více než 10 000 000 ploch. Snižte počet ploch a soubor odešlete znovu. - ASCII FBX nad 100 MB: Soubor
model_urlje ASCII FBX větší než 100 MB. Odešlete ho jako binární FBX nebo GLB. - Nečitelný soubor modelu: Soubor
model_urlje větší než 100 MB a Meshy nemůže přečíst jeho hlavičku. Jde například o GLB nebo glTF komprimovaný pomocí Draco nebo o binární FBX starší než 7.1. - Hlavička modelu je příliš složitá: Soubor
model_urlje větší než 100 MB a jeho hlavička obsahuje příliš mnoho sítí, uzlů nebo záznamů ke kontrole. Snižte počet objektů v souboru a odešlete ho znovu. - Neplatná topologie:
topologyneníquadanitriangle. - Vzájemně se vylučující parametry: Požadavek obsahuje více než jeden z parametrů
auto_size,resize_heightaresize_longest_side. Odešlete pouze jeden.
Opravte požadavek a odešlete ho znovu. Viz Chyby.
- Chybějící parametr: Nebyl odeslán ani
- 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.
- Bezplatný plán: 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
input_task_idje model typu basreliéf, který tento koncový bod nedokáže remeshovat. Zpráva zníThis model type does not support this operation. Odešlete jiný model.
- Name
404 - Not Found- Description
input_task_idneodpovídá žádné z vašich úloh. Zkontrolujte ID úlohy a odešlete požadavek znovu.
- Name
429 - Too Many Requests- Description
Překročili jste limit rychlosti. Počkejte a zkuste to znovu. Viz Limity rychlosti.
Získání úlohy Remesh
Vrátí úlohu Remesh podle jejího ID.
Request
curl https://api.meshy.ai/openapi/v1/remesh/a43b5c6d-7e8f-901a-234b-567c890d1e2f \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
{
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"type": "remesh",
"model_urls": {
"glb": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.glb?Expires=***",
"fbx": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.fbx?Expires=***",
"obj": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.obj?Expires=***",
"usdz": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.usdz?Expires=***",
"blend": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.blend?Expires=***",
"stl": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.stl?Expires=***"
},
"progress": 100,
"status": "SUCCEEDED",
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000001000,
"task_error": null
}
Parametry
- Name
- id
- Type
- path
- Description
ID úlohy z odpovědi na vytvoření.
Návratová hodnota
Smazání úlohy Remesh
Trvale smaže úlohu Remesh, včetně jejích modelů a dat. Smazání nelze vrátit zpět.
Request
curl --request DELETE \
--url https://api.meshy.ai/openapi/v1/remesh/a43b5c6d-7e8f-901a-234b-567c890d1e2f \
-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á již byla spuštěna,
takže by vás její smazání stálo kredity i výsledek. Počkejte, až dosáhne
stavu SUCCEEDED, FAILED nebo CANCELED, a poté ji smažte.
Smazání úlohy v konečném stavu (SUCCEEDED, FAILED nebo CANCELED)
nevrací její kredity.
Návratová hodnota
200 OK, pokud je úloha smazána, nebo 409 Conflict, pokud je úloha
ve stavu IN_PROGRESS.
Seznam úloh Remesh
Vrátí seznam vašich úloh Remesh.
Request
curl https://api.meshy.ai/openapi/v1/remesh?page_size=10 \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
[
{
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"type": "remesh",
"model_urls": {
"glb": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.glb?Expires=***",
"fbx": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.fbx?Expires=***",
"obj": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.obj?Expires=***",
"usdz": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.usdz?Expires=***",
"blend": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.blend?Expires=***",
"stl": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.stl?Expires=***"
},
"progress": 100,
"status": "SUCCEEDED",
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000001000,
"task_error": null
}
]
Parametry
- Name
- page_num
- Type
- integer
- výchozí 1
- Description
Číslo stránky, kterou chcete vrátit, až do
255. Vyšší hodnota vrátí400.
- Name
- page_size
- Type
- integer
- výchozí 10
- Description
Počet úloh na stránku, až
100.
- Name
- sort_by
- Type
- string
- Description
Pořadí řazení.
Dostupné hodnoty:
+created_at: od nejstarších-created_at: od nejnovějších
Návratová hodnota
Stránkovaný seznam objektů úlohy Remesh.
Streamování úlohy Remesh
Streamuje aktualizace úlohy Remesh jako Server-Sent Events (SSE).
Request
curl -N https://api.meshy.ai/openapi/v1/remesh/a43b5c6d-7e8f-901a-234b-567c890d1e2f/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.
// These examples are shortened. Each event holds the full task object.
event: message
data: {
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"progress": 0,
"status": "PENDING"
}
event: message
data: {
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"type": "remesh",
"model_urls": {
"glb": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.glb?Expires=***",
"fbx": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.fbx?Expires=***",
"obj": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.obj?Expires=***",
"usdz": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.usdz?Expires=***",
"blend": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.blend?Expires=***",
"stl": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.stl?Expires=***"
},
"progress": 100,
"status": "SUCCEEDED",
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000001000,
"task_error": null,
}
Parametry
- Name
- id
- Type
- path
- Description
ID úlohy z odpovědi na vytvoření.
Návratová hodnota
Proud objektů úlohy Remesh jako Server-Sent Events.
Každá událost obsahuje úplný objekt úlohy, ve stejném tvaru, jaký vrací koncový bod Get. Dokud je úloha ve stavu PENDING nebo IN_PROGRESS, její výsledková pole ještě nemají hodnoty.
Objekt úkolu Remesh
Objekt úkolu Remesh popisuje jeden remesh 3D modelu. Obsahuje stav, progress a soubory modelu, pokud úkol uspěje.
Vlastnosti
Example Remesh Task Object
{
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"type": "remesh",
"model_urls": {
"glb": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.glb?Expires=***",
"fbx": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.fbx?Expires=***",
"obj": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.obj?Expires=***",
"usdz": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.usdz?Expires=***",
"blend": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.blend?Expires=***",
"stl": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.stl?Expires=***"
},
"progress": 100,
"status": "SUCCEEDED",
"preceding_tasks": 0,
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000001000,
"task_error": {
"message": ""
},
"consumed_credits": 5
}
- 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
remesh.
- Name
- model_urls
- Type
- object
- Description
URL adresy ke stažení remeshovaného modelu, jedna pro každý formát souboru. Formát, který úkol nevygeneroval, nemá klíč, místo prázdného řetězce.
- Name
glb- Type
- string
- Description
Soubor GLB.
- Name
fbx- Type
- string
- Description
Soubor FBX.
- Name
obj- Type
- string
- Description
Soubor OBJ.
- Name
usdz- Type
- string
- Description
Soubor USDZ.
- Name
blend- Type
- string
- Description
Soubor Blenderu.
- Name
stl- Type
- string
- Description
Soubor STL.
- Name
3mf- Type
- string
- Description
Soubor 3MF. Přítomen pouze tehdy, když
target_formatsobsahuje3mf.
- Name
- thumbnail_url
- Type
- string
- Description
URL adresa ke stažení náhledového obrázku remeshovaného modelu.
- Name
- alpha_thumbnail_url
- Type
- string
- Description
URL adresa ke stažení verze
thumbnail_urls průhledným pozadím (RGBA). Přítomna pouze tehdy, když jste úkol vytvořili salpha_thumbnail: truea Meshy vykreslilo průhledný náhled.
- Name
- progress
- Type
- integer
- Description
Kolik z úkolu je hotovo, v procentech. Je
0, dokud úkol nezačne, a100, když uspěje.
- Name
- status
- Type
- string
- Description
Stav úkolu, jeden z
PENDING,IN_PROGRESS,SUCCEEDED,FAILEDneboCANCELED.
- Name
- preceding_tasks
- Type
- integer
- Description
Počet úkolů před tímto úkolem ve frontě. Hodnota má smysl pouze tehdy, když je úkol ve stavu
PENDING.
- Name
- created_at
- Type
- timestamp
- Description
Čas vytvoření úkolu, v milisekundách Unixu.
- Name
- started_at
- Type
- timestamp
- Description
Čas zahájení úkolu, v milisekundách Unixu. Je
0, dokud úkol nezačne.
- Name
- finished_at
- Type
- timestamp
- Description
Čas dokončení úkolu, v milisekundách Unixu. Je
0, dokud úkol neskončí.
- Name
- expires_at
- Type
- timestamp
- Description
Čas, kdy vyprší platnost URL adres pro stažení úkolu, v milisekundách Unixu. Je
0, dokud úkol neskončí.
- Name
- texture_urls
- Type
- array
- Description
URL adresy ke stažení textur modelu, pokud úkol uspěje: pole objektů, jeden pro každou sadu textur. Každý objekt má URL
base_colora může mít také URLmetallic,roughness,normal,emissionametallic_roughness. Jenull, dokud úkol neuspěje, a prázdné pole, když model nemá žádné textury.
- Name
- task_error
- Type
- object
- Description
Podrobnosti o chybě, když úkol selže. Viz Chyby.
- Name
- consumed_credits
- Type
- integer
- Description
Počet kreditů, které úkol spotřeboval. Přítomno, když je stav
PENDING,IN_PROGRESSneboSUCCEEDED. U úkolu se stavemFAILEDje0, protože Meshy v případě selhání úkolu vrací kredity.