Google Lyria 3

Генерация музыки с моделями Google Lyria 3 (Pro и Clip)

Google Lyria 3

Генерация музыки от Google - две модели: Lyria 3 Pro (полноценный трек) и Lyria 3 Clip (короткий клип). Принимают текстовое описание и опциональные изображения-референсы. Стоимость фиксированная за генерацию (flat pricing), не зависит от длины трека.

Lyria - не Suno-модель. Все Suno-специфичные параметры (customMode, instrumental, style, title, vocalGender, styleWeight, weirdnessConstraint, audioWeight, personaId, version, soundLoop, soundTempo, soundKey, grabLyrics, uploadUrlList, negativeTags) отклоняются с ошибкой 400.

Обзор

ХарактеристикаProClip
ID моделиgoogle/lyria-3-pro-previewgoogle/lyria-3-clip-preview
ЭндпоинтPOST /v1/mediaPOST /v1/media
Формат результатаMP3MP3
Стоимость клиенту8 ₽ / трек (фикс.)4 ₽ / трек (фикс.)
Max prompt5 000 символов5 000 символов
Изображения-референсыопциональноопционально
Async✅✅

Цена фиксированная за генерацию (flat pricing), не зависит от длины, как у Suno.

Возможности

Text-to-Music

Создание трека по текстовому описанию

Изображения-референсы

Опционально: до нескольких картинок-референсов стиля

Фикс-цена

8 ₽ за Pro-трек, 4 ₽ за Clip - независимо от длины

Async-режим

Для длинных генераций: синхронный или асинхронный через taskId

Параметры

ПараметрТипОбязательныйОписание
modelstringДаgoogle/lyria-3-pro-preview или google/lyria-3-clip-preview
input.promptstringДаОписание трека, до 5000 символов
input.imagesarrayНетИзображения-референсы (URL или base64)
callBackUrlstringНетURL для callback по завершении генерации
asyncbooleanНетАсинхронный режим (по умолчанию false)

Параметры, которые отклоняются для Lyria

Lyria - не Suno-модель, поэтому следующие параметры вернут ошибку 400:

  • uploadUrlList
  • customMode, instrumental
  • style, title
  • negativeTags, vocalGender
  • styleWeight, weirdnessConstraint, audioWeight
  • personaId, version
  • soundLoop, soundTempo, soundKey
  • grabLyrics

Для этих параметров используйте Suno-модели (suno/generate, suno/mashup, suno/sounds): они принимают полный набор Suno-параметров.

Примеры запросов

Простой запрос (синхронный)

curl -X POST "https://api.usellm.ru/v1/media" \
  -H "Authorization: Bearer <USELLM_API_KEY>" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "google/lyria-3-pro-preview",
    "input": {
      "prompt": "Спокойная инструментальная музыка для медитации, мягкое пиано"
    },
    "async": false
  }'

С изображениями-референсами

curl -X POST "https://api.usellm.ru/v1/media" \
  -H "Authorization: Bearer <USELLM_API_KEY>" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "google/lyria-3-clip-preview",
    "input": {
      "prompt": "Энергичный электронный трек в стиле synthwave, драйвовый бит",
      "images": [
        {"type": "url", "data": "https://example.com/reference-1.jpg"},
        {"type": "url", "data": "https://example.com/reference-2.jpg"}
      ]
    }
  }'

Схема ответа

Синхронный успех (async: false)

{
  "id": "gen_581761234567890123",
  "object": "media.generation",
  "status": "completed",
  "created": 1703001234,
  "completed_at": 1703001244,
  "model": "google/lyria-3-pro-preview",
  "data": [
    {
      "url": "https://storage.example.com/tracks/abc.mp3",
      "thumbnail_url": "https://storage.example.com/covers/abc.jpeg",
      "title": "Peaceful Meditation",
      "duration": 198.44
    }
  ],
  "usage": { "output_units": 1, "cost": 8, "cost_rub": 8 }
}

В процессе генерации

{
  "id": "gen_581761234567890123",
  "object": "media.generation",
  "status": "pending",
  "created": 1703001234,
  "model": "google/lyria-3-pro-preview"
}

Ошибка

{
  "id": "gen_581761234567890123",
  "object": "media.generation",
  "status": "failed",
  "created": 1703001234,
  "model": "google/lyria-3-pro-preview",
  "error": { "code": "<код>", "message": "<человекочитаемое описание>" }
}

Возможные значения status: pending, processing, completed, failed, cancelled. cost/cost_rub фиксированные: 8 ₽ для Pro, 4 ₽ для Clip.

Асинхронная генерация

Генерация музыки - асинхронный процесс. После отправки запроса с async: true вы получите id, который нужно использовать для проверки статуса:

  1. Отправка запроса: POST на /v1/media с "async": true возвращает id генерации и status: "pending"
  2. Проверка статуса - GET на /v1/media/{id} возвращает текущий статус: pending, processing, completed, failed, cancelled
  3. Получение результата: когда статус completed, в ответе будут URL аудиофайла, обложка, название и длительность трека

Советы и лучшие практики