suno-api
Suno maakt muziek op basis van een kort geschreven idee. De gedocumenteerde automatische workflow produceert twee nummers en biedt een keuze voor instrumentale muziek. De voltooide audio en de trackmetadata worden via de generatietaak terugbezorgd.
Over het model
Deze beschrijving gaat over de mogelijkheden van het model. De via Ailoot beschikbare invoer, uitvoer en opties staan hieronder voor de geselecteerde methode.
Suno is een muziekgeneratieservice die een geschreven idee omzet in nummers. De gedocumenteerde automatische workflow verwerkt een korte beschrijving van de beoogde muziek en een keuze voor instrumentale muziek en genereert vervolgens twee nummers. Gebruik de briefing om het thema, de sfeer en de muzikale richting vast te leggen die je in de voltooide tracks wil horen.
Begin met de rol die de muziek moet vervullen. Een rustige achtergrond bij een uitleg, een energieke opening voor een korte video of een beschouwend lied over een reis geeft de briefing telkens een concreet doel. Beschrijf de beoogde sfeer en de muzikale kenmerken die voor dat doel van belang zijn in enkele duidelijke formuleringen.
Maak bij een nummer met zang het thema en de taal duidelijk in de creatieve briefing. Beschrijf het idee dat de track moet uitdrukken en de toon die de uitvoering moet overbrengen. Luister naar het voltooide resultaat om te beoordelen hoe zang, tekst en arrangement samenwerken. Bewaar de gegenereerde trackinformatie naast de audio voor de beoordeling.
Gebruik voor een instrumentaal resultaat de gedocumenteerde keuze voor instrumentale muziek en beschrijf de muzikale richting in de tekst. Vermeld de gewenste sfeer en de instrumenten die op de voorgrond moeten staan wanneer die voor het project van belang zijn. Beoordeel de voltooide track op de plaats die deze in de montage krijgt, inclusief de delen die onder gesproken tekst moeten passen of een visuele overgang moeten ondersteunen.
De automatische workflow produceert twee nummers vanuit het ingediende idee. Behandel die als afzonderlijke kandidaten en bewaar beide voltooide audiobestanden. Beluister elk nummer vanaf de opening, doorheen de opbouw en tot het einde. Vergelijk de werkelijke tracks met hetzelfde doel, inclusief hun sfeer, arrangement en geschiktheid voor het geplande gebruik.
De generatie is georganiseerd als een taak. Bewaar de ontvangen taak-ID terwijl je het resultaat controleert en maak onderscheid tussen voltooide tracks en onderdelen die nog worden verwerkt. Het gedocumenteerde resultaat bevat informatie per track, zoals titel, status, audiolocatie en duur. Bewaar de voltooide audio zelf bij de beschikbare metadata en de oorspronkelijke briefing.
Probeer bij een video of presentatie de geselecteerde muziek uit met het werkelijke materiaal. Controleer de opening, overgangen en het einde op het beoogde luistervolume. Markeer het fragment dat de montage ondersteunt en bewaar de volledige track voor latere aanpassingen. Een geschikt muziekfragment wordt beoordeeld in samenhang met de stem, beelden en het tempo van het voltooide werk.
Bewaar het geschreven idee, de keuze voor instrumentale muziek, de modelkeuze en alle voltooide tracks bij elkaar. Benoem wanneer een kandidaat moet worden aangepast de muzikale afwijking, zoals een arrangement dat onder gesproken tekst te druk is of een opening die zich te langzaam ontwikkelt. Behoud de bruikbare richting en pas het deel van de briefing aan dat met dat probleem samenhangt.
Ailoot Ultra · Music POST /v1/music/generations suno-api
suno-apiAan de slag
Suno maakt muziek op basis van een kort geschreven idee. De gedocumenteerde automatische workflow produceert twee nummers en biedt een keuze voor instrumentale muziek. De voltooide audio en de trackmetadata worden via de generatietaak terugbezorgd.
- Toegestane invoer
- Tekst
- Resultaten
- Audio · Afbeeldingen · Video
Beschikbaar in Ailoot · invoer en methoden
Ailoot Ultra · Music POST /v1/music/generations
- Invoer
text- Uitvoer
audio,image,video
| Veld | Type | Vereiste | Waarden en limieten | Standaard |
|---|---|---|---|---|
Veldmodel | Typestring | VereisteVereist | Waarden en limieten suno-api Voorwaarden: Gebruik precies deze Ailoot-routeringsselector. | Standaard— |
Veldgpt_description_prompt | Typestring | VereisteVereist | Waarden en limieten Voorwaarden: Beschrijf het muzikale idee of het thema van het lied. | Standaard— |
Veldmv | Typestring | VereisteVereist | Waarden en limieten chirp-fenix, chirp-crow, chirp-bluejay, chirp-auk, chirp-v4, chirp-v3-5 Voorwaarden: Kies uitdrukkelijk een gedocumenteerde Suno-versie; het voorbeeld gebruikt chirp-crow (v5). | Standaard— |
Veldmake_instrumental | Typeboolean | VereisteVereist | Waarden en limieten Voorwaarden: Stel true in voor instrumentale muziek of false voor een lied. | Standaard— |
Methodeparameters en levenscyclus
| Parameter | Contract |
|---|---|
Parametercontent_type | Contractapplication/json |
Parameterrequired | Contractmodel, gpt_description_prompt, mv, make_instrumental |
Parameteroptional | Contract |
Parametermaterial_types | Contracttext |
Parameterconditions | ContractGebruik precies deze Ailoot-routeringsselector., Beschrijf het muzikale idee of het thema van het lied., Kies uitdrukkelijk een gedocumenteerde Suno-versie; het voorbeeld gebruikt chirp-crow (v5)., Stel true in voor instrumentale muziek of false voor een lied. |
Levenscyclus: submit_once_poll_original
GET /v1/music/generations/{request_id}
GET /v1/media/assets
GET /v1/media/assets/{asset_id}
Tarieven
Zo worden de uiteindelijke kosten berekend
De getoonde tarieven ramen de kosten vóór de generatie. De definitieve kosten worden berekend op basis van de kosten die voor de oorspronkelijke generatie zijn geregistreerd. De gemeten duur van het gegenereerde resultaat en de geraamde hoeveelheden vormen niet de definitieve factureerbare hoeveelheid.
Tariefverwijzingen voegen geen verzoekopties toe. Ondersteunde parameters staan bij de geselecteerde methode.
- Snelle modus
- Niet opgegeven Wanneer de snelle modus geselecteerd is
- Flex-modus
- Niet opgegeven Wanneer de flex-modus geselecteerd is
- Maximale redeneerinspanning
- Niet opgegeven Wanneer voor maximale redeneerinspanning de default-aanpassing wordt gebruikt
Geschatte tarieven ter vergelijking
Prijzen per configuratie
Koppel elke kostenpost aan de getoonde voorwaarden. Gebruik één tarief voor elke groep alternatieve configuraties.
| Configuratie | Tariefstaffel | Verwachte hoeveelheid | Gefactureerde hoeveelheid | Kosten |
|---|---|---|---|---|
| ConfiguratieBasistarieven voor tokens | TariefstaffelBasistarief | Verwachte hoeveelheid— | Gefactureerde hoeveelheid— | Kosten Invoer · Invoertokens · Schatting uitsluitend ter vergelijking — / 1K tokens Uitvoer · Uitvoertokens · Schatting uitsluitend ter vergelijking — / 1K tokens Invoer · Cache lezen · Schatting uitsluitend ter vergelijking — / 1K tokens Invoer · Cache schrijven · Schatting uitsluitend ter vergelijking — / 1K tokens Invoer · Cache schrijven, 1 uur · Schatting uitsluitend ter vergelijking — / 1K tokens |
| ConfiguratiePer aanvraag | Tariefstaffel— | Verwachte hoeveelheid— | Gefactureerde hoeveelheidéén verzoek | Kosten Invoer · Schatting uitsluitend ter vergelijking $0.2 per verzoek |
| ConfiguratieGeschatte generatiekosten | Tariefstaffel— | Verwachte hoeveelheidschatting voor één generatie | Gefactureerde hoeveelheid— | Kosten Uitvoer · Geschatte generatiekosten · Schatting uitsluitend ter vergelijking $0.2 schatting vóór generatie Deze raming is geen extra kost of vast tarief voor de voltooide generatie. |
Ailoot reserveert vóór een verzoek een geschat bedrag. Na het resultaat worden de uiteindelijke kosten afgerekend op basis van het gemeten verbruik. Bij streaming gebeurt de afrekening op basis van de definitieve verbruiksregistratie. Zo werken reservering en afrekening →
Voorbeeldverzoeken
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
Resultaten ophalen en opslaan
Ailoot Ultra · Music
Download elke teruggegeven afbeelding of sla de Base64-inhoud ervan op
GET /v1/music/generations/{request_id}GET /v1/media/assetsGET /v1/media/assets/{asset_id}
Alle voltooide resultaten bewaren
Bewaar elk volledig teruggegeven antwoord, bestand en inhoudsonderdeel.
Bewaar het volledige antwoord en de headers, de oorspronkelijke identificatiecodes, alle werkelijke uitvoer en alle velden voor verbruik en boekhouding. Sla elke unieke asset die je toebehoort op en behoud elke rol die ernaar verwijst.
Als het oorspronkelijke antwoord moet worden gecontroleerd
Bewaar de teruggestuurde openbare taak- of operatie-id en alle headers. Raadpleeg uitsluitend de oorspronkelijke taak; unknown of result_pending_check geeft geen toestemming om opnieuw een taak aan te maken.
Antwoordvelden
| Veld | Type |
|---|---|
Veldid | Typestring |
Veldpolling_url | Typestring |
Veldprovider_task_id | Typestring |
Velddata.task_id | Typestring |
Velddata.status | Typestring |
Velddata.data[].audio_url | Typestring |
Velddata.data[].image_url | Typestring |
Velddata.data[].image_large_url | Typestring |
Velddata.data[].video_url | Typestring |
Aliasnamen
Modelaliasnamen
Ailoot Ultra suno-api
Aliasnamen voor methodepaden
Gebruik de hierboven getoonde methodepaden.
Gerelateerde aanroeper-ID’s
FAQ · suno-api
- Welke invoer en resultaten zijn beschikbaar?
POST /v1/music/generations·suno-api:text→audio,image,video- Welke velden gebruikt het verzoek?
POST /v1/music/generations·suno-api:model,gpt_description_prompt,mv,make_instrumental