> 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 Video to Video

> Returns your own video with a generated soundtrack, frame-synced effects, or both mixed in, keeping the original picture untouched.

![Sonilo Video to Video](https://media.empiriolabs.ai/model-logos/sonilo-video-to-video.png)

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

`POST /v1/videos/generations`

Returns your own video with a generated soundtrack, frame-synced effects, or both mixed in, keeping the original picture untouched.

## At a glance

| Field               | Value                                                                               |
| ------------------- | ----------------------------------------------------------------------------------- |
| Model id            | `sonilo-video-to-video`                                                             |
| Model release date  | -                                                                                   |
| Input modalities    | Text, Video                                                                         |
| Output modalities   | Video                                                                               |
| Context window      | -                                                                                   |
| Weight precision    | -                                                                                   |
| Features            | video_generation, video_to_video, music_generation, sound_effects, commercial_ready |
| Native inference    | No                                                                                  |
| New                 | Yes                                                                                 |
| Supported endpoints | `POST /v1/videos/generations`                                                       |
| Alternate model ids | `sonilo-v2v`, `sonilo/sonilo-video-to-video`                                        |

## Pricing

| Charge            | Spec       | Rate     |
| ----------------- | ---------- | -------- |
| Music only        | per second | \$0.018  |
| Effects only      | per second | \$0.018  |
| Music and effects | per second | \$0.0288 |

## Example request

```bash
curl https://api.empiriolabs.ai/v1/videos/generations \
  -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"model": "sonilo-video-to-video", "prompt": "sunrise over the ocean", "duration": 6}'
```

## Parameters

| Parameter             | Type    | Required | Default   | Description                                                                                                                                                       |
| --------------------- | ------- | -------- | --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `mode`                | enum    | no       | `"music"` | What to add to the returned video: a generated soundtrack, frame-synced sound effects, or both mixed together. · Allowed: `music`, `effects`, `music_and_effects` |
| `prompt`              | string  | no       | -         | Creative direction for the generated audio.                                                                                                                       |
| `music_prompt`        | string  | no       | -         | Direction for the music bed.                                                                                                                                      |
| `sfx_prompt`          | string  | no       | -         | Direction for the sound effects.                                                                                                                                  |
| `keep_original_sound` | boolean | no       | false     | Keep the whole original audio track under the generated audio. Without this the source audio is removed.                                                          |
| `preserve_speech`     | boolean | no       | false     | Keep only the isolated speech from the source, rather than the whole original track.                                                                              |
| `ducking`             | boolean | no       | false     | Dip the kept voice under the generated audio instead of holding a static mix.                                                                                     |
| `variants_num`        | number  | no       | `1`       | How many differently scored videos to generate in one request. Each variant is billed separately. · Range: 1 – 10                                                 |
| `prompt_influence`    | number  | no       | `0.5`     | How strongly the music follows the prompt rather than the footage. Lower lets the video lead. · 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, as a publicly reachable URL. Up to 300MB and 8 minutes. Uploading a video in the playground sets this for you.                                      |

## Notes

**Modes**

* music returns the video scored with a generated soundtrack
* effects returns the video with frame-synced sound effects
* music_and_effects returns the video with music and effects mixed together

**Controls**

Supports mode, source video, creative direction, separate music and effects prompts in sound mode, keeping the original audio, speech preservation, ducking, 1 to 10 variants in music mode, prompt influence, and JSON segment prompts.

**Limits**

* Source video up to 300MB and 8 minutes
* Accepts mp4, mov, m4v or webm carrying H.264, H.265, VP9 or AV1
* The source picture is copied through without re-encoding, so the returned video keeps its original resolution and frame rate
* By default the source audio is removed. Keep all of it with keep original sound, or keep only the speech with preserve speech

**Billing**

* Charged per generated second at the catalog rate for the mode used, with a 10 second minimum for music and sound modes and a 3 second minimum for sfx mode
* Each variant is billed separately
* A request rejected before generation is not billed.

---

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