
Open-source music generation model for text-to-song and lyric-guided audio, with fast 8-step XL Turbo inference for controllable song iteration.
Open-source music generation model for text-to-song and lyric-guided audio, with fast 8-step XL Turbo inference for controllable song iteration.
ace-step-1.5-xlPOST /v1/audio/generationsLive pay-as-you-go rates from the EmpirioLabs catalog. You are billed only for what you use, with no monthly minimum.
ACE-Step 1.5 XL runs through POST /v1/audio/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/audio/generations \
-H "Authorization: Bearer $EMPIRIOLABS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "ace-step-1.5-xl",
"prompt": "Describe what you want ACE-Step 1.5 XL 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/audio/generations",
headers={"Authorization": "Bearer YOUR_EMPIRIOLABS_API_KEY"},
json={
"model": "ace-step-1.5-xl",
"prompt": "Describe what you want ACE-Step 1.5 XL 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 ACE-Step 1.5 XL API on EmpirioLabs. Defaults apply when a field is omitted.
| Parameter | Type | Default | Range / values | Description |
|---|---|---|---|---|
| prompt | string | - | - | Genre, mood, instrumentation, and BPM hints describing the music to compose. Comma-separated tags work well. |
| lyrics | string | - | - | Vocal lyrics for the track. Use [verse] / [chorus] / [bridge] tags to mark sections, blank line for instrumental break. Leave empty for purely instrumental tracks. |
| audio_duration | number | 30 | 10 to 240 | Length of the generated track in seconds. The model is most reliable up to ~4 minutes; longer durations risk OOM/quality drops during diffusion. |
| num_inference_steps | integer | 8 | 1 to 20 | Number of diffusion steps. 8 is the recommended sweet spot for the Turbo variant; raise for more polish, lower for cheaper draft generations. |
| guidance_scale | number | 1 | 0 to 20 | Classifier-free guidance scale. 1.0 follows the model's natural distribution; higher values push closer to the prompt at the cost of variety. |
| shift | number | - | - | Diffusion timestep shift. Default leaves the schedule unchanged; nudge to 1.0+ for shorter/punchier or below 1.0 for slower/dreamier results. |
| negative_prompt | string | - | - | Negative prompt — anti-tags, anti-styles, instruments to exclude. Same comma-separated style as prompt. |
| seed | integer | - | - | Random seed for reproducibility. Same seed + identical params produces the same track. |
| format | enum | flac | flac, wav, ogg, mp3 | Audio container format for the response. FLAC = lossless, WAV = uncompressed, MP3 = small file size. |
| response_format | enum | url | url, b64_json | How the worker returns the audio. 'url' returns a signed URL to the rendered file; 'base64' inlines the bytes in the response. |
| return_base64 | boolean | false | - | When true, the response includes the rendered audio as base64 in addition to (or instead of, depending on response_format) the URL. |
Supports lyrics, prompt/description, 10-600s duration, seed, shift, optional negative prompt when supported by the pinned pipeline, and URL or base64 output mode.
On EmpirioLabs, ACE-Step 1.5 XL is billed pay as you go: Music generation $0.00025 (was $0.0003) per generated second. The live rate card on this page always matches what the API charges.
ACE-Step 1.5 XL is served through POST /v1/audio/generations on api.empiriolabs.ai with standard bearer-token authentication.
Yes. The EmpirioLabs playground runs ACE-Step 1.5 XL 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.
Explore our models, or contact us about business inquiries, custom deployments, or anything else.