Sonilo Text To Music
Playground
Try it on WavespeedAI!Sonilo Text-to-Music is a fast AI music generation model that creates full music tracks from text prompts with manual duration control. Ready-to-use REST inference API for AI music generation, background music, creator content, video soundtracks, advertising audio, social media content, and professional text-to-music workflows with simple integration, no coldstarts, and affordable pricing.
Features
Sonilo Text-to-Music
Sonilo Text-to-Music generates music directly from a natural-language prompt, with controllable output duration up to 360 seconds. It is designed for background music creation, soundtrack ideation, content scoring, and other prompt-driven music generation workflows.
Why Choose This?
-
Prompt-based music generation Create music from a text description of style, mood, instrumentation, and arrangement.
-
Flexible duration control Choose the target music length from short clips to longer pieces up to
360seconds. -
Simple workflow Provide a prompt, choose a duration, and generate music with minimal setup.
-
Useful for many creative workflows Suitable for videos, ads, games, social content, trailers, and prototype soundtracks.
-
Production-ready API Easy to integrate into music generation tools, creator workflows, and media pipelines.
Parameters
| Parameter | Required | Description |
|---|---|---|
| prompt | Yes | Text prompt describing the music style, mood, instruments, and arrangement. |
| duration | Yes | Target music duration in seconds. Range: 1–360. Default: 30. |
How to Use
- Write your prompt — describe the genre, mood, instrumentation, pacing, and production feel you want.
- Set duration — choose how many seconds of music to generate.
- Submit — run the model and download the generated music.
Example Prompt
Cinematic emotional orchestral music with soft piano, warm strings, slow build, inspiring trailer mood, modern polished production
Pricing
Pricing is based on the selected duration.
| Duration | Cost |
|---|---|
| 1s | $0.0025 |
| 10s | $0.025 |
| 30s | $0.075 |
| 60s | $0.15 |
| 120s | $0.30 |
| 300s | $0.75 |
| 360s | $0.90 |
Billing Rules
- Pricing is $0.0025 per second
- Billing is based on the selected
duration - Maximum billed duration is 360 seconds
promptdoes not affect pricing
Best Use Cases
- Background music generation — Create music beds for videos, podcasts, and social content.
- Trailer and ad concepts — Generate soundtrack ideas for marketing or promo edits.
- Game and app audio — Produce music for interactive or ambient playback.
- Music prototyping — Explore multiple soundtrack directions quickly from prompts.
- Content production — Create original music for creator and brand workflows.
Pro Tips
- Be specific in your prompt about genre, mood, instrumentation, and pacing.
- Mention arrangement cues like intro, build, drop, chorus, or ambient bed when needed.
- Start with shorter durations to validate the musical direction before generating longer pieces.
- Use concise prompts when you want tighter control, and broader prompts when you want more interpretive results.
Notes
- Both
promptanddurationare required. durationsupports values from1to360seconds.- Pricing depends only on the selected duration.
- Longer generated music may be more suitable for trailers, background scoring, and extended content workflows.
Related Models
- Sonilo Video-to-Music — Generate music that matches an uploaded video.
- Other prompt-based music generation workflows — Useful when you want alternate music-generation styles or model behavior.
- Video sound design workflows — Useful when you need synchronized effects instead of generated music.
Authentication
For authentication details, please refer to the Authentication Guide.
API Endpoints
Submit Task & Query Result
# Submit the task
curl --location --request POST "https://api.wavespeed.ai/api/v3/sonilo/text-to-music" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}" \
--data-raw '{
"duration": 30
}'
# Get the result
curl --location --request GET "https://api.wavespeed.ai/api/v3/predictions/${requestId}/result" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}"
Parameters
Task Submission Parameters
Request Parameters
| Parameter | Type | Required | Default | Range | Description |
|---|---|---|---|---|---|
| prompt | string | Yes | - | Text prompt describing the music style, mood, instruments, and arrangement. | |
| duration | integer | Yes | 30 | 1 ~ 360 | Target music duration in seconds. Maximum 360 seconds. |
Response Parameters
| Parameter | Type | Description |
|---|---|---|
| code | integer | HTTP status code (e.g., 200 for success) |
| message | string | Status message (e.g., “success”) |
| data.id | string | Unique identifier for the prediction, Task Id |
| data.model | string | Model ID used for the prediction |
| data.outputs | array | Array of URLs to the generated content (empty when status is not completed) |
| data.urls | object | Object containing related API endpoints |
| data.urls.get | string | URL to retrieve the prediction result |
| data.status | string | Status of the task: created, processing, completed, or failed |
| data.created_at | string | ISO timestamp of when the request was created (e.g., “2023-04-01T12:34:56.789Z”) |
| data.error | string | Error message (empty if no error occurred) |
| data.timings | object | Object containing timing details |
| data.timings.inference | integer | Inference time in milliseconds |
Result Request Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| id | string | Yes | - | Task ID |
Result Response Parameters
| Parameter | Type | Description |
|---|---|---|
| code | integer | HTTP status code (e.g., 200 for success) |
| message | string | Status message (e.g., “success”) |
| data | object | The prediction data object containing all details |
| data.id | string | Unique identifier for the prediction, the ID of the prediction to get |
| data.model | string | Model ID used for the prediction |
| data.outputs | string | Array of URLs to the generated content. |
| data.urls | object | Object containing related API endpoints |
| data.urls.get | string | URL to retrieve the prediction result |
| data.status | string | Status of the task: created, processing, completed, or failed |
| data.created_at | string | ISO timestamp of when the request was created (e.g., “2023-04-01T12:34:56.789Z”) |
| data.error | string | Error message (empty if no error occurred) |
| data.timings | object | Object containing timing details |
| data.timings.inference | integer | Inference time in milliseconds |