## Basic tool info Model name: elevenlabs/text to music v2.5 lyrics Model description: Generate full songs with vocals from a structured composition plan. Control section timing, lyrics, style keywords, and MP3 output quality with ElevenLabs Music v2.5. Model cover: https://cdn.wiro.ai/uploads/models/elevenlabs-text-to-music-v2-5-lyrics-cover.webp Model categories: - tool - partner - elevenlabs - quick-showcase - nogpu-pipeline - text-to-music Model tags: - elevenlabs - text-to-music Run Task Endpoint (POST): https://api.wiro.ai/v1/Run/elevenlabs/text-to-music-v2-5-lyrics Get Task Detail Endpoint (POST): https://api.wiro.ai/v1/Task/Detail ## Model Inputs: - name: prompt label: Prompt (Composition plan) help: Required. The song as JSON: {"chunks": [{"text": "[Verse]\nlyrics line\nlyrics line", "duration_ms": 20000, "positive_styles": ["indie pop", "female vocals"], "negative_styles": ["autotune"], "context_adherence": "high"}]}. Up to 30 chunks, each 3000 to 120000 ms, 10 minutes in total. text holds the section name in brackets and the lyrics, lines separated by \n; leave it empty for an instrumental part. Styles must be in English, lyrics can be in any language. The first chunk's styles set the genre and mood. negative_styles and context_adherence (low, medium, high) are optional. type: textarea default: {"chunks":[{"text":"[Verse]\nMirror ball is spinning round\nFeel the bass beneath the ground","duration_ms":10000,"positive_styles":["70s disco funk","slap bass","four on the floor drums","string stabs","soulful female vocals","118 bpm","great production quality"],"negative_styles":["distorted guitars","autotune"]},{"text":"[Chorus]\nDance with me tonight\nUnder golden light","duration_ms":10000,"positive_styles":["catchy disco chorus","layered harmonies","bright horns"]}]} - name: outputFormat label: outputFormat help: Required. MP3 sample rate and bitrate of the track. type: select default: mp3_44100_128 options: - value: "mp3_22050_32" label: mp3_22050_32 - value: "mp3_44100_32" label: mp3_44100_32 - value: "mp3_44100_64" label: mp3_44100_64 - value: "mp3_44100_96" label: mp3_44100_96 - value: "mp3_44100_128" label: mp3_44100_128 ## Model Parameter Inspires: - prompt: {"chunks":[{"text":"[Verse]\nMirror ball is spinning round\nFeel the bass beneath the ground","duration_ms":10000,"positive_styles":["70s disco funk","slap bass","four on the floor drums","string stabs","soulful female vocals","118 bpm","great production quality"],"negative_styles":["distorted guitars","autotune"]},{"text":"[Chorus]\nDance with me tonight\nUnder golden light","duration_ms":10000,"positive_styles":["catchy disco chorus","layered harmonies","bright horns"]}]} - prompt: {"chunks":[{"text":"[Verse]\nClose your eyes, the stars are near\nMoonlight sings for you, my dear","duration_ms":10000,"positive_styles":["gentle lullaby","soft fingerpicked acoustic guitar","music box","tender female vocals","65 bpm","warm and intimate","great production quality"],"negative_styles":["drums","electric guitars"]},{"text":"[Chorus]\nSleep now, sleep now\nDreams will show you how","duration_ms":10000,"positive_styles":["soft humming harmonies","light strings"]}]} - prompt: {"chunks":[{"text":"[Verse]\nWoke up this morning with the rain on my door\nMy old guitar is all I am living for","duration_ms":10000,"positive_styles":["gritty blues rock","overdriven electric guitar riff","shuffle drums","raspy male vocals","95 bpm","great production quality"],"negative_styles":["synths","pop"]},{"text":"[Chorus]\nRoll on, river, roll on\nCarry my troubles till they are gone","duration_ms":10000,"positive_styles":["wailing guitar fills","stomping groove"]}]} - prompt: {"chunks":[{"text":"[Build]\nHands up high, we are touching the sky","duration_ms":10000,"positive_styles":["energetic edm pop","rising synth build","snare roll","bright female vocals","128 bpm","great production quality"],"negative_styles":["acoustic","slow tempo"]},{"text":"[Drop]\nOh oh, we are alive","duration_ms":10000,"positive_styles":["big festival drop","punchy supersaw synths","heavy sidechained bass"]}]} ## Integration Header Prepare ```bash # Sign up Wiro dashboard and create project export YOUR_API_KEY="YOUR_WIRO_API_KEY"; export YOUR_API_SECRET="XXXXXXXXX"; # unix time or any random integer value export NONCE=$(date +%s); # hmac-SHA256 (YOUR_API_SECRET+Nonce) with YOUR_API_KEY export SIGNATURE="$(echo -n "${YOUR_API_SECRET}${NONCE}" | openssl dgst -sha256 -hmac "${YOUR_API_KEY}" | awk '{print $NF}')"; ``` ## Run Command - Make HTTP Post Request ```bash curl -X POST "https://api.wiro.ai/v1/Run/elevenlabs/text-to-music-v2-5-lyrics" \ -H "Content-Type: application/json" \ -H "x-api-key: ${YOUR_API_KEY}" \ -H "x-nonce: ${NONCE}" \ -H "x-signature: ${SIGNATURE}" \ --data-binary @- <<'JSON' { "prompt": "{\"chunks\":[{\"text\":\"[Verse]\\nMirror ball is spinning round\\nFeel the bass beneath the ground\",\"duration_ms\":10000,\"positive_styles\":[\"70s disco funk\",\"slap bass\",\"four on the floor drums\",\"string stabs\",\"soulful female vocals\",\"118 bpm\",\"great production quality\"],\"negative_styles\":[\"distorted guitars\",\"autotune\"]},{\"text\":\"[Chorus]\\nDance with me tonight\\nUnder golden light\",\"duration_ms\":10000,\"positive_styles\":[\"catchy disco chorus\",\"layered harmonies\",\"bright horns\"]}]}", "outputFormat": "mp3_44100_128", "callbackUrl": "You can provide a callback URL; Wiro will send a POST request to it when the task is completed." } JSON ``` ## Run Command - Response ```json { "errors": [], "taskid": "2221", "socketaccesstoken": "eDcCm5yyUfIvMFspTwww49OUfgXkQt", "result": true } ``` ## Get Task Detail - Make HTTP Post Request with Task ID ```bash curl -X POST "https://api.wiro.ai/v1/Task/Detail" \ -H "Content-Type: application/json" \ -H "x-api-key: ${YOUR_API_KEY}" \ -H "x-nonce: ${NONCE}" \ -H "x-signature: ${SIGNATURE}" \ -d '{ "taskid": "2221" }'; ``` ## Get Task Detail - Make HTTP Post Request with Socket Access Token ```bash curl -X POST "https://api.wiro.ai/v1/Task/Detail" \ -H "Content-Type: application/json" \ -H "x-api-key: ${YOUR_API_KEY}" \ -H "x-nonce: ${NONCE}" \ -H "x-signature: ${SIGNATURE}" \ -d '{ "tasktoken": "eDcCm5yyUfIvMFspTwww49OUfgXkQt" }'; ``` ## Get Task Detail - Response ```json { "total": "1", "errors": [], "tasklist": [ { "id": "2221", "uuid": "15bce51f-442f-4f44-a71d-13c6374a62bd", "socketaccesstoken": "eDcCm5yyUfIvMFspTwww49OUfgXkQt", "parameters": {}, "debugoutput": "", "debugerror": "", "starttime": "1734513809", "endtime": "1734513813", "elapsedseconds": "6.0000", "status": "task_postprocess_end", "createtime": "1734513807", "canceltime": "0", "assigntime": "1734513807", "accepttime": "1734513807", "preprocessstarttime": "1734513807", "preprocessendtime": "1734513807", "postprocessstarttime": "1734513813", "postprocessendtime": "1734513814", "totalcost": "0.003510000000", "chargedcost": "0.002808000000", "discountamount": "0.000702000000", "outputs": [ { "id": "6bc392c93856dfce3a7d1b4261e15af3", "name": "0.png", "contenttype": "image/png", "parentid": "6c1833f39da71e6175bf292b18779baf", "uuid": "15bce51f-442f-4f44-a71d-13c6374a62bd", "size": "202472", "addedtime": "1734513812", "modifiedtime": "1734513812", "accesskey": "dFKlMApaSgMeHKsJyaDeKrefcHahUK", "url": "https://cdn1.wiro.ai/6a6af820-c5050aee-40bd7b83-a2e186c6-7f61f7da-3894e49c-fc0eeb66-9b500fe2/0.png" } ], "size": "202472" } ], "result": true } ``` totalcost is the list price. chargedcost is the amount actually billed after any discount (a store fee is included on store runs); discountamount is the discount. chargedcost is null until the charge is recorded (shortly after task_postprocess_end) and "0" for a failed or cancelled task. ## Kill Task - Make HTTP Post Request with Task ID ```bash curl -X POST "https://api.wiro.ai/v1/Task/Kill" \ -H "Content-Type: application/json" \ -H "x-api-key: ${YOUR_API_KEY}" \ -H "x-nonce: ${NONCE}" \ -H "x-signature: ${SIGNATURE}" \ -d '{ "taskid": "534574" }'; ``` ## Kill Task - Make HTTP Post Request with Socket Access Token ```bash curl -X POST "https://api.wiro.ai/v1/Task/Kill" \ -H "Content-Type: application/json" \ -H "x-api-key: ${YOUR_API_KEY}" \ -H "x-nonce: ${NONCE}" \ -H "x-signature: ${SIGNATURE}" \ -d '{ "socketaccesstoken": "ZpYote30on42O4jjHXNiKmrWAZqbRE" }'; ``` ## Kill Task - Response ```json { "errors": [], "tasklist": [ { "id": "534574", "uuid": "15bce51f-442f-4f44-a71d-13c6374a62bd", "name": "", "socketaccesstoken": "ZpYote30on42O4jjHXNiKmrWAZqbRE", "parameters": { "inputImage": "https://api.wiro.ai/v1/File/mCmUXgZLG1FNjjjwmbtPFr2LVJA112/inputImage-6060136.png" }, "debugoutput": "", "debugerror": "", "starttime": "1734513809", "endtime": "1734513813", "elapsedseconds": "6.0000", "status": "task_cancel", "cps": "0.000585000000", "totalcost": "0.003510000000", "guestid": null, "projectid": "699", "modelid": "598", "description": "", "basemodelid": "0", "runtype": "model", "modelfolderid": "", "modelfileid": "", "callbackurl": "", "marketplaceid": null, "createtime": "1734513807", "canceltime": "0", "assigntime": "1734513807", "accepttime": "1734513807", "preprocessstarttime": "1734513807", "preprocessendtime": "1734513807", "postprocessstarttime": "1734513813", "postprocessendtime": "1734513814", "pexit": "0", "categories": "["tool","image-to-image","quick-showcase","compare-landscape"]", "outputs": [ { "id": "6bc392c93856dfce3a7d1b4261e15af3", "name": "0.png", "contenttype": "image/png", "parentid": "6c1833f39da71e6175bf292b18779baf", "uuid": "15bce51f-442f-4f44-a71d-13c6374a62bd", "size": "202472", "addedtime": "1734513812", "modifiedtime": "1734513812", "accesskey": "dFKlMApaSgMeHKsJyaDeKrefcHahUK", "foldercount": "0", "filecount": "0", "ispublic": 0, "expiretime": null, "url": "https://cdn1.wiro.ai/6a6af820-c5050aee-40bd7b83-a2e186c6-7f61f7da-3894e49c-fc0eeb66-9b500fe2/0.png" } ], "size": "202472" } ], "result": true } ``` ## Cancel Task - Make HTTP Post Request (For tasks on queue) ```bash curl -X POST "https://api.wiro.ai/v1/Task/Cancel" \ -H "Content-Type: application/json" \ -H "x-api-key: ${YOUR_API_KEY}" \ -H "x-nonce: ${NONCE}" \ -H "x-signature: ${SIGNATURE}" \ -d '{ "taskid": "634574" }'; ``` ## Cancel Task - Response ```json { "errors": [], "tasklist": [ { "id": "634574", "uuid": "15bce51f-442f-4f44-a71d-13c6374a62bd", "name": "", "socketaccesstoken": "ZpYote30on42O4jjHXNiKmrWAZqbRE", "parameters": { "inputImage": "https://api.wiro.ai/v1/File/mCmUXgZLG1FNjjjwmbtPFr2LVJA112/inputImage-6060136.png" }, "debugoutput": "", "debugerror": "", "starttime": "1734513809", "endtime": "1734513813", "elapsedseconds": "6.0000", "status": "task_cancel", "cps": "0.000585000000", "totalcost": "0.003510000000", "guestid": null, "projectid": "699", "modelid": "598", "description": "", "basemodelid": "0", "runtype": "model", "modelfolderid": "", "modelfileid": "", "callbackurl": "", "marketplaceid": null, "createtime": "1734513807", "canceltime": "0", "assigntime": "1734513807", "accepttime": "1734513807", "preprocessstarttime": "1734513807", "preprocessendtime": "1734513807", "postprocessstarttime": "1734513813", "postprocessendtime": "1734513814", "pexit": "0", "categories": "["tool","image-to-image","quick-showcase","compare-landscape"]", "outputs": [ { "id": "6bc392c93856dfce3a7d1b4261e15af3", "name": "0.png", "contenttype": "image/png", "parentid": "6c1833f39da71e6175bf292b18779baf", "uuid": "15bce51f-442f-4f44-a71d-13c6374a62bd", "size": "202472", "addedtime": "1734513812", "modifiedtime": "1734513812", "accesskey": "dFKlMApaSgMeHKsJyaDeKrefcHahUK", "foldercount": "0", "filecount": "0", "ispublic": 0, "expiretime": null, "url": "https://cdn1.wiro.ai/6a6af820-c5050aee-40bd7b83-a2e186c6-7f61f7da-3894e49c-fc0eeb66-9b500fe2/0.png" } ], "size": "202472" } ], "result": true } ``` ## Task Status Information This section defines the possible task status values returned by the API when polling for task completion. ### Completed Task Statuses (Polling can stop) These indicate that the task has reached a terminal state — either success or failure. Once any of these is received, polling should stop. - task_postprocess_end : Task completed successfully and post-processing is done. - task_cancel : Task was cancelled by the user or system. ### Running Task Statuses (Continue polling) These statuses indicate that the task is still in progress. Polling should continue if one of these is returned. - task_queue : Task is waiting in the queue. - task_accept : Task has been accepted for processing. - task_assign : Task is being assigned to a worker. - task_preprocess_start : Preprocessing is starting. - task_preprocess_end : Preprocessing is complete. - task_start : Task execution has started. - task_output : Output is being generated.