Text to Motion API
Generera rörelseklipp för karaktärer från textbeskrivningar. Beskriv en handling, till exempel "en karaktär som vinkar" eller "en zombie som släpar sig framåt", och få ett rått rörelseklipp. Du kan retargeta klippet till riggade karaktärer i din egen pipeline eller dina DCC-verktyg.
Utdatan är ett fristående rörelseklipp. Det behöver ingen karaktärsmodell och är inte kopplat till någon. För att först rigga en karaktär, se Rigging APIid som motion_task_id till Animation API
Skapa en Text till rörelse-uppgift
Skapar en Text till rörelse-uppgift, som genererar ett rörelseklipp från en textprompt.
Uppgiften körs i bakgrunden. För information om hur lång tid en uppgift vanligtvis tar, se Bearbetningstider.
En prime-uppgift kostar 10 credits och använder Meshys rörelsemodell av högre kvalitet. En swift-uppgift kostar 3 credits och använder en snabbare, billigare rörelsemodell.
Request
# Generate a motion clip with required params only
curl https://api.meshy.ai/openapi/v1/text-to-motion \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"prompt": "a character waving",
"duration": 3
}'
# Generate a fast, economical clip with Swift mode
curl https://api.meshy.ai/openapi/v1/text-to-motion \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"prompt": "a character waving",
"mode": "swift",
"duration": 4.5
}'
Response
{
"result": "018c425b-b2c6-727e-d333-3c1887i9h791"
}
Parametrar
- Name
- prompt
- Type
- string
- Obligatorisk
- Description
Text som beskriver rörelsen som ska genereras, upp till 400 tecken. Längre text returnerar
400.
- Name
- mode
- Type
- string
- standard prime
- Description
Rörelsemodellen, som även avgör klippets filformat.
Tillgängliga värden:
prime: högre kvalitet, returnerar ett FBX-klippswift: snabbare och billigare, returnerar ett BVH-klipp
Alla andra värden returnerar
400.
- Name
- duration
- Type
- number
- Obligatorisk
- Description
Mållängden för klippet i sekunder, från
2till10i steg om0.5, till exempel2,2.5eller3. Alla andra värden returnerar400.
Returnerar
Fältet result i svaret innehåller ID:t för den nya Text till rörelse-uppgiften.
Felscenarion
- Name
400 - Bad Request- Description
Begäran kan inte köras. Felmeddelandet anger vilket problem som hittades. Till exempel:
- Saknad eller tom prompt:
promptsaknas, är tom eller är längre än 400 tecken. - Ogiltig mode:
modeär varkenprimeellerswift. - Ogiltig duration:
durationsaknas, ligger utanför intervallet2till10, eller följer inte ett steg om0.5sekunder.
Åtgärda begäran och skicka den sedan igen. Se Fel.
- Saknad eller tom prompt:
- Name
401 - Unauthorized- Description
API-nyckeln saknas eller är ogiltig. Kontrollera
Authorization-headern.
- Name
402 - Payment Required- Description
Till exempel:
- Otillräckligt med credits: Kontot har inte tillräckligt med credits för den här uppgiften, eller kontot har nått en creditgräns. Kontrollera ditt saldo och försök sedan igen.
- Gratisplan: Att skapa en uppgift kräver en betald plan. Uppgradera din plan i dina prenumerationsinställningar och försök sedan igen.
- Name
403 - Forbidden- Description
Innehållsmoderationen flaggade prompten. Ändra prompten och skicka sedan begäran igen.
- Name
429 - Too Many Requests- Description
Du överskred din hastighetsgräns. Vänta och försök sedan igen. Se Hastighetsgränser.
Hämta en Text till Motion-uppgift
Returnerar en Text till Motion-uppgift baserat på dess ID.
Request
curl https://api.meshy.ai/openapi/v1/text-to-motion/018c425b-b2c6-727e-d333-3c1887i9h791 \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
{
"id": "018c425b-b2c6-727e-d333-3c1887i9h791",
"type": "text-to-motion",
"status": "SUCCEEDED",
"progress": 100,
"created_at": 1787314497437,
"started_at": 1787314498012,
"finished_at": 1787314505881,
"expires_at": 1787573705881,
"task_error": null,
"result": {
"motion_url": "https://assets.meshy.ai/0630d47c-84b8-4d37-bc02-69e45d9272c1/tasks/018c425b-b2c6-727e-d333-3c1887i9h791/output/clip.fbx?Expires=...",
"motion_format": "fbx",
"duration_ms": 3000,
"mode": "prime"
},
"consumed_credits": 10
}
Parametrar
- Name
- id
- Type
- path
- Description
Uppgifts-ID från svaret vid skapandet.
Returnerar
Lista uppgifter för Text to Motion
Returnerar en paginerad lista över dina Text to Motion-uppgifter, nyaste först. För att bläddra genom listan, använd page_num och page_size.
Svaret är en array med Text to Motion-uppgiftsobjekt.
Uppgifter du skapar med API:et stannar i API:et och visas inte i Mina tillgångar i webbappen. Använd denna endpoint för att hitta en uppgift vars ID du inte längre har.
Request
curl "https://api.meshy.ai/openapi/v1/text-to-motion?page_num=1&page_size=20" \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
[
{
"id": "018c425b-b2c6-727e-d333-3c1887i9h791",
"type": "text-to-motion",
"status": "SUCCEEDED",
"...": "..."
}
]
Strömma en Text till Motion-uppgift
Strömmar uppdateringar för en Text till Motion-uppgift som Server-Sent Events (SSE).
Request
curl -N https://api.meshy.ai/openapi/v1/text-to-motion/018c425b-b2c6-727e-d333-3c1887i9h791/stream \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response Stream
// Error event example
event: error
data: {
"status_code": 404,
"message": "Task not found"
}
// Message events carry the full task object at every stage; the result
// fields stay empty until the task succeeds.
event: message
data: {
"id": "018c425b-b2c6-727e-d333-3c1887i9h791",
"type": "text-to-motion",
"status": "IN_PROGRESS",
"progress": 50,
"created_at": 1787314497437,
"started_at": 1787314498012,
"finished_at": 0,
"expires_at": 0,
"task_error": null,
"result": {
"motion_url": "",
"motion_format": "",
"duration_ms": 0,
"mode": ""
},
"consumed_credits": 10
}
event: message
data: { // Example of a SUCCEEDED task event, with the same fields as the Text to Motion task object
"id": "018c425b-b2c6-727e-d333-3c1887i9h791",
"type": "text-to-motion",
"status": "SUCCEEDED",
"progress": 100,
"created_at": 1787314497437,
"started_at": 1787314498012,
"finished_at": 1787314505881,
"expires_at": 1787573705881,
"task_error": null,
"result": {
"motion_url": "https://assets.meshy.ai/.../output/clip.fbx?Expires=...",
"motion_format": "fbx",
"duration_ms": 3000,
"mode": "prime"
},
"consumed_credits": 10
}
Parametrar
- Name
- id
- Type
- path
- Description
Uppgifts-ID:t från skapandesvaret.
Returnerar
En ström av Text till Motion-uppgiftsobjekt som Server-Sent Events.
Varje message-händelse innehåller hela uppgiftsobjektet. Medan uppgiften är PENDING eller IN_PROGRESS är result-fälten tomma ("" eller 0), och finished_at och expires_at är 0. För att följa uppgiften, bevaka status och progress.
Ta bort en Text till rörelse-uppgift
Tar bort en Text till rörelse-uppgift permanent, inklusive dess rörelseklipp. Du kan inte ångra en borttagning.
Request
curl --request DELETE \
--url https://api.meshy.ai/openapi/v1/text-to-motion/018c425b-b2c6-727e-d333-3c1887i9h791 \
-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."
}
Sökvägsparametrar
- Name
- id
- Type
- path
- Description
ID:t för uppgiften som ska tas bort.
Uppgiftsstatus
Att ta bort en uppgift med status PENDING återbetalar de credits som användes när du skapade den.
En uppgift med status IN_PROGRESS kan inte tas bort. Förfrågan returnerar 409 Conflict,
och uppgiften fortsätter att köras. Meshy återbetalar inte en uppgift som har påbörjats,
så att ta bort den skulle kosta dig både credits och resultatet. Vänta tills den
når SUCCEEDED, FAILED eller CANCELED, och ta sedan bort den.
Att ta bort en uppgift med en slutgiltig status (SUCCEEDED, FAILED eller CANCELED)
återbetalar inte dess credits.
Returnerar
200 OK när uppgiften är borttagen, eller 409 Conflict när uppgiften
är IN_PROGRESS.
The Text to Motion task object
Ett Text to Motion-uppgiftsobjekt beskriver genereringen av ett rörelseklipp. Det innehåller status, progress och klippet när uppgiften lyckas.
Egenskaper
Example Text to Motion Task Object
{
"id": "018c425b-b2c6-727e-d333-3c1887i9h791",
"type": "text-to-motion",
"status": "SUCCEEDED",
"progress": 100,
"created_at": 1787314497437,
"started_at": 1787314498012,
"finished_at": 1787314505881,
"expires_at": 1787573705881,
"task_error": null,
"result": {
"motion_url": "https://assets.meshy.ai/.../output/clip.fbx?Expires=...",
"motion_format": "fbx",
"duration_ms": 3000,
"mode": "prime"
},
"consumed_credits": 10
}
- Name
- id
- Type
- string
- Description
Uppgifts-ID. Behandla det som en ogenomskinlig sträng och förlita dig inte på dess format.
- Name
- type
- Type
- string
- Description
Uppgiftstypen, alltid
text-to-motion.
- Name
- status
- Type
- string
- Description
Uppgiftens status, en av
PENDING,IN_PROGRESS,SUCCEEDED,FAILEDellerCANCELED.
- Name
- progress
- Type
- integer
- Description
Hur stor del av uppgiften som är klar, som en procentandel från
0till100.
- Name
- created_at
- Type
- timestamp
- Description
Tidpunkt då uppgiften skapades, i Unix-millisekunder.
- Name
- started_at
- Type
- timestamp
- Description
Tidpunkt då uppgiften startade, i Unix-millisekunder. Den är
0tills uppgiften startar.
- Name
- finished_at
- Type
- timestamp
- Description
Tidpunkt då uppgiften avslutades, i Unix-millisekunder. Den är
0tills uppgiften avslutas.
- Name
- expires_at
- Type
- timestamp
- Description
Tidpunkt då uppgiftens resultatfiler går ut, i Unix-millisekunder. Den är
0tills uppgiften avslutas. Meshy sparar klippet i 3 dagar efter att uppgiften avslutats, så ladda ner det innan dess.
- Name
- preceding_tasks
- Type
- integer
- Description
Antalet uppgifter före denna i kön. Värdet är meningsfullt endast medan uppgiften är
PENDING. Fältet utelämnas när värdet är0.
- Name
- consumed_credits
- Type
- integer
- Description
Antalet credits som uppgiften förbrukade,
10förprime-mode eller3förswift-mode. Det är0för en uppgift som ärFAILED, eftersom Meshy återbetalar credits när en uppgift misslyckas.
- Name
- task_error
- Type
- object
- Description
Felinformation när uppgiften misslyckas, och
nullannars. Se Fel.
- Name
- result
- Type
- object
- Description
Det genererade rörelseklippet när uppgiften lyckas. Fram till dess finns fälten med men är tomma (
""eller0).- Name
motion_url- Type
- string
- Description
- Nedladdnings-URL för rörelseklippet. Meshy signerar URL:en på nytt vid varje läsning, och den går ut i samband med uppgiftens lagringsfönster.
- Name
motion_format- Type
- string
- Description
- Klippets filformat,
fbxförprime-mode ellerbvhförswift-mode.
- Name
duration_ms- Type
- integer
- Description
- Klippets längd, i millisekunder.
- Name
mode- Type
- string
- Description
- Det mode Meshy använde för att generera klippet,
primeellerswift.