Ana içeriğe geç
ace-studio avatarı

ACE-Step API

ace-studio/ace-step

Tür etiketlerinden ve isteğe bağlı sözlerden, süresini 4 dakikaya kadar sizin belirlediğiniz tam şarkılar ya da enstrümantal müzik üretin.

üretilen ses için saniye başına 0.0002

Model girdisi

Input

Comma-separated genre, mood, and instrument tags that define the musical style (e.g. 'lofi, hiphop, chill' or 'epic orchestral, cinematic'). This is the style control, not a prose prompt.

Optional song lyrics. Use section markers like [verse], [chorus], and [bridge] to structure a sung track. Leave empty or set to [inst]/[instrumental] for an instrumental piece.

Min: 5 - Max: 240

Length of the generated audio in seconds.

Additional Settings

Customize your input with more control.

Min: 3 - Max: 60

Number of generation steps. More steps can improve quality at the cost of speed.

Random seed for reproducible generation. Leave empty for a random result.

Diffusion sampler used during generation.

Guidance algorithm. apg is the most stable default; cfg and cfg_star are alternatives.

Min: -100 - Max: 100

Controls artifact reduction granularity during generation.

Min: 0 - Max: 1

Fraction of the generation over which guidance is applied.

Min: 0 - Max: 1

How much the guidance scale decays across the guidance interval.

Min: 0 - Max: 200

Classifier-free guidance scale; higher values follow the tags and lyrics more strictly.

Min: 0 - Max: 200

Floor that the guidance scale decays toward over the guidance interval.

Min: 0 - Max: 10

How strongly generation adheres to the genre tags.

Min: 0 - Max: 10

How strongly generation adheres to the provided lyrics.

You need to be logged in to run this model and view results.
Log in

Model çıktısı

Output

Loading
Generated in 9.42 seconds
Logs (1 lines)

Örnek istekler

Örnekler

ACE-Step API

ACE-Step is a music AI model by ace-studio. On ModelRunner it runs through a REST API or via MCP from any AI assistant, at $0.0002 per second of audio.

POST https://queue.modelrunner.run/ace-studio/ace-step

cURL

# Submit a request to the queue. Input fields go at the top level of the
# body. The optional reserved "metadata" object holds your own flat string
# tags — stored on the request, never sent to the model; filter later with
# GET https://queue.modelrunner.run/requests?metadata=<url-encoded JSON>.
curl -X POST https://queue.modelrunner.run/ace-studio/ace-step \
  -H "Authorization: Key $MRUN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "tags": "lofi, chill, piano",
    "lyrics": "",
    "duration": 8,
    "scheduler": "euler",
    "guidance_type": "apg",
    "guidance_scale": 15,
    "number_of_steps": 27,
    "granularity_scale": 10,
    "guidance_interval": 0.5,
    "tag_guidance_scale": 5,
    "lyric_guidance_scale": 1.5,
    "minimum_guidance_scale": 3,
    "guidance_interval_decay": 0,
    "metadata": {
      "project": "my-project"
    }
  }'
# → { "request_id": "...", "status_url": "...", "response_url": "..." }

# Poll status_url until "COMPLETED", then fetch the result
curl "https://queue.modelrunner.run/ace-studio/ace-step/requests/$REQUEST_ID/status" \
  -H "Authorization: Key $MRUN_API_KEY"
curl "https://queue.modelrunner.run/ace-studio/ace-step/requests/$REQUEST_ID" \
  -H "Authorization: Key $MRUN_API_KEY"

JavaScript

import { modelrunner } from "@modelrunner/client";

const result = await modelrunner.subscribe("ace-studio/ace-step", {
  input: {
    "tags": "lofi, chill, piano",
    "lyrics": "",
    "duration": 8,
    "scheduler": "euler",
    "guidance_type": "apg",
    "guidance_scale": 15,
    "number_of_steps": 27,
    "granularity_scale": 10,
    "guidance_interval": 0.5,
    "tag_guidance_scale": 5,
    "lyric_guidance_scale": 1.5,
    "minimum_guidance_scale": 3,
    "guidance_interval_decay": 0
  },
});
console.log(result);

Python

import os
import requests

headers = {"Authorization": f"Key {os.environ['MRUN_API_KEY']}"}

submitted = requests.post(
    "https://queue.modelrunner.run/ace-studio/ace-step",
    headers=headers,
    json={
      "tags": "lofi, chill, piano",
      "lyrics": "",
      "duration": 8,
      "scheduler": "euler",
      "guidance_type": "apg",
      "guidance_scale": 15,
      "number_of_steps": 27,
      "granularity_scale": 10,
      "guidance_interval": 0.5,
      "tag_guidance_scale": 5,
      "lyric_guidance_scale": 1.5,
      "minimum_guidance_scale": 3,
      "guidance_interval_decay": 0
    },
).json()

# Poll submitted["status_url"] until "COMPLETED", then:
result = requests.get(submitted["response_url"], headers=headers).json()

Input parameters

Input parameters of ACE-Step
NameTypeRequiredDescription
tagsstringyesComma-separated genre, mood, and instrument tags that define the musical style (e.g. 'lofi, hiphop, chill' or 'epic orchestral, cinematic'). This is the style control, not a prose prompt.
lyricsstringnoOptional song lyrics. Use section markers like [verse], [chorus], and [bridge] to structure a sung track. Leave empty or set to [inst]/[instrumental] for an instrumental piece. Default: "".
durationnumbernoLength of the generated audio in seconds. Default: 60.
number_of_stepsintegernoNumber of generation steps. More steps can improve quality at the cost of speed. Default: 27.
seedintegernoRandom seed for reproducible generation. Leave empty for a random result.
schedulerenumnoDiffusion sampler used during generation. One of: euler, heun. Default: "euler".
guidance_typeenumnoGuidance algorithm. apg is the most stable default; cfg and cfg_star are alternatives. One of: cfg, apg, cfg_star. Default: "apg".
granularity_scaleintegernoControls artifact reduction granularity during generation. Default: 10.
guidance_intervalnumbernoFraction of the generation over which guidance is applied. Default: 0.5.
guidance_interval_decaynumbernoHow much the guidance scale decays across the guidance interval. Default: 0.
guidance_scalenumbernoClassifier-free guidance scale; higher values follow the tags and lyrics more strictly. Default: 15.
minimum_guidance_scalenumbernoFloor that the guidance scale decays toward over the guidance interval. Default: 3.
tag_guidance_scalenumbernoHow strongly generation adheres to the genre tags. Default: 5.
lyric_guidance_scalenumbernoHow strongly generation adheres to the provided lyrics. Default: 1.5.

Machine-readable: OpenAPI schema · llms.txt

Use ACE-Step from Claude & Cursor (MCP)

Point Claude Code, Claude Desktop, Cursor, or any MCP client at the ModelRunner MCP server and ACE-Step becomes a tool your assistant can call directly — it authorizes via OAuth (no API key in config) and runs this model with the run_model tool using the endpoint ace-studio/ace-step.

MCP client config (Claude Desktop, Cursor)

{
  "mcpServers": {
    "modelrunner": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://mcp.modelrunner.run/mcp"]
    }
  }
}

Claude Code

claude mcp add --transport http modelrunner https://mcp.modelrunner.run/mcp

Then ask your assistant, for example: “Run ace-studio/ace-step on ModelRunner to generate music”. MCP setup guide.

Model Detayları

Model Detayları

ACE-Step, kısa bir tür etiketi listesini — ve isteğe bağlı şarkı sözlerini — barındırılan, eksiksiz bir müzik parçasına dönüştürür. İstediğiniz tarzı virgülle ayrılmış etiketlerle tarif edin (`tags`, ör. "lofi, hiphop, chill" ya da "epic orchestral, cinematic"), vokalli bir parça için `[verse]`/`[chorus]` işaretli sözler ekleyin ya da tamamen enstrümantal bir eser için sözleri boş bırakın. Güçlü yanı hızlı ve kontrol edilebilir şarkı üretimi: süreyi saniye cinsinden siz belirlersiniz, sonucu uzun bir düz yazı prompt’u yerine tür etiketleriyle yönlendirirsiniz ve model indirmeye hazır, bitmiş bir ses dosyası döndürür.

## En uygun olduğu işler - Sözler ve tür/tarz açıklamasından vokalli, eksiksiz şarkılar üretmek - Yalnızca tür etiketlerinden enstrümantal altyapılar, beat’ler ve loop’lar üretmek - Video, oyun ve podcast’ler için belirli bir tarzda fon müziği - Tam bir prodüksiyon seansından önce müzikal fikirleri türler arasında hızla denemek

## Şu durumlarda başka bir model seçin - Şarkı yerine konuşma anlatımı ya da seslendirme gerekiyorsa — bir text-to-speech modeli kullanın - Müzik parçası yerine tek seferlik ses efektleri, foley ya da ortam sesi istiyorsanız — bir text-to-audio ses efekti modeli kullanın - Mevcut bir ses klibini uzatmak, remix’lemek ya da inpaint etmek istiyorsanız — bir audio-to-audio modeli kullanın

## İpuçları - `tags` tarz kontrolüdür (düz yazı prompt’u değil): virgülle ayrılmış türler, ruh halleri ve enstrümanlar verin, ör. "pop, acoustic, guitar" ya da "drum and bass, energetic, synth". - Enstrümantal parça için `lyrics` alanını boş bırakın (ya da `[inst]` yazın). Vokal için sözleri `[verse]`, `[chorus]` ve `[bridge]` gibi bölüm işaretleriyle yapılandırın; her söz satırı ayrı bir satırda olsun. - `duration` saniye cinsindendir (5–240, varsayılan 60). Fiyatlandırma üretilen sesin saniyesi başına olduğundan daha uzun süreler orantılı olarak daha pahalıdır.

## Gelişmiş Yapılandırma - `scheduler` (varsayılan `euler`): diffusion örnekleyicisi — `euler` ya da `heun`. `heun`, hız pahasına kaliteyi iyileştirebilir. API üzerinden ayarlanır. - `guidance_type` (varsayılan `apg`): yönlendirme algoritması — `cfg`, `apg` ya da `cfg_star`. `apg` (varsayılan) genellikle en kararlı sonuçları verir. API üzerinden ayarlanır. - `tag_guidance_scale` (varsayılan 5) ve `lyric_guidance_scale` (varsayılan 1.5): üretimin tür etiketlerine ve sözlere ne kadar sıkı bağlı kalacağı. Girdiye daha sıkı uymak için yükseltin. API üzerinden ayarlanır.

ModelRunner JavaScript client ile çalıştırmak için: ```js import { modelrunner } from "@modelrunner/client";

const result = await modelrunner.subscribe("ace-studio/ace-step", { input: { tags: "lofi, hiphop, chill", lyrics: "[verse]\ncity lights and quiet streets\n[chorus]\nslow it down, feel the beat", duration: 60, }, }); ```