> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.empiriolabs.ai/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.empiriolabs.ai/_mcp/server.

# Sonilo v1.1

> Frame-synced soundtracks generated straight from video, or music from a text prompt, with per-segment direction and stem separation.

![Sonilo v1.1](https://media.empiriolabs.ai/model-logos/sonilo-v1-1.png)

[Sonilo](/providers/sonilo) · Audio Generation

`POST /v1/audio/generations`

Frame-synced soundtracks generated straight from video, or music from a text prompt, with per-segment direction and stem separation.

## At a glance

| Field               | Value                                                                    |
| ------------------- | ------------------------------------------------------------------------ |
| Model id            | `sonilo-v1-1`                                                            |
| Model release date  | 2026-06-18                                                               |
| Input modalities    | Text, Video                                                              |
| Output modalities   | Audio                                                                    |
| Context window      | -                                                                        |
| Weight precision    | -                                                                        |
| Features            | music_generation, text_to_music, video_to_music, stems, commercial_ready |
| Native inference    | No                                                                       |
| New                 | Yes                                                                      |
| Supported endpoints | `POST /v1/audio/generations`                                             |
| Alternate model ids | `sonilo-v1.1`, `sonilo/v1.1`, `sonilo-music`, `sonilo/sonilo-v1-1`       |

## Pricing

| Charge         | Spec                 | Rate     |
| -------------- | -------------------- | -------- |
| Text to music  | per generated second | \$0.0045 |
| Video to music | per generated second | \$0.018  |

## Example request

```bash
curl https://api.empiriolabs.ai/v1/audio/generations \
  -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"model": "sonilo-v1-1", "prompt": "warm jazz piano", "duration": 8}'
```

## Parameters

| Parameter          | Type    | Required | Default  | Description                                                                                                                                                                               |
| ------------------ | ------- | -------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `prompt`           | string  | no       | -        | Style or creative direction for the music. Required when generating from text alone. Optional when scoring a video, where the footage leads.                                              |
| `mode`             | enum    | no       | `"auto"` | auto scores an attached video and falls back to text to music when there is no video. Set text or video to pin the behaviour. · Allowed: `auto`, `text`, `video`                          |
| `duration`         | number  | no       | -        | Track length in seconds. Text mode only. In video mode the track follows the length of the source video. Leave empty to let the prompt decide. · Range: 5 – 360                           |
| `output_format`    | enum    | no       | `"m4a"`  | Delivered audio format. m4a is AAC, wav is 16-bit PCM, mp3 is 320 kbps. · Allowed: `m4a`, `wav`, `mp3`                                                                                    |
| `variants_num`     | number  | no       | `1`      | How many distinct musical directions to generate in one request. Each variant is billed separately at the per-second rate, and the 10 second minimum applies to each one. · Range: 1 – 10 |
| `stems`            | boolean | no       | false    | Also return the generated track split into drums, bass, vocals and other. Adds no charge and adds a few minutes to the wait.                                                              |
| `ducking`          | boolean | no       | false    | Also return a take with the music dipped under the speech in the source video so dialogue stays intelligible. Adds no charge.                                                             |
| `preserve_speech`  | boolean | no       | false    | Keep the speech from the source video and return the isolated voice plus a mixed track alongside the music.                                                                               |
| `prompt_influence` | number  | no       | `0.5`    | How strongly the music follows the prompt rather than the footage. Lower lets the video lead, higher follows the prompt more literally. Adds no charge. · Range: 0 – 1                    |
| `segments`         | string  | no       | -        | JSON array of timed segment prompts for scene by scene direction. Each entry takes start, end and prompt in seconds.                                                                      |
| `video_url`        | string  | no       | -        | Source video to score, as a publicly reachable URL. Up to 300MB and 6 minutes. Uploading a video in the playground sets this for you.                                                     |

## Notes

**Modes**

* auto scores the attached video, and falls back to text to music when there is no video
* Video mode follows the cuts and pacing of the source footage
* Text mode generates from a prompt alone

**Controls**

Supports prompt, mode, source video, 5 to 360 second duration in text mode, m4a, wav or mp3 output, 1 to 10 variants, stem separation, ducking, speech preservation, prompt influence, and JSON segment prompts.

**Limits**

* Source video up to 300MB and 6 minutes
* Duration 5 to 360 seconds in text mode. Video mode follows the length of the source
* Ducking, speech preservation and prompt influence apply to video mode only

**Billing**

* Charged per generated second at the catalog rate, with a 10 second minimum per track. A 4 second track bills 10 seconds.
* Each variant is billed separately and the 10 second minimum applies to each one.
* Stem separation, ducking and prompt influence add no charge.
* A request rejected before generation is not billed.

---

*Machine-readable schema:* `GET https://api.empiriolabs.ai/v1/models/sonilo-v1-1`.