Seedance 2.5 Now Live | Try in Video Generator →

mirelo-ai/

Mirelo SFX1.6 Extend Audio is a fast AI audio extension model that extends an audio prefix with seamless natural tails and optional ambience looping. Ready-to-use REST inference API for sound effects, ambient audio, game audio, video production, cinematic sound design, loopable audio assets, and professional audio generation workflows with simple integration, no coldstarts, and affordable pricing.

audio-to-audio
Input

Idle

$0.01per run·~100 / $1

Related Models

README

Mirelo AI SFX 1.6 Extend Audio

Mirelo AI SFX 1.6 Extend Audio extends an existing audio clip by generating new continuation audio after the uploaded prefix. It supports optional prompt guidance, loop-friendly ambience mode, multiple variations, and flexible extension length, making it useful for sound design, music continuation, ambient loops, and creative audio workflows.

Why Choose This?

  • Audio continuation Extend an existing audio clip with newly generated sound that follows the uploaded prefix.

  • Prompt-guided extension Add an optional text prompt to steer the mood, texture, or direction of the continuation.

  • Loop-friendly ambience mode Enable ambience to generate audio designed for seamless looping.

  • Multiple variations Generate up to 4 variations in one request with num_samples.

  • Flexible extension length Choose how many seconds to append after the prefix with append_duration.

  • Production-ready API Suitable for sound design, ambient loop creation, music continuation, and background audio workflows.

Parameters

ParameterRequiredDescription
audioYesAudio prefix to extend. Prefix duration must be 3–59 seconds, and total output is capped at 60 seconds.
promptNoOptional text prompt guiding the extension.
append_durationNoNumber of seconds to add after the prefix. Range: 1–57. Default: 10.
ambienceNoWhen true, extend and stitch the result so the tile loops seamlessly. Default: false.
double_outputNoOnly used when ambience is true: concatenate the loop with itself for a 2x-length output. Default: false.
num_samplesNoNumber of variations to generate. Range: 1–4. Default: 1.

How to Use

  1. Upload your audio — provide the source audio clip you want to continue.
  2. Add a prompt (optional) — describe the mood, texture, or direction of the extension.
  3. Set append duration — choose how many seconds of new audio to generate.
  4. Enable ambience (optional) — turn this on if you want a seamless looping result.
  5. Enable double output (optional) — when using ambience, you can concatenate the loop with itself for a longer looped result.
  6. Set number of samples — choose how many variations you want, from 1 to 4.
  7. Submit — run the model and download the generated audio.

Example Prompt

Dark cinematic ambience with distant thunder, soft low-frequency rumble, evolving tension, seamless continuation

Pricing

Pricing is based on generated extension length and number of samples.

Append Duration1 Sample2 Samples3 Samples4 Samples
1s$0.01$0.02$0.03$0.04
5s$0.05$0.10$0.15$0.20
10s$0.10$0.20$0.30$0.40
20s$0.20$0.40$0.60$0.80
30s$0.30$0.60$0.90$1.20
57s$0.57$1.14$1.71$2.28

Billing Rules

  • Pricing is $0.01 per generated second
  • prompt, ambience, and double_output do not affect pricing
  • Pricing is based on the newly generated extension, not the original uploaded prefix

Best Use Cases

  • Ambient loop creation — Extend and stitch background ambience for seamless looping.
  • Music continuation — Add new material after an existing musical phrase or intro.
  • Sound design — Build evolving effects, textures, and atmospheres from a short prefix.
  • Game and app audio — Create longer looping backgrounds or environmental sound beds.
  • Creative prototyping — Generate multiple continuation ideas quickly from a single source clip.

Pro Tips

  • Use a clean, clearly defined source clip for better continuation quality.
  • Add a short prompt only when you need stronger directional control.
  • Use ambience when the result needs to loop smoothly.
  • Turn on double_output only when you want a longer looped deliverable.
  • Increase num_samples when you want multiple variations from the same prefix.
  • Keep the total output length limit in mind when choosing prefix length and append duration.

Notes

  • audio is required.
  • Uploaded prefix audio must be between 3 and 59 seconds.
  • Total output is capped at 60 seconds.
  • append_duration controls how many new seconds are generated after the prefix.
  • double_output only applies when ambience is enabled.
  • Pricing is based on generated extension seconds and sample count.

Related Models

  • Other Mirelo AI audio generation workflows — Useful when you need fresh generation rather than extension.
  • Audio loop and ambience workflows — Useful for seamless background and environmental sound generation.
Note:This website uses AI models provided by third parties. Documentation prices are for reference and may be outdated. The Generate button shows an estimate; the final task charge prevails.

Sfx 1.6 Extend Audio API — Quick start

Grab a WaveSpeedAI API key, then call POST https://api.wavespeed.ai/api/v3/mirelo-ai/sfx-1.6/extend-audio with your input as JSON. The endpoint returns a prediction id. Start polling the result endpoint around every 2 seconds, increase the interval for long-running tasks, and stop on any terminal status. On completed, read output values from data.outputs. Examples for Sfx 1.6 Extend Audio below.

HTTP example
set -euo pipefail

: "${WAVESPEED_API_KEY:?Set WAVESPEED_API_KEY}"

REQUEST_BODY=$(cat <<'JSON'
{
    "audio": "https://interactive-examples.mdn.mozilla.net/media/cc0-audio/t-rex-roar.mp3",
    "append_duration": 10,
    "ambience": false,
    "double_output": false,
    "num_samples": 1
}
JSON
)

# 1. Submit the prediction.
SUBMIT_RESPONSE=$(curl --silent --show-error --fail-with-body \
  -X POST "https://api.wavespeed.ai/api/v3/mirelo-ai/sfx-1.6/extend-audio" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $WAVESPEED_API_KEY" \
  -d "$REQUEST_BODY")

TASK=$(printf '%s' "$SUBMIT_RESPONSE" | jq 'if has("data") then .data else . end')
PREDICTION_ID=$(printf '%s' "$TASK" | jq -r '.id')
if [ -z "$PREDICTION_ID" ] || [ "$PREDICTION_ID" = "null" ]; then
  printf 'Submission response did not contain a prediction id
' >&2
  exit 1
fi
RESULT_URL=$(printf '%s' "$TASK" | jq -r '.urls.get // empty')
if [ -z "$RESULT_URL" ]; then
  RESULT_URL="https://api.wavespeed.ai/api/v3/predictions/$PREDICTION_ID/result"
fi

# 2. Poll until the prediction finishes.
while true; do
  RESPONSE=$(curl --silent --show-error --fail-with-body "$RESULT_URL" \
    -H "Authorization: Bearer $WAVESPEED_API_KEY")
  RESULT=$(printf '%s' "$RESPONSE" | jq 'if has("data") then .data else . end')
  STATUS=$(printf '%s' "$RESULT" | jq -r '.status')
  case "$STATUS" in
    completed) printf '%s\n' "$RESULT" | jq '.outputs'; break ;;
    failed|cancelled|timeout) printf '%s\n' "$RESULT" | jq . >&2; exit 1 ;;
    created|processing) sleep 2 ;;
    *) printf 'Unexpected status: %s
' "$STATUS" >&2; exit 1 ;;
  esac
done
Node.js example
const submitUrl = "https://api.wavespeed.ai/api/v3/mirelo-ai/sfx-1.6/extend-audio";
const apiKey = process.env.WAVESPEED_API_KEY;
if (!apiKey) throw new Error('Set WAVESPEED_API_KEY');

async function requestJson(url, options = {}) {
  const response = await fetch(url, options);
  if (!response.ok) throw new Error(await response.text());
  return response.json();
}

// 1. Submit the prediction.
const body = await requestJson(submitUrl, {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${apiKey}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
        "audio": "https://interactive-examples.mdn.mozilla.net/media/cc0-audio/t-rex-roar.mp3",
        "append_duration": 10,
        "ambience": false,
        "double_output": false,
        "num_samples": 1
}),
});
const task = body.data ?? body;
if (!task.id) throw new Error("Submission response did not contain a prediction id");
const resultUrl = task.urls?.get ||
  `https://api.wavespeed.ai/api/v3/predictions/${task.id}/result`;

// 2. Poll until the prediction finishes.
while (true) {
  const resultBody = await requestJson(resultUrl, {
    headers: { "Authorization": `Bearer ${apiKey}` },
  });
  const result = resultBody.data ?? resultBody;
  if (result.status === "completed") {
    console.log(result.outputs);
    break;
  }
  if (["failed", "cancelled", "timeout"].includes(result.status)) throw new Error(JSON.stringify(result));
  if (!["created", "processing"].includes(result.status)) throw new Error("Unexpected status: " + result.status);
  await new Promise(resolve => setTimeout(resolve, 2000));
}
Python example
import json
import os
import time
from urllib.request import Request, urlopen

api_key = os.environ["WAVESPEED_API_KEY"]
headers = {"Authorization": f"Bearer {api_key}", "Content-Type": "application/json"}
payload = {
    "audio": "https://interactive-examples.mdn.mozilla.net/media/cc0-audio/t-rex-roar.mp3",
    "append_duration": 10,
    "ambience": False,
    "double_output": False,
    "num_samples": 1
}

def request_json(url, data=None):
    request = Request(url, data=data, headers=headers, method="POST" if data else "GET")
    with urlopen(request) as response:
        return json.load(response)

# 1. Submit the prediction.
body = request_json("https://api.wavespeed.ai/api/v3/mirelo-ai/sfx-1.6/extend-audio", json.dumps(payload).encode())
task = body.get("data", body)
if not task.get("id"):
    raise RuntimeError("Submission response did not contain a prediction id")
result_url = task.get("urls", {}).get("get") or f"https://api.wavespeed.ai/api/v3/predictions/{task['id']}/result"

# 2. Poll until the prediction finishes.
while True:
    result_body = request_json(result_url)
    result = result_body.get("data", result_body)
    status = result.get("status")
    if status == "completed":
        print(result.get("outputs", []))
        break
    if status in {"failed", "cancelled", "timeout"}:
        raise RuntimeError(result)
    if status not in {"created", "processing"}:
        raise RuntimeError(f"Unexpected status: {status}")
    time.sleep(2)

Sfx 1.6 Extend Audio API — Frequently asked questions

What is the Sfx 1.6 Extend Audio API?

Sfx 1.6 Extend Audio is a Mirelo Ai model for AI inference, exposed as a REST API on WaveSpeedAI. Mirelo SFX1.6 Extend Audio is a fast AI audio extension model that extends an audio prefix with seamless natural tails and optional ambience looping. Ready-to-use REST inference API for sound effects, ambient audio, game audio, video production, cinematic sound design, loopable audio assets, and professional audio generation workflows with simple integration, no coldstarts, and affordable pricing. You can call it programmatically or try it from the playground above.

How do I call the Sfx 1.6 Extend Audio API?

POST your input parameters to the model's REST endpoint (shown in the API tab of this playground) with your WaveSpeedAI API key in the Authorization header. Submission returns a prediction ID. Poll the result endpoint starting around every 2 seconds, increase the interval for long-running tasks, and stop on any terminal status. The playground generates production-oriented Python, JavaScript, and cURL examples with timeouts, transient-error handling, and safe GET retries. Full request/response shape is documented at https://wavespeed.ai/docs/docs-api/mirelo-ai/mirelo-ai-sfx-1.6-extend-audio.

How much does Sfx 1.6 Extend Audio cost per run?

Sfx 1.6 Extend Audio starts at $0.010 per run. That figure is the base price — the final charge scales with the parameters you set in the form (output size, length, count, references, or whatever knobs this model exposes), so a higher-quality or larger output costs more than a minimal one. The exact cost for your current input is shown live next to the Generate button before you submit, and the actual per-call charge is recorded on the prediction afterwards.

What inputs does Sfx 1.6 Extend Audio accept?

Key inputs: `prompt`, `audio`, `ambience`, `append_duration`, `double_output`, `num_samples`. The full JSON schema (types, defaults, allowed values) is rendered above the Generate button and mirrored in the API reference at https://wavespeed.ai/docs/docs-api/mirelo-ai/mirelo-ai-sfx-1.6-extend-audio.

How long does Sfx 1.6 Extend Audio take to generate?

Median end-to-end generation time on WaveSpeedAI is around 15 seconds per request, based on recent successful runs. Queue time varies with global demand; live status is visible in the prediction record.

Can I use Sfx 1.6 Extend Audio outputs commercially?

Commercial usage rights depend on the model's license, set by its provider (Mirelo Ai). The license summary appears on the model card above; see WaveSpeedAI's Terms of Service for platform-level conditions.

Sfx 1.6 Extend Audio | AI Voice Conversion API on WaveSpeedAI