suno-api
Suno skaber musik ud fra en kort skriftlig idé. Den dokumenterede automatiske arbejdsgang producerer to sange og giver mulighed for at vælge instrumental musik. Den færdige lyd samt metadata om numrene returneres via genereringsopgaven.
Om modellen
Denne beskrivelse dækker modellens funktioner. Tilgængelige input, output og indstillinger i Ailoot står nedenfor for den valgte metode.
Suno er en tjeneste til musikgenerering, der omsætter en skriftlig idé til sange. Den dokumenterede automatiske arbejdsgang modtager en kort beskrivelse af den ønskede musik samt et valg af, om musikken skal være instrumental, og genererer derefter to sange. Brug beskrivelsen til at fastlægge det tema, den stemning og den musikalske retning, du vil høre i de færdige numre.
Start med den rolle, musikken skal spille. En rolig baggrund til en forklaring, en energisk åbning til en kort video eller en eftertænksom sang om en rejse giver hver især beskrivelsen et konkret formål. Beskriv den ønskede stemning og de musikalske træk, der er vigtige for formålet, i nogle få tydelige formuleringer.
Til en sang med vokal skal du gøre tema og sprog tydelige i den kreative beskrivelse. Beskriv den idé, nummeret skal udtrykke, og den tone, fremførelsen skal formidle. Lyt til det færdige resultat for at vurdere, hvordan vokal, ord og arrangement fungerer sammen. Gem de genererede oplysninger om nummeret sammen med lyden til gennemgang.
Til et instrumentalt resultat skal du bruge den dokumenterede indstilling for instrumental musik og beskrive den musikalske retning i teksten. Angiv den ønskede atmosfære og fremtrædende instrumenter, når de har betydning for projektet. Gennemlyt det færdige nummer med fokus på den plads, det skal have i klipningen, inklusive de afsnit, der skal ligge under tale eller understøtte en visuel overgang.
Den automatiske arbejdsgang producerer to sange ud fra den indsendte idé. Behandl dem som to forskellige forslag, og gem begge færdige lydfiler. Lyt til hver sang gennem åbning, udvikling og afslutning. Sammenlign de faktiske numre ud fra det samme formål, inklusive deres stemning, arrangement og egnethed til den planlagte brug.
Genereringen er organiseret som en opgave. Gem det returnerede opgave-ID, mens du kontrollerer resultatet, og skeln mellem færdige numre og elementer, der stadig er undervejs. Det dokumenterede resultat omfatter oplysninger for hvert nummer, eksempelvis titel, status, lydens placering og varighed. Gem selve den færdige lyd sammen med de tilgængelige metadata og den oprindelige beskrivelse.
Til en video eller præsentation skal du prøvelytte den valgte musik sammen med det faktiske materiale. Kontrollér åbningen, overgangene og afslutningen ved det planlagte lydniveau. Markér det afsnit, der understøtter klipningen, og gem hele nummeret til senere ændringer. Et egnet musikuddrag vurderes i sammenhæng med stemmen, billederne og tempoet i det færdige værk.
Gem den skriftlige idé, indstillingen for instrumental musik, modelvalget og alle færdige numre sammen. Når et forslag kræver revision, skal du identificere den musikalske afvigelse, eksempelvis et arrangement, der er for tætpakket til at fungere under tale, eller en åbning, der udvikler sig for langsomt. Bevar den brugbare retning, og revidér den del af beskrivelsen, der vedrører problemet.
Ailoot Ultra · Music POST /v1/music/generations suno-api
suno-apiStart
Suno skaber musik ud fra en kort skriftlig idé. Den dokumenterede automatiske arbejdsgang producerer to sange og giver mulighed for at vælge instrumental musik. Den færdige lyd samt metadata om numrene returneres via genereringsopgaven.
- Accepterede input
- Tekst
- Resultater
- Lyd · Billeder · Video
Tilgængelig i Ailoot · input og metoder
Ailoot Ultra · Music POST /v1/music/generations
- Inputtyper
text- Outputtyper
audio,image,video
| Felt | Type | Krav | Værdier og grænser | Standard |
|---|---|---|---|---|
Feltmodel | Typestring | KravPåkrævet | Værdier og grænser suno-api Betingelser: Brug præcis denne routingvælger for Ailoot. | Standard— |
Feltgpt_description_prompt | Typestring | KravPåkrævet | Værdier og grænser Betingelser: Beskriv den musikalske idé eller sangens tema. | Standard— |
Feltmv | Typestring | KravPåkrævet | Værdier og grænser chirp-fenix, chirp-crow, chirp-bluejay, chirp-auk, chirp-v4, chirp-v3-5 Betingelser: Vælg udtrykkeligt en dokumenteret Suno-version; eksemplet bruger chirp-crow (v5). | Standard— |
Feltmake_instrumental | Typeboolean | KravPåkrævet | Værdier og grænser Betingelser: Angiv true for instrumentalmusik eller false for en sang. | Standard— |
Metodeparametre og livscyklus
| Parameter | Kontrakt |
|---|---|
Parametercontent_type | Kontraktapplication/json |
Parameterrequired | Kontraktmodel, gpt_description_prompt, mv, make_instrumental |
Parameteroptional | Kontrakt |
Parametermaterial_types | Kontrakttext |
Parameterconditions | KontraktBrug præcis denne routingvælger for Ailoot., Beskriv den musikalske idé eller sangens tema., Vælg udtrykkeligt en dokumenteret Suno-version; eksemplet bruger chirp-crow (v5)., Angiv true for instrumentalmusik eller false for en sang. |
Livscyklus: submit_once_poll_original
GET /v1/music/generations/{request_id}
GET /v1/media/assets
GET /v1/media/assets/{asset_id}
Priser
Sådan beregnes det endelige beløb
De viste satser bruges til at anslå omkostningen før genereringen. Det endelige beløb beregnes ud fra den registrerede omkostning for den oprindelige generering. Den målte varighed af outputtet og de anslåede mængder er ikke den endelige fakturerbare mængde.
Tarifoplysninger tilføjer ikke anmodningsmuligheder. Understøttede parametre står ved den valgte metode.
- Hurtig tilstand
- Ikke angivet Når hurtig tilstand er valgt
- flex-tilstand
- Ikke angivet Når flex-tilstanden er valgt
- Maksimal ræsonneringsindsats
- Ikke angivet Når default-justeringen anvendes ved maksimal ræsonneringsindsats
Estimerede takster til sammenligning
Priser efter konfiguration
Knyt hver omkostning til de viste betingelser. Brug én takst for hver gruppe af alternative konfigurationer.
| Konfiguration | Takstplan | Forventet mængde | Afregnet mængde | Beløb |
|---|---|---|---|---|
| KonfigurationGrundpriser for tokens | TakstplanGrundtakst | Forventet mængde— | Afregnet mængde— | Beløb Input · Inputtokens · Estimat kun til sammenligning — / 1K tokens Output · Outputtokens · Estimat kun til sammenligning — / 1K tokens Input · Cachelæsning · Estimat kun til sammenligning — / 1K tokens Input · Cacheskrivning · Estimat kun til sammenligning — / 1K tokens Input · Cacheskrivning, 1 time · Estimat kun til sammenligning — / 1K tokens |
| KonfigurationPr. forespørgsel | Takstplan— | Forventet mængde— | Afregnet mængdeén forespørgsel | Beløb Input · Estimat kun til sammenligning $0.2 pr. anmodning |
| KonfigurationAnslået genereringsomkostning | Takstplan— | Forventet mængdeestimat for én generering | Afregnet mængde— | Beløb Output · Anslået genereringsomkostning · Estimat kun til sammenligning $0.2 estimat før generering Dette estimat er hverken et ekstra gebyr eller en fast pris for den færdige generering. |
Ailoot reserverer et estimeret beløb før en anmodning. Efter resultatet afregnes det endelige beløb ud fra det målte forbrug. Ved streaming bruges den endelige forbrugsregistrering til afregningen. Sådan fungerer reservation og afregning →
Eksempelanmodninger
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
Hent og gem resultater
Ailoot Ultra · Music
Hent hvert returneret billede, eller gem dets Base64-indhold
GET /v1/music/generations/{request_id}GET /v1/media/assetsGET /v1/media/assets/{asset_id}
Behold alle færdige resultater
Gem hvert fuldstændigt returneret svar, hver fil og hver indholdsdel.
Behold hele svaret og alle headere, de oprindelige identifikatorer, hvert faktisk output og alle felter til forbrug og afregning. Gem hvert entydigt aktiv, du ejer, og behold alle roller, der henviser til det.
Hvis det oprindelige svar skal kontrolleres
Behold det returnerede offentlige opgave- eller operations-id og alle headere. Læs kun den oprindelige opgave; unknown eller result_pending_check giver ikke tilladelse til en ny oprettelse.
Svarfelter
| Felt | Type |
|---|---|
Feltid | Typestring |
Feltpolling_url | Typestring |
Feltprovider_task_id | Typestring |
Feltdata.task_id | Typestring |
Feltdata.status | Typestring |
Feltdata.data[].audio_url | Typestring |
Feltdata.data[].image_url | Typestring |
Feltdata.data[].image_large_url | Typestring |
Feltdata.data[].video_url | Typestring |
Aliaser
Modelaliaser
Ailoot Ultra suno-api
Aliaser for metodestier
Brug metodestierne vist ovenfor.
Relaterede kalder-ID’er
FAQ · suno-api
- Hvilke input og resultater er tilgængelige?
POST /v1/music/generations·suno-api:text→audio,image,video- Hvilke felter bruger anmodningen?
POST /v1/music/generations·suno-api:model,gpt_description_prompt,mv,make_instrumental