SunoAI API Library — неофициальный клиент Python для взаимодействия с музыкальным генератором Suno AI . Эта библиотека облегчает создание музыки с использованием модели Suno Chirp v3 и включает в себя основные функции Suno AI со встроенным загрузчиком музыки. Его можно развернуть как REST API с использованием FastAPI, Local, Docker, у провайдера PaaS, такого как Heroku.
? Прежде чем использовать библиотеку или REST API, вы должны зарегистрироваться на веб-сайте suno.ai и получить файл cookie, как показано на этом снимке экрана.
Вы можете найти файлы cookie в инструментах разработчика веб-браузера -> вкладка «Сеть».
Просто щелкните правой кнопкой мыши и откройте «Проверить». Фильтр: _clerk_js_version
Установите этот файл cookie как переменную среды SUNO_COOKIE
или инициализируйте библиотеку, как показано ниже.
from suno import Suno , ModelVersions
client = Suno (
cookie = 'YOUR_COOKIE_HERE' ,
model_version = ModelVersions . CHIRP_V3_5 )
Установите библиотеку с помощью pip:
pip install SunoAI
Перед развертыванием установите SUNO_COOKIE
в качестве переменной среды. - Инструкции
export SUNO_COOKIE= " YOUR_COOKIE_HERE "
git clone [email protected]:Malith-Rukshan/Suno-API.git
pip3 install -r requirements.txt
cd Suno-API
fastapi run api.py --port 8080
? Доступно по адресу: http://127.0.0.1:8080.
⚡️ Быстрый старт:
from suno import Suno , ModelVersions
client = Suno (
cookie = 'YOUR_COOKIE_HERE' ,
model_version = ModelVersions . CHIRP_V3_5 )
# Generate a song
songs = client . generate ( prompt = "A serene landscape" , is_custom = False , wait_audio = True )
# Download generated songs
for song in songs :
file_path = client . download ( song = song )
print ( f"Song downloaded to: { file_path } " )
Suno()
<- Инициализация
chirp-v3-5
, chirp-v3-0
, chirp-v2-0
по умолчанию — chirp-v3-5
. | Детальный вид generate()
Clip
, содержащих данные песни с идентификаторами. clips = client . generate (
prompt = "A peaceful melody reflecting a serene landscape" ,
is_custom = False ,
wait_audio = True
)
print ( clips )
clips = client . generate (
prompt = "I found a love, for me n Darling, just dive right in and follow my lead n Well, I found a girl, beautiful and sweet n Oh, I never knew you were the someone waiting for me..." ,
tags = "English men voice" ,
title = "Perfect by Malith-Rukshan/Suno-API" ,
make_instrumental = False ,
is_custom = True ,
wait_audio = True
)
print ( clips )
✍️Примечание по использованию:
is_custom
значения True
убедитесь, что параметр приглашения содержит текст песни, которую вы хотите сгенерировать. И наоборот, если для is_custom
установлено значение False
, предоставьте описательную подсказку с подробным описанием сути нужной песни.wait_audio
установлено значение True , запрос займет больше времени, поскольку он ожидает готовности URL-адресов аудио. Если не установлено, ответ вернется без audio_url
, но с аудиоидентификаторами. В таких случаях вам нужно будет вызвать метод get_songs или get_song через небольшой интервал, чтобы получить ответ с включенным audio_url
после завершения процесса генерации. get_songs()
Clip
представляющих извлеченные песни. songs = client . get_songs ( song_ids = "123,456" )
print ( songs )
set_visibility()
response = client . set_visibility ( song_id = "uuid-type-songid-1234" , is_public = False )
print ( response )
get_credits()
CreditsInfo
. credits_info = client . get_credits ()
print ( credits_info )
download()
# Using a song ID
file_path = client . download ( song = "uuid-type-songid-1234" )
print ( f"Song downloaded to: { file_path } " )
# Using a Clip object
clip = client . get_song ( "uuid-type-songid-1234" )
file_path = client . download ( song = clip )
print ( f"Song downloaded to: { file_path } " )
Модели предоставлены Suno AI для создания музыки.
chirp-v3-5
: новейшая модель, улучшенная структура песни, максимум 4 минуты.chirp-v3-0
: широкий, универсальный, максимум 2 минуты.chirp-v2-0
: винтажная модель Suno, максимум 1,3 минуты.Пример Как использовать:
from suno import Suno , ModelVersions
client = Suno ( model_version = ModelVersions . CHIRP_V3_5 )
или
from suno import Suno
client = Suno ( model_version = 'chirp-v3-5' )
Модель клипа:
Класс Clip инкапсулирует детали музыкальной дорожки, созданной Suno AI. Каждый атрибут этого класса предоставляет конкретную информацию о треке:
Модель CreditsInfo:
Класс CreditsInfo предоставляет информацию о кредитном балансе пользователя и его использовании в системе Suno AI.
1. Создать музыку
POST /generate
Тело запроса:
{
"prompt" : " A serene melody about the ocean " ,
"is_custom" : false ,
"tags" : " relaxing, instrumental " ,
"title" : " Ocean Waves " ,
"make_instrumental" : true ,
"model_version" : " chirp-v3-5 " ,
"wait_audio" : true
}
Ответ:
[
{
"id" : " 124b735f-7fb0-42b9-8b35-761aed65a7f6 " ,
"video_url" : " " ,
"audio_url" : " https://audiopipe.suno.ai/item_id=124b735f-7fb0-42b9-8b35-761aed65a7f6 " ,
"image_url" : " https://cdn1.suno.aiimage_124b735f-7fb0-42b9-8b35-761aed65a7f6.png " ,
"image_large_url" : " https://cdn1.suno.aiimage_large_124b735f-7fb0-42b9-8b35-761aed65a7f.png " ,
"is_video_pending" : False,
"major_model_version" : " v3 " ,
"model_name" : " chirp-v3 " ,
"metadata" : {
"tags" : " English men voice " ,
"prompt" : " I found a love, for me n Darling,just dive right in and follow mylead n Well, I found a girl, beautiful andsweet n Oh, I never knew you were thesomeone waiting for me nn ′Cause we werejust kids when we fell in love n Not knowingwhat it was n I will not give you up thistime n But darling, just kiss me slow n Yourheart is all I own n And in your eyes,you're holding mine nn Baby, I′m dancing inthe dark n With you between myarms n Barefoot on the grass n Listening toour favourite song n When you said youlooked a mess n I whispered underneath mybreath n But you heard it n Darling, you lookperfect tonight " ,
"gpt_description_prompt" : None,
"audio_prompt_id" : None,
"history" : None,
"concat_history" : None,
"type" : " gen " ,
"duration" : None,
"refund_credits" : None,
"stream" : True,
"error_type" : None,
"error_message" : None
},
"is_liked" : False,
"user_id" : " 2340653f-32cb-4343-artb-09203ty749e9 " ,
"display_name" : " Snonymous " ,
"handle" : " anonymous " ,
"is_handle_updated" : False,
"is_trashed" : False,
"reaction" : None,
"created_at" : " 2024-05-05T11:54:09.356Z " ,
"status" : " streaming " ,
"title" : " Perfect by Malith-Rukshan/Suno-API " ,
"play_count" : 0 ,
"upvote_count" : 0 ,
"is_public" : False
}
]
2. Получить песни
POST /songs
{
"song_ids" : " uuid-format-1234,4567-abcd "
}
/generate
Response.3. Получите конкретную песню
POST /get_song
{
"song_id" : " uuid-song-id "
}
/generate
Response, но только обрезать POST /set_visibility
{
"song_id" : " uuid-song-id " ,
"is_public" : true
}
{
"is_public" : true
}
4. Получить кредитную информацию
GET /credits
{
"credits_left" : 50 ,
"period" : " 2024-05 " ,
"monthly_limit" : 100 ,
"monthly_usage" : 25
}
По данным Suno.ai, каждая генерация песни потребляет 5 кредитов, поэтому для каждого успешного вызова необходимо в общей сложности 10 кредитов.
Вклады — это то, что делает сообщество открытого исходного кода таким замечательным местом для обучения, вдохновения и творчества. Любой ваш вклад очень ценится.
Весь контент и музыка, созданные с помощью этой библиотеки, принадлежат Suno AI. Этот неофициальный API обеспечивает удобный способ взаимодействия с сервисами Suno AI, но не претендует на какие-либо права собственности или права на созданную музыку. Пожалуйста, соблюдайте условия обслуживания Suno AI при использовании их платформы ❤️.
Эта библиотека предназначена в первую очередь для образовательных и развивающих целей. Он направлен на улучшение и упрощение доступа к возможностям Suno AI по созданию музыки. Если вам нравится создаваемая музыка, рассмотрите возможность прямой поддержки Suno AI. Автор логотипа: @rejaul43
Этот проект распространяется по лицензии MIT. Эта лицензия позволяет каждому использовать, изменять и распространять код. Тем не менее, он не имеет никаких гарантий относительно его функциональности. Более подробную информацию смотрите в файле LICENSE в репозитории.
Если этот проект оказался для вас полезным, не забудьте опубликовать его на GitHub. Это поможет другим найти и использовать проект! ?
Присоединяйтесь к нашим Telegram-каналам,
Если у вас есть какие-либо вопросы, отзывы или вы просто хотите поздороваться, вы можете связаться со мной:
? Построен с ? от отдельных разработчиков >