Omvandla ett källfoto till en 3D-utskrivbar nyckelringsmedaljong — en märkesformad,
färglagd djupreliefbild — i två steg: prototype genererar en färglagd konceptbild
från ditt inmatade foto, sedan omvandlar build konceptbilden till en relief-3D-modell.
De två stegen länkas samman via input_task_id.
Genererar en enda färglagd konceptbild från källfotot. Det returnerade
task-ID:t är det du skickar som input_task_id till build-endpointen.
Se
Nyckelrings-prototyptask-objektet
för svarets format.
Parametrar
Name
image_url
Type
string
Obligatorisk
Description
Källfoto som Meshy ska färglägga till en nyckelrings-klar konceptbild. 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
name
Type
string
Description
Valfritt tasknamn för visningsändamål. Max 100 tecken.
Detta märker tasken i din instrumentpanel och tasklistor. Det graveras inte in på nyckelringen — använd name_text för det.
Name
name_text
Type
string
Description
Text att gravera in på nyckelringen, till exempel ett husdjurs eller en persons namn. Max 10 tecken, räknat som Unicode-tecken snarare än byte, så ett 10-tecken långt kinesiskt, japanskt eller koreanskt namn godkänns. Utelämna det för att skapa en nyckelring utan gravyr.
Omgivande blanksteg trimmas bort och osynliga formateringstecken tas bort innan texten används. Det resulterande värdet returneras som name_text på prototyptask-objektet, så att du kan bekräfta exakt vad som kommer att graveras innan du betalar för build-steget.
Graveringen tillämpas här, i prototypsteget. Build-steget ärver den automatiskt och accepterar inte en egen name_text.
När texten inte är vanlig ASCII, skicka begärans body som UTF-8 och ange Content-Type: application/json; charset=utf-8. Vissa HTTP-klienter — bland dem Windows PowerShells Invoke-RestMethod — kodar bodyn som ISO-8859-1 som standard, vilket i tysthet omvandlar varje icke-latinskt tecken till ? innan det når Meshy. API:et kan inte skilja detta från en gravyr du faktiskt bad om.
Name
remove_background
Type
boolean
standard false
Description
När det anges till true returneras prototypbilden som en transparent RGBA-PNG med bakgrunden borttagen, så att du kan sammanfoga motivet med valfri bakgrund.
Detta styr endast bilden som denna endpoint returnerar. Det är separat från byggalternativet med samma namn (standard true), som styr bakgrundsborttagning innan reliefering.
Returer
Egenskapen result i svaret innehåller task-id:t för den nyskapade nyckelrings-prototyptasken. Poll:a Get a Task-endpointen eller prenumerera på strömmen 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 intervallet: 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.
Gravyr för lång: name_text är längre än 10 tecken. Begäran avvisas i stället för att trunkeras, så du debiteras aldrig för en nyckelring graverad med ett förkortat namn.
Innehåll flaggat: Den inmatade bilden flaggades av moderation för olämpligt innehåll eller immateriella rättigheter, eller name_text-gravyren flaggades av moderation för olämpligt innehåll. Gravyren granskas endast för olämpligt innehåll — granskning av immateriella rättigheter gäller för bilden.
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
429 - Too Many Requests
Description
Du har överskridit din hastighetsgräns.
Request
POST
/openapi/creative-lab/keychain/v1/prototype
# Stage 1: generate a colorized keychain concept imagecurlhttps://api.meshy.ai/openapi/creative-lab/keychain/v1/prototype \-XPOST \-H"Authorization: Bearer ${YOUR_API_KEY}" \-H'Content-Type: application/json; charset=utf-8' \-d'{ "image_url": "<your publicly accessible image url or base64-encoded data URI>", "name_text": "Luna" }'
Response
{"result":"018a210d-8ba4-705c-b111-1f1776f7f578"}
Prototype example
Start with a source photo, then generate the prototype image used by the keychain build stage.
Genererar den slutgiltiga 3D-utskrivbara nyckelringsmedaljongen från en lyckad
prototyp-uppgift. Bygget kör en pipeline för djupkarterelief på
prototypens färglagda konceptbild och levererar en enda nät-artefakt i
det format du begär. Se
Objektet Keychain Build Task för
svarets struktur.
Parametrar
Name
input_task_id
Type
string
Obligatorisk
Description
Uppgifts-ID för en prototyp-uppgift skapad via samma OpenAPI-endpoint. Prototypen måste ha skapats med samma API-nyckel, måste ha nått SUCCEEDED och måste ha genererat exakt en kandidatbild.
Prototyp-uppgifter som skapats via webbappen accepteras inte — build-endpointen accepterar endast prototyp-uppgifter som producerats av POST /openapi/creative-lab/keychain/v1/prototype och avvisar alla andra källor med 404.
Name
name
Type
string
Description
Valfritt uppgiftsnamn för visningsändamål. Maximalt 100 tecken.
options
Valfria inställningsparametrar för reliefgeometrin. Varje fält har ett förnuftigt standardvärde — skicka endast de du vill åsidosätta.
Name
badge_shape
Type
string
standard circle
Description
Konturens siluett för nyckelringsmedaljongen. Tillgängliga värden:
circle (standard)
rounded-rect
hexagon
shield
star
Name
size_mm
Type
number
standard 40
Description
Nyckelringens omslutande kvadrats sidlängd, i millimeter. Intervall: (0, 400].
Name
relief_height_mm
Type
number
standard 2.2
Description
Maximal relieffhöjd ovanför basen, i millimeter. Intervall: [0, 20].
Name
relief_offset_mm
Type
number
standard 0
Description
Vertikal förskjutning tillämpad på reliefen före extrudering, i millimeter. Intervall: [0, 20].
Name
base_thickness_mm
Type
number
standard 0.1
Description
Tjocklek på den platta basplattan bakom reliefen, i millimeter. Intervall: [0, 20].
Name
has_closed_back
Type
boolean
standard true
Description
Om medaljongens baksida är förseglad som en sluten yta. Sätt till false för ett öppet skal.
Name
relief_curve
Type
string
standard linear
Description
Överföringskurva som mappar djupkartans värden till relieffhöjd. Tillgängliga värden:
linear (standard)
gamma
s-curve
Name
curve_param
Type
number
standard 1.0
Description
Formparameter för överföringskurvan (endast relevant när relief_curve är gamma). Intervall: (0, 10].
Name
invert_depth
Type
boolean
standard false
Description
Invertera tolkningen av djupkartan så att mörkare områden blir högre relief.
Name
smoothing
Type
number
standard 0.24
Description
Utjämningsstyrka tillämpad på djupkartan innan reliefextraktion. Intervall: [0, 10].
Lågpassgräns för djupkartans värden; allt under detta klipps till noll. Intervall: [0, 1].
Name
remove_background
Type
boolean
standard true
Description
Ta automatiskt bort bakgrunden från prototypens konceptbild innan relief tillämpas.
Skild från prototypparametern med samma namn (standard false), som styr huruvida själva prototypbilden returneras med transparens.
Name
export_resolution
Type
integer
standard 512
Description
Nätupplösning som används vid export. Intervall: [64, 2048].
output
Valfri väljare för trådformat. Standard är glb.
Name
format
Type
string
standard glb
Description
Artefaktpaket som returneras av bygget. Tillgängliga värden:
glb (standard) — returnerar en enda model.glb under model_urls.glb.
obj — zippar model.obj + model.mtl + texture.png och returnerar paketet under model_urls.obj.
zip — zippar varje artefakt som generatorn skapar och returnerar paketet under model_urls.bundle_zip.
Returer
Svarets egenskap result innehåller uppgifts-id för den nyligen skapade Keychain Build-uppgiften. Fråga Hämta en uppgift-endpointen eller prenumerera på strömmen tills uppgiften når SUCCEEDED, och ladda sedan ner artefakten från den enda posten i model_urls.
Felfall
Name
400 - Bad Request
Description
Förfrågan var oacceptabel. Vanliga orsaker:
Saknad parameter: input_task_id krävs.
Ogiltig UUID: input_task_id är inte en giltig UUID.
Överordnad ej lyckad: Den refererade prototyp-uppgiften har ännu inte nått SUCCEEDED.
Ingen kandidat: Prototyp-uppgiften lyckades men producerade ingen kandidatbild.
Alternativ utanför intervall: Ett av options-fälten låg utanför sitt tillåtna intervall eller enum-uppsättning.
Name
401 - Unauthorized
Description
Autentiseringen misslyckades. Kontrollera din API-nyckel.
Name
402 - Payment Required
Description
Otillräckliga credits för att utföra denna uppgift.
Name
404 - Not Found
Description
Den refererade prototyp-uppgiften finns inte, tillhör en annan användare eller skapades via webbappen (endast prototyp-uppgifter i API-mode kan kedjas till build).
Hämta en prototyp- eller byggeuppgift givet ett giltigt uppgifts-id. URL-sökvägen
måste matcha uppgiftens steg — en byggeuppgift som hämtas via
/prototype/:id returnerar 404, och vice versa.
Avbryt en keychain-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 sluttillstå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 den keychain-uppgift som ska avbrytas.
Returnerar
Returnerar 204 No Content vid framgång med en tom kropp.
Felscenarier
Name
400 - Bad Request
Description
Uppgiften är redan i ett sluttillstå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 nyckelringsuppgift via Server-Sent Events (SSE).
URL-sökvägen måste matcha uppgiftens steg — om man öppnar en ström vid
/prototype/:buildId/stream skickas en enda event: error-payload med
status_code: 404 och strömmen stängs.
Parametrar
Name
id
Type
path
Description
Unik identifierare för den nyckelringsuppgift som ska streamas.
Returnerar
Returnerar en ström av Keychain Prototype-
eller Keychain Build-uppgiftsobjekt som
Server-Sent Events. Varje bildruta 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 ännu inte fyllda (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-keychain-build","status": "SUCCEEDED","progress": 100,"created_at": 1729123500000,"started_at": 1729123510000,"finished_at": 1729123535000,"expires_at": 1729382735000,"task_error": null,"consumed_credits": 20,"model_urls": {"glb":"https://assets.meshy.ai/***/tasks/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/output/model.glb?Expires=***" }}
Hämta en paginerad lista över dina nyckelringsuppgifter 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
Gräns för sidstorlek. 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.
Keychain Prototype Task-objektet är en arbetsenhet som Meshy håller reda på för att
generera en färglagd koncept-bild från ett källfoto. Resultatet av
detta steg kedjas 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 id:ts format.
Name
type
Type
string
Description
Uppgiftens typ. Värdet är creative-lab-keychain-prototype.
Name
name
Type
string
Description
Uppgiftsnamnet som angavs när uppgiften skapades. Tom sträng om inget namn angavs.
Name
name_text
Type
string
Description
Graveringen som applicerats på denna nyckelring, efter trimning och borttagning av osynliga formateringstecken. Saknas när uppgiften skapades utan name_text. Jämför den med det du skickade för att bekräfta att texten överlevde din HTTP-klients kodning.
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 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 förflutit sedan 1 januari 1970 UTC, enligt
standarden RFC 3339.
Till exempel representeras fredagen den 1 september 2023 12:00:00 PM 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 startat 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 meningsfullt om uppgiftens status är PENDING.
Name
task_error
Type
object
Description
Felinformation för misslyckade uppgifter. Se Fel för den fullständiga referensen till task_error-objektet.
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 misslyckande).
Name
image_urls
Type
array of strings
Description
Nedladdningsbara URL:er för de koncept-bildkandidater 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 att bryta bakåtkompatibiliteten.
Keychain-byggobjektet är en arbetsenhet som Meshy håller reda på för att
generera det slutliga 3D-nyckelringsnätet från en lyckad prototyp-task. Byggprocessen
kör en depth-map-reliefpipeline på prototypens konceptbild och
publicerar en enda nät-artefakt i det format som anroparen begärde.
Egenskaper
Name
id
Type
string
Description
Unik identifierare för tasken.
Name
type
Type
string
Description
Taskens typ. Värdet är creative-lab-keychain-build.
Name
name
Type
string
Description
Tasknamnet som angavs när tasken skapades. Tom sträng om inget namn angavs.
Name
status
Type
string
Description
Taskens status. Möjliga värden är ett av PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.
Name
progress
Type
integer
Description
Taskens progress. Om tasken ännu inte har startats är denna egenskap 0. När tasken har lyckats blir den 100.
Name
created_at
Type
timestamp
Description
Tidsstämpel för när tasken skapades, i millisekunder.
Name
started_at
Type
timestamp
Description
Tidsstämpel för när tasken startades, i millisekunder.
Name
finished_at
Type
timestamp
Description
Tidsstämpel för när tasken slutfördes, i millisekunder.
Name
expires_at
Type
timestamp
Description
Tidsstämpel för när taskresultatet upphör att gälla, i millisekunder.
Name
preceding_tasks
Type
integer
Description
Antalet föregående tasks. Är endast meningsfullt när status är PENDING.
Name
task_error
Type
object
Description
Felinformation för misslyckade tasks. Se Fel för den fullständiga referensen till task_error-objektet.
Name
consumed_credits
Type
integer
Description
Antalet credits som förbrukats av denna task. Returnerar 0 för FAILED-tasks (credits återbetalas vid misslyckande).
Name
model_urls
Type
object
Description
Nedladdningsbara URL:er för den genererade artefakten, nyckelsatta efter artefaktnamn. Innehåller alltid exakt en post — formatet som begärdes via byggförfrågans output.format. Nyckeln matchar det begärda formatet:
Name
glb
Type
string
Description
Nedladdningsbar URL till GLB-filen. Finns när output.format var glb (standardvärdet).
Name
obj
Type
string
Description
Nedladdningsbar URL till ett zip-paket som innehåller model.obj, model.mtl och texture.png. Finns när output.format var obj.
Name
bundle_zip
Type
string
Description
Nedladdningsbar URL till ett zip-paket med varje artefakt som generatorn producerar. Finns när output.format var zip.