suno-api
Suno создаёт музыку по короткой текстовой идее. Документированный автоматический сценарий создаёт две песни и предусматривает выбор инструментального варианта; готовое аудио и метаданные треков возвращаются через задачу генерации.
О модели
Описание раскрывает возможности модели. Доступные в Ailoot входные данные, результаты и параметры выбранного метода перечислены ниже.
Suno — сервис генерации музыки, превращающий текстовую идею в песни. Документированный автоматический сценарий принимает короткое описание желаемой музыки и выбор инструментального варианта, затем создаёт две песни. Используйте задание, чтобы определить тему, настроение и музыкальное направление, которые хотите услышать в готовых треках.
Начните с роли, которую должна играть музыка. Спокойный фон для объяснения, энергичное вступление к короткому видео или задумчивая песня о путешествии дают заданию конкретную цель. В нескольких понятных фразах опишите желаемое настроение и музыкальные особенности, важные для этой цели.
Для песни с вокалом чётко укажите тему и язык в творческом задании. Опишите идею, которую должен выразить трек, и характер исполнения. Прослушайте готовый результат, оценивая, как сочетаются вокал, слова и аранжировка. Храните информацию о сгенерированном треке вместе с аудио для проверки.
Для инструментального результата используйте документированный выбор инструментальной музыки и опишите музыкальное направление в тексте. Укажите желаемую атмосферу и ведущие инструменты, если они важны для проекта. Оцените готовый трек с учётом его места в монтаже, включая участки, которые должны звучать под речью или поддерживать визуальный переход.
Автоматический сценарий создаёт две песни из отправленной идеи. Рассматривайте их как отдельные варианты и сохраните оба готовых аудиофайла. Прослушайте начало, развитие и финал каждого. Сравните реальные треки с одной и той же целью, включая настроение, аранжировку и пригодность для задуманного применения.
Генерация организована как задача. Сохраняйте возвращённый ID задачи при проверке её результата и отличайте готовые треки от тех, которые ещё создаются. Документированный результат включает информацию на уровне трека, например название, статус, расположение аудио и длительность. Сохраните само готовое аудио вместе с доступными метаданными и исходным заданием.
Для видео или презентации прослушайте выбранную музыку вместе с реальным материалом. Проверьте начало, переходы и финал на целевой громкости. Отметьте фрагмент, подходящий монтажу, и сохраните полный трек для дальнейших изменений. Подходящий музыкальный отрывок оценивается в контексте голоса, изображений и темпа готовой работы.
Храните текстовую идею, выбор инструментального варианта, выбранную модель и все готовые треки вместе. Если вариант требует доработки, определите музыкальное несоответствие, например слишком плотную аранжировку под речью или слишком медленное развитие вступления. Сохраните полезное направление и измените часть задания, связанную с этой проблемой.
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}
Сохраняйте все готовые результаты
Сохраняйте каждый полностью полученный ответ, файл и элемент содержимого.
Сохраните полный ответ и заголовки, исходные идентификаторы, каждый фактический результат и все поля использования и учёта. Сохраните каждый уникальный ресурс, принадлежащий Ailoot, и каждую роль, которая на него ссылается.
Если нужно проверить исходный ответ
Сохраните возвращённый публичный 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
Псевдонимы путей метода
Используйте пути методов, указанные выше.
Связанные ID для вызова
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