
Returns your own video with a generated soundtrack, frame-synced effects, or both mixed in, keeping the original picture untouched.
Returns your own video with a generated soundtrack, frame-synced effects, or both mixed in, keeping the original picture untouched.
sonilo-video-to-video/v1/videos/generationssonilo-v2vsonilo/sonilo-video-to-videoLive pay-as-you-go rates from the EmpirioLabs catalog. You are billed only for what you use, with no monthly minimum.
Sonilo Video to Video runs through POST /v1/videos/generations. The request returns a job_id right away; poll GET /v1/jobs/{job_id} until the job completes and read the output URLs from the result. Get an API key from the EmpirioLabs dashboard.
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": "Describe what you want Sonilo Video to Video to generate."
}'curl https://api.empiriolabs.ai/v1/jobs/JOB_ID \
-H "Authorization: Bearer $EMPIRIOLABS_API_KEY"import requests
response = requests.post(
"https://api.empiriolabs.ai/v1/videos/generations",
headers={"Authorization": "Bearer YOUR_EMPIRIOLABS_API_KEY"},
json={
"model": "sonilo-video-to-video",
"prompt": "Describe what you want Sonilo Video to Video to generate.",
},
)
job = response.json()
# Generation runs as an async job. Poll until it completes.
import time
while True:
status = requests.get(
f"https://api.empiriolabs.ai/v1/jobs/{job['job_id']}",
headers={"Authorization": "Bearer YOUR_EMPIRIOLABS_API_KEY"},
).json()
if status.get("status") in ("completed", "failed"):
print(status)
break
time.sleep(5)Request parameters supported by the Sonilo Video to Video API on EmpirioLabs. Defaults apply when a field is omitted.
| Parameter | Type | Default | Range / values | Description |
|---|---|---|---|---|
| mode | enum | music | music, effects, music_and_effects | What to add to the returned video: a generated soundtrack, frame-synced sound effects, or both mixed together. |
| prompt | string | - | - | Creative direction for the generated audio. |
| music_prompt | string | - | - | Direction for the music bed. |
| sfx_prompt | string | - | - | Direction for the sound effects. |
| keep_original_sound | boolean | false | - | Keep the whole original audio track under the generated audio. Without this the source audio is removed. |
| preserve_speech | boolean | false | - | Keep only the isolated speech from the source, rather than the whole original track. |
| ducking | boolean | false | - | Dip the kept voice under the generated audio instead of holding a static mix. |
| variants_num | number | 1 | 1 to 10 | How many differently scored videos to generate in one request. Each variant is billed separately. |
| prompt_influence | number | 0.5 | 0 to 1 | How strongly the music follows the prompt rather than the footage. Lower lets the video lead. |
| segments | string | - | - | JSON array of timed segment prompts for scene by scene direction. Each entry takes start, end and prompt in seconds. |
| video_url | string | - | - | Source video, as a publicly reachable URL. Up to 300MB and 8 minutes. Uploading a video in the playground sets this for you. |
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.
On EmpirioLabs, Sonilo Video to Video is billed pay as you go: Music only $0.018 per second; Effects only $0.018 per second; Music and effects $0.0288 per second. The live rate card on this page always matches what the API charges.
Sonilo Video to Video is served through POST /v1/videos/generations on api.empiriolabs.ai with standard bearer-token authentication.
Yes. The EmpirioLabs playground runs Sonilo Video to Video in the browser with the same parameters the API exposes, so you can test prompts before writing code.
Create an EmpirioLabs account, then generate a key under API Keys in the dashboard. Billing is pay-as-you-go credits, so you only pay for the requests you make.
Check out our pricing or reach out if you want your own model deployed on our stack.