suno-api
Suno tworzy muzykę z krótkiego pisemnego pomysłu. Udokumentowany proces automatyczny generuje dwa utwory i obejmuje wybór wersji instrumentalnej, a gotowe audio i metadane utworów są zwracane w ramach zadania generowania.
O modelu
Ten opis przedstawia możliwości modelu. Dane wejściowe, wyniki i opcje dostępne w Ailoot podano poniżej dla wybranej metody.
Suno to usługa generowania muzyki, która zamienia pisemny pomysł w utwory. Udokumentowany proces automatyczny przyjmuje krótki opis zamierzonej muzyki i wybór wersji instrumentalnej, a następnie generuje dwa utwory. Użyj briefu do określenia tematu, nastroju i kierunku muzycznego, które chcesz usłyszeć w gotowych nagraniach.
Zacznij od roli, jaką ma pełnić muzyka. Spokojne tło dla objaśnienia, energiczny początek krótkiego filmu lub refleksyjna piosenka o podróży nadają briefowi konkretny cel. W kilku jasnych sformułowaniach opisz zamierzony nastrój i cechy muzyczne ważne dla tego celu.
W przypadku utworu z wokalem jasno określ temat i język w briefie twórczym. Opisz ideę, którą utwór ma wyrażać, i ton, który ma oddawać wykonanie. Posłuchaj gotowego rezultatu, oceniając współdziałanie wokalu, słów i aranżacji. Zachowaj informacje o wygenerowanym utworze wraz z audio do oceny.
Aby uzyskać wersję instrumentalną, użyj udokumentowanej opcji instrumentalnej i opisz kierunek muzyczny w tekście. Określ oczekiwaną atmosferę i wiodące instrumenty, gdy mają znaczenie dla projektu. Oceń gotowy utwór pod kątem miejsca, które zajmie w montażu, w tym fragmentów mających stanowić tło dla mowy lub wspierać przejście wizualne.
Proces automatyczny tworzy dwa utwory na podstawie przesłanego pomysłu. Traktuj je jako odrębne warianty i zachowaj oba gotowe pliki audio. Wysłuchaj każdego od początku, przez rozwinięcie, aż do zakończenia. Porównaj rzeczywiste utwory względem tego samego celu, uwzględniając ich nastrój, aranżację i przydatność do planowanego zastosowania.
Generowanie jest zorganizowane jako zadanie. Zachowaj zwrócony identyfikator zadania podczas sprawdzania jego wyniku i odróżniaj gotowe utwory od pozycji nadal przetwarzanych. Udokumentowany wynik zawiera informacje o poszczególnych utworach, takie jak tytuł, status, lokalizacja audio i czas trwania. Zapisz samo gotowe audio wraz z dostępnymi metadanymi i oryginalnym briefem.
W przypadku filmu lub prezentacji sprawdź wybraną muzykę z rzeczywistym materiałem. Oceń początek, przejścia i zakończenie przy zamierzonym poziomie głośności odsłuchu. Zaznacz fragment służący montażowi i zachowaj pełny utwór na potrzeby późniejszych zmian. Odpowiedni fragment muzyki ocenia się w kontekście głosu, obrazów i tempa gotowego materiału.
Przechowuj razem pisemny pomysł, ustawienie wersji instrumentalnej, wybrany model i wszystkie gotowe utwory. Gdy wariant wymaga poprawki, wskaż muzyczną rozbieżność, na przykład aranżację zbyt gęstą jako tło dla mowy lub początek rozwijający się zbyt wolno. Zachowaj przydatny kierunek i zmień część briefu związaną z tym problemem.
Ailoot Ultra · Music POST /v1/music/generations suno-api
suno-apiStart
Suno tworzy muzykę z krótkiego pisemnego pomysłu. Udokumentowany proces automatyczny generuje dwa utwory i obejmuje wybór wersji instrumentalnej, a gotowe audio i metadane utworów są zwracane w ramach zadania generowania.
- Akceptowane dane wejściowe
- Tekst
- Wyniki
- Audio · Obrazy · Wideo
Dostępne w Ailoot · dane wejściowe i metody
Ailoot Ultra · Music POST /v1/music/generations
- Wejście
text- Wyjście
audio,image,video
| Pole | Typ | Wymaganie | Wartości i limity | Domyślnie |
|---|---|---|---|---|
Polemodel | Typstring | WymaganieWymagane | Wartości i limity suno-api Warunki: Użyj dokładnie tego selektora trasowania Ailoot. | Domyślnie— |
Polegpt_description_prompt | Typstring | WymaganieWymagane | Wartości i limity Warunki: Opisz pomysł muzyczny lub temat piosenki. | Domyślnie— |
Polemv | Typstring | WymaganieWymagane | Wartości i limity chirp-fenix, chirp-crow, chirp-bluejay, chirp-auk, chirp-v4, chirp-v3-5 Warunki: Wybierz konkretną udokumentowaną wersję Suno; przykład używa chirp-crow (v5). | Domyślnie— |
Polemake_instrumental | Typboolean | WymaganieWymagane | Wartości i limity Warunki: Ustaw true dla muzyki instrumentalnej lub false dla piosenki. | Domyślnie— |
Parametry i cykl życia metody
| Parametr | Kontrakt |
|---|---|
Parametrcontent_type | Kontraktapplication/json |
Parametrrequired | Kontraktmodel, gpt_description_prompt, mv, make_instrumental |
Parametroptional | Kontrakt |
Parametrmaterial_types | Kontrakttext |
Parametrconditions | KontraktUżyj dokładnie tego selektora trasowania Ailoot., Opisz pomysł muzyczny lub temat piosenki., Wybierz konkretną udokumentowaną wersję Suno; przykład używa chirp-crow (v5)., Ustaw true dla muzyki instrumentalnej lub false dla piosenki. |
Cykl życia: submit_once_poll_original
GET /v1/music/generations/{request_id}
GET /v1/media/assets
GET /v1/media/assets/{asset_id}
Cennik
Jak obliczana jest ostateczna opłata
Wyświetlane stawki służą do oszacowania kosztu przed generowaniem. Ostateczna opłata jest obliczana na podstawie kosztu zarejestrowanego dla pierwotnego generowania. Zmierzony czas trwania wyniku i prognozowane ilości nie stanowią ostatecznej ilości podlegającej rozliczeniu.
Informacje taryfowe nie dodają opcji żądania. Obsługiwane parametry podano przy wybranej metodzie.
- Tryb szybki
- Nie określono Gdy wybrany jest tryb szybki
- Tryb flex
- Nie określono Gdy wybrany jest tryb flex
- Maksymalna intensywność rozumowania
- Nie określono Gdy dla maksymalnej intensywności rozumowania stosowana jest domyślna korekta (default)
Szacunkowe stawki do porównania
Ceny według konfiguracji
Dopasuj każdą opłatę do pokazanych warunków. Użyj jednej stawki dla każdego zestawu alternatywnych konfiguracji.
| Konfiguracja | Tabela stawek | Przewidywana ilość | Ilość do rozliczenia | Opłata |
|---|---|---|---|---|
| KonfiguracjaBazowe stawki za tokeny | Tabela stawekStawka podstawowa | Przewidywana ilość— | Ilość do rozliczenia— | Opłata Wejście · Tokeny wejściowe · Szacunek tylko do porównania — / 1K tokenów Wyjście · Tokeny wyjściowe · Szacunek tylko do porównania — / 1K tokenów Wejście · Odczyt cache · Szacunek tylko do porównania — / 1K tokenów Wejście · Zapis do cache · Szacunek tylko do porównania — / 1K tokenów Wejście · Zapis do cache, 1 godz. · Szacunek tylko do porównania — / 1K tokenów |
| KonfiguracjaZa żądanie | Tabela stawek— | Przewidywana ilość— | Ilość do rozliczeniajedno żądanie | Opłata Wejście · Szacunek tylko do porównania $0.2 za żądanie |
| KonfiguracjaSzacowany koszt generowania | Tabela stawek— | Przewidywana ilośćszacunek dla jednego generowania | Ilość do rozliczenia— | Opłata Wyjście · Szacowany koszt generowania · Szacunek tylko do porównania $0.2 szacunek przed generowaniem Ten szacunek nie jest dodatkową opłatą ani stałą stawką za ukończone generowanie. |
Ailoot rezerwuje szacowaną kwotę przed żądaniem. Po otrzymaniu wyniku rozlicza ostateczną opłatę według zmierzonego użycia. Rozliczenie strumieniowania korzysta z końcowego rekordu użycia. Jak działają rezerwacja i rozliczenie →
Przykładowe żądania
Ailoot Ultra · Music
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
cat > request.json <<'JSON'
{
"model": "suno-api",
"gpt_description_prompt": "古诗词",
"mv": "chirp-crow",
"make_instrumental": false
}
JSON
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/music/generations \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @request.json -D response-headers.txt -o result.json
# Create once; retain id, polling_url, original task identifiers and every header.
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
export AILOOT_API_KEY
python3 - <<'PY_STATUS'
import json,os,subprocess
from pathlib import Path
from urllib.parse import urljoin,urlsplit
r=json.loads(Path("result.json").read_text())
u=urljoin("https://api.ailoot.ai",r["polling_url"])
p=urlsplit(u)
if p.scheme!="https" or p.netloc!="api.ailoot.ai" or p.username or p.password:
raise SystemExit("Unexpected returned polling URL; preserve the response")
subprocess.run(["curl","--fail-with-body","--silent","--show-error",u,"-H","Authorization: Bearer "+os.environ["AILOOT_API_KEY"],"-D","status-headers.txt","-o","status.json"],check=True)
# Read this same original polling_url again while pending.
# Preserve unknown/result_pending_check; do not repeat creation.
PY_STATUS
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
export AILOOT_API_KEY
python3 - <<'PY_ASSETS'
import json,os,subprocess
from pathlib import Path
from urllib.parse import urljoin,urlsplit
r=json.loads(Path("status.json").read_text())
roles={}
def visit(v,path=""):
if isinstance(v,dict):
for k,x in v.items(): visit(x,path+"/"+k)
elif isinstance(v,list):
for i,x in enumerate(v): visit(x,path+"/"+str(i))
elif isinstance(v,str):
u=urljoin("https://api.ailoot.ai",v); p=urlsplit(u)
if p.scheme=="https" and p.netloc=="api.ailoot.ai" and not p.username and not p.password and p.path.startswith("/v1/media/assets/") and p.path.endswith("/content"):
roles.setdefault(u,[]).append(path)
visit(r)
if not roles: raise SystemExit("No completed owned assets; retain the original status")
manifest=[]
for i,(u,paths) in enumerate(roles.items()):
target=Path(f"asset-{i}.bin")
subprocess.run(["curl","--fail-with-body","--silent","--show-error",u,"-H","Authorization: Bearer "+os.environ["AILOOT_API_KEY"],"-o",str(target)],check=True)
raw=target.read_bytes()
if not raw: raise SystemExit("Empty asset; retain original status and metadata")
ext="glb" if raw[:4]==b"glTF" else "png" if raw[:8]==b"\x89PNG\r\n\x1a\n" else "jpg" if raw[:3]==b"\xff\xd8\xff" else "webp" if raw[:4]==b"RIFF" and raw[8:12]==b"WEBP" else "mp4" if raw[4:8]==b"ftyp" else "bin"
name=f"asset-{i}.{ext}"
if target.name!=name: target.rename(name)
manifest.append({"file":name,"response_paths":paths,"bytes":len(raw)})
Path("asset-manifest.json").write_text(json.dumps(manifest,indent=2))
print("Saved",len(manifest),"unique owned assets; every response role retained")
PY_ASSETS
Odbieranie i zapisywanie wyników
Ailoot Ultra · Music
Pobierz każdy zwrócony obraz lub zapisz jego zawartość Base64
GET /v1/music/generations/{request_id}GET /v1/media/assetsGET /v1/media/assets/{asset_id}
Zachowaj wszystkie ukończone wyniki
Zachowaj każdą kompletną zwróconą odpowiedź, plik i część treści.
Zachowaj kompletną odpowiedź i nagłówki, pierwotne identyfikatory, wszystkie rzeczywiste wyniki oraz wszystkie pola użycia i rozliczeń. Zapisz każdy unikalny zasób należący do użytkownika i zachowaj wszystkie role, które na niego wskazują.
Jeśli trzeba sprawdzić pierwotną odpowiedź
Zachowaj zwrócone publiczne id zadania lub operacji oraz wszystkie nagłówki. Odczytuj wyłącznie pierwotne zadanie; unknown ani result_pending_check nie uprawniają do ponownego utworzenia.
Pola odpowiedzi
| Pole | Typ |
|---|---|
Poleid | Typstring |
Polepolling_url | Typstring |
Poleprovider_task_id | Typstring |
Poledata.task_id | Typstring |
Poledata.status | Typstring |
Poledata.data[].audio_url | Typstring |
Poledata.data[].image_url | Typstring |
Poledata.data[].image_large_url | Typstring |
Poledata.data[].video_url | Typstring |
Aliasy
Aliasy modelu
Ailoot Ultra suno-api
Aliasy ścieżek metod
Użyj ścieżek metod podanych powyżej.
Powiązane ID modeli
FAQ · suno-api
- Jakie dane wejściowe i wyniki są dostępne?
POST /v1/music/generations·suno-api:text→audio,image,video- Jakich pól używa żądanie?
POST /v1/music/generations·suno-api:model,gpt_description_prompt,mv,make_instrumental