suno-api
Suno יוצר מוזיקה מתוך רעיון קצר בכתב. התהליך האוטומטי המתועד מפיק שני שירים וכולל אפשרות אינסטרומנטלית, כאשר קובצי האודיו המוגמרים והמטא-דאטה של הרצועות מוחזרים דרך משימת היצירה.
על המודל
התיאור הזה מציג את יכולות המודל. הקלט, הפלט והאפשרויות הזמינים ב-Ailoot מפורטים בהמשך לפי השיטה שנבחרה.
Suno הוא שירות ליצירת מוזיקה שהופך רעיון כתוב לשירים. התהליך האוטומטי המתועד מקבל תיאור קצר של המוזיקה הרצויה ובחירה אם ליצור מוזיקה אינסטרומנטלית, ואז מפיק שני שירים. השתמשו בבריף כדי להגדיר את הנושא, האווירה והכיוון המוזיקלי שתרצו לשמוע ברצועות המוגמרות.
התחילו בתפקיד שהמוזיקה צריכה למלא. רקע רגוע להסבר, פתיחה אנרגטית לסרטון קצר או שיר מהורהר על מסע מעניקים לבריף מטרה מוחשית. תארו בכמה משפטים קצרים וברורים את האווירה הרצויה ואת המאפיינים המוזיקליים שחשובים למטרה הזו.
בשיר עם שירה, הבהירו בבריף היצירתי את הנושא ואת השפה. תארו את הרעיון שהרצועה צריכה לבטא ואת הטון שהביצוע צריך להעביר. האזינו לתוצאה המוגמרת כדי לבחון כיצד השירה, המילים והעיבוד משתלבים. שמרו את פרטי הרצועה שנוצרו לצד האודיו לצורך בדיקה.
לתוצאה אינסטרומנטלית, השתמשו בבחירה האינסטרומנטלית המתועדת ותארו בטקסט את הכיוון המוזיקלי. ציינו את האווירה הרצויה ואת כלי הנגינה הבולטים כאשר הם חשובים לפרויקט. בחנו את הרצועה המוגמרת לפי המקום שהיא תמלא בעריכה, כולל הקטעים שצריכים להשתלב מתחת לדיבור או לתמוך במעבר חזותי.
התהליך האוטומטי מפיק שני שירים מהרעיון שהוגש. התייחסו אליהם כאל אפשרויות נפרדות ושמרו את שני קובצי האודיו המוגמרים. האזינו לכל אחד מהם לאורך הפתיחה, ההתפתחות והסיום. השוו את הרצועות בפועל מול אותה מטרה, כולל האווירה, העיבוד וההתאמה שלהן לשימוש המתוכנן.
היצירה מאורגנת כמשימה. שמרו את מזהה המשימה שהוחזר בזמן בדיקת התוצאה שלה, והבחינו בין רצועות שהושלמו לבין פריטים שעדיין בתהליך. התוצאה המתועדת כוללת מידע ברמת הרצועה, כגון שם, סטטוס, מיקום האודיו ומשך. שמרו את קובץ האודיו המוגמר עצמו עם המטא-דאטה הזמין והבריף המקורי.
בסרטון או במצגת, בדקו את המוזיקה שנבחרה בהאזנה לצד החומרים האמיתיים. בדקו את הפתיחה, המעברים והסיום בעוצמת ההאזנה המתוכננת. סמנו את הקטע שמשרת את העריכה ושמרו את הרצועה המלאה לשינויים בהמשך. קטע מוזיקלי מתאים נבחן בהקשר של הקול, התמונות והקצב של היצירה המוגמרת.
שמרו יחד את הרעיון הכתוב, הבחירה האינסטרומנטלית, בחירת המודל וכל הרצועות שהושלמו. כאשר גרסה דורשת תיקון, הגדירו את אי-ההתאמה המוזיקלית, כגון עיבוד עמוס מדי מתחת לדיבור או פתיחה שמתפתחת לאט מדי. שמרו על הכיוון השימושי ועדכנו את החלק בבריף הקשור לבעיה הזו.
Ailoot Ultra · Music POST /v1/music/generations suno-api
suno-apiהתחלה
Suno יוצר מוזיקה מתוך רעיון קצר בכתב. התהליך האוטומטי המתועד מפיק שני שירים וכולל אפשרות אינסטרומנטלית, כאשר קובצי האודיו המוגמרים והמטא-דאטה של הרצועות מוחזרים דרך משימת היצירה.
- סוגי קלט נתמכים
- טקסט
- תוצאות
- שמע · תמונות · וידאו
זמין ב-Ailoot · קלט ושיטות
Ailoot Ultra · Music POST /v1/music/generations
- סוגי קלט
text- סוגי פלט
audio,image,video
| שדה | סוג | דרישה | ערכים ומגבלות | ברירת מחדל |
|---|---|---|---|---|
שדהmodel | סוגstring | דרישהחובה | ערכים ומגבלות suno-api תנאים: השתמשו בבורר הניתוב הזה של Ailoot בדיוק כפי שהוא. | ברירת מחדל— |
שדהgpt_description_prompt | סוגstring | דרישהחובה | ערכים ומגבלות תנאים: תארו את הרעיון המוזיקלי או את נושא השיר. | ברירת מחדל— |
שדהmv | סוגstring | דרישהחובה | ערכים ומגבלות chirp-fenix, chirp-crow, chirp-bluejay, chirp-auk, chirp-v4, chirp-v3-5 תנאים: בחרו גרסה מוגדרת ומתועדת של Suno; בדוגמה נעשה שימוש ב-chirp-crow (v5). | ברירת מחדל— |
שדהmake_instrumental | סוגboolean | דרישהחובה | ערכים ומגבלות תנאים: הגדירו true למוזיקה אינסטרומנטלית או false לשיר. | ברירת מחדל— |
פרמטרים ומחזור חיים של השיטה
| פרמטר | מפרט |
|---|---|
פרמטרcontent_type | מפרטapplication/json |
פרמטרrequired | מפרטmodel, gpt_description_prompt, mv, make_instrumental |
פרמטרoptional | מפרט |
פרמטרmaterial_types | מפרטtext |
פרמטרconditions | מפרטהשתמשו בבורר הניתוב הזה של Ailoot בדיוק כפי שהוא., תארו את הרעיון המוזיקלי או את נושא השיר., בחרו גרסה מוגדרת ומתועדת של Suno; בדוגמה נעשה שימוש ב-chirp-crow (v5)., הגדירו true למוזיקה אינסטרומנטלית או false לשיר. |
מחזור חיים: submit_once_poll_original
GET /v1/music/generations/{request_id}
GET /v1/media/assets
GET /v1/media/assets/{asset_id}
תעריפים
אופן חישוב החיוב הסופי
התעריפים המוצגים מספקים אומדן לעלות לפני היצירה. החיוב הסופי מחושב לפי העלות שנרשמה עבור היצירה המקורית. משך הפלט שנמדד והכמויות החזויות אינם הכמות הסופית לחיוב.
מידע תעריפים אינו מוסיף אפשרויות לבקשה. הפרמטרים הנתמכים מפורטים בשיטה שנבחרה.
- מצב מהיר
- לא צוין כאשר נבחר מצב מהיר
- מצב Flex
- לא צוין כאשר נבחר מצב flex
- מאמץ חשיבה מרבי
- לא צוין כאשר מאמץ החשיבה המרבי משתמש בהתאמת ברירת המחדל (default)
תעריפים משוערים להשוואה
מחירים לפי תצורה
התאימו כל חיוב לתנאים המוצגים. השתמשו בתעריף אחד לכל קבוצה של תצורות חלופיות.
| תצורה | טבלת תעריפים | כמות חזויה | כמות החיוב | חיוב |
|---|---|---|---|---|
| תצורהתעריפי בסיס לטוקנים | טבלת תעריפיםתעריף בסיס | כמות חזויה— | כמות החיוב— | חיוב קלט · טוקני קלט · אומדן להשוואה בלבד — / 1K טוקנים פלט · טוקני פלט · אומדן להשוואה בלבד — / 1K טוקנים קלט · קריאה מהמטמון · אומדן להשוואה בלבד — / 1K טוקנים קלט · כתיבה למטמון · אומדן להשוואה בלבד — / 1K טוקנים קלט · כתיבה למטמון, 1 שעה · אומדן להשוואה בלבד — / 1K טוקנים |
| תצורהלכל בקשה | טבלת תעריפים— | כמות חזויה— | כמות החיובבקשה אחת | חיוב קלט · אומדן להשוואה בלבד $0.2 לכל בקשה |
| תצורהעלות יצירה משוערת | טבלת תעריפים— | כמות חזויהאומדן ליצירה אחת | כמות החיוב— | חיוב פלט · עלות יצירה משוערת · אומדן להשוואה בלבד $0.2 אומדן לפני היצירה אומדן זה אינו חיוב נוסף או תעריף קבוע עבור היצירה שהושלמה. |
לפני הבקשה Ailoot משריינת סכום משוער. לאחר קבלת התוצאה היא מסדירה את החיוב הסופי לפי השימוש המדוד. הסדרת חיוב בהזרמה משתמשת ברשומת השימוש הסופית. איך פועלים שריון הסכום והסדרת החיוב →
דוגמאות לבקשות
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
קבלה ושמירה של תוצאות
Ailoot Ultra · Music
הורידו כל תמונה שהוחזרה או שמרו את תוכן ה-Base64 שלה
GET /v1/music/generations/{request_id}GET /v1/media/assetsGET /v1/media/assets/{asset_id}
שמירת כל התוצאות שהושלמו
שמרו כל תגובה מלאה, קובץ ומקטע תוכן שהוחזרו.
יש לשמור את התגובה המלאה ואת הכותרות, המזהים המקוריים, כל פלט ממשי ואת כל שדות השימוש והחיוב. יש לשמור כל נכס ייחודי שבבעלותכם ואת כל התפקידים המפנים אליו.
כשצריך לבדוק את התגובה המקורית
יש לשמור את מזהה המשימה הציבורי או מזהה הפעולה שהוחזרו ואת כל הכותרות. יש לקרוא רק את המשימה המקורית; unknown או result_pending_check אינם מתירים יצירה נוספת.
שדות התגובה
| שדה | סוג |
|---|---|
שדהid | סוגstring |
שדהpolling_url | סוגstring |
שדהprovider_task_id | סוגstring |
שדהdata.task_id | סוגstring |
שדהdata.status | סוגstring |
שדהdata.data[].audio_url | סוגstring |
שדהdata.data[].image_url | סוגstring |
שדהdata.data[].image_large_url | סוגstring |
שדהdata.data[].video_url | סוגstring |
כינויים
כינויים למודל
Ailoot Ultra suno-api
כינויים לנתיבי שיטות
השתמשו בנתיבי השיטות המוצגים למעלה.
מזהי מודלים קשורים IDs
FAQ · suno-api
- אילו קלטים ותוצאות זמינים?
POST /v1/music/generations·suno-api:text→audio,image,video- באילו שדות הבקשה משתמשת?
POST /v1/music/generations·suno-api:model,gpt_description_prompt,mv,make_instrumental