Suno/Генерация музыки
Генерация музыки
Генерация песен из текста через Suno. Одна модель — suno-music; версия движка — это параметр. Каждый запрос даёт два варианта трека.
POST
https://api.sozdai.ai/v1/media/generations#Процесс генерации
Генерация асинхронная и проходит две стадии. Suno уведомляет нас колбэком на каждой; вы видите те же стадии при опросе задачи.
1 · Отправка
POST сразу возвращает id задачи.
2 · Стрим (~20–30с)
Первый колбэк: появляются streamUrl, обложка, текст.
3 · Готово (~60–90с)
Второй колбэк: итоговый mp3 на нашем CDN, задача succeeded.
Почему это важно
Пользователи могут слушать уже на 2-й стадии (~20–30с), не дожидаясь финала. Детали задачи →
#Аутентификация
Передавайте API-ключ в заголовке Authorization.
http
Authorization: Bearer sk-corr-...#Параметры запроса
Всегда model: "suno-music". В обычном режиме нужен только prompt; в custom mode — style и title.
Лимиты prompt зависят от режима
Обычный режим: prompt до 500. Custom mode: текст — до 3000 (V4) / 5000 (остальные). style: 200/1000; title: 80.
| Параметр | Тип | Обяз. | Умолч. | Описание |
|---|---|---|---|---|
model | string | Да | suno-music | Всегда "suno-music". |
version | string | Нет | V5_5 | Версия движка Suno (модель — это параметр). По умолчанию V5_5 (новейшая). Варианты: V5_5, V5, V4_5PLUS, V4_5, V4_5ALL, V4 |
prompt | string | Да | — | Обычный режим (по умолчанию): краткая идея — до 500 символов. Custom mode: точный текст — до 3000 (V4) / 5000 (остальные версии) символов. |
customMode | boolean | Нет | false | Расширенный режим. При true нужны style и title. |
instrumental | boolean | Нет | false | Инструментал без вокала. |
style | string | Нет | — | Жанр/настроение (обяз. в custom mode). До 200 (V4) / 1000 (остальные). |
title | string | Нет | — | Название трека (обяз. в custom mode, до 80). |
negativeTags | string | Нет | — | Стили, которых стоит избегать. |
vocalGender | string | Нет | — | Пол вокала (только custom mode). Варианты: m, f |
styleWeight | number | Нет | — | Сила следования стилю. 0–1, до 2 знаков. |
weirdnessConstraint | number | Нет | — | Экспериментальность. 0–1, до 2 знаков. |
audioWeight | number | Нет | — | Вес аудио-признаков. 0–1, до 2 знаков. |
personaId | string | Нет | — | Применить Persona/Voice. Только custom mode. |
personaModel | string | Нет | — | Тип Persona. Только V5 и V5_5. Варианты: style_persona, voice_persona |
callback_url | string | Нет | — | Опциональный публичный http(s) URL. Мы отправим результат POST-запросом сразу после завершения задачи. |
#Пример запроса
bash
curl https://api.sozdai.ai/v1/media/generations \
-H "Authorization: Bearer $CORRY_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "suno-music",
"version": "V5_5",
"prompt": "upbeat indie rock about a summer road trip",
"instrumental": false,
"callback_url": "https://your-app.com/webhooks/corry"
}'#Ответ
Сразу возвращает id задачи.
json
{
"id": "task_abc123",
"status": "queued",
"type": "music",
"model": "suno-music"
}Получение треков
Треки возвращает эндпоинт деталей задачи. /docs/suno/task →
#Колбэки и тайминг
Suno шлёт колбэки на двух стадиях. Важно различать два понятия колбэка:
| Стадия | ~Время | Готово |
|---|---|---|
| Стрим (first) | ~20–30s | streamUrl, обложка, текст |
| Готово (complete) | ~60–90s | Итоговый mp3 на CDN; succeeded |
Ваш callback_url
Если задан callback_url, мы один раз отправим итоговый результат при завершении задачи. Иначе — опрашивайте задачу.