Как начать работать с YandexART
В этом разделе вы научитесь использовать нейросеть YandexART для генерации изображений.
В консоли управления
Перед началом работы
Чтобы начать работать в Yandex Cloud:
- Войдите в консоль управления
. Если вы еще не зарегистрированы, перейдите в консоль управления и следуйте инструкциям. - В сервисе Yandex Cloud Billing
убедитесь, что у вас подключен платежный аккаунт, и он находится в статусеACTIVE
илиTRIAL_ACTIVE
. Если платежного аккаунта нет, создайте его. - Если у вас еще нет каталога, создайте его.
Для работы из консоли управления подготовительные действия не требуются.
Чтобы воспользоваться примерами запросов через API, установите:
Для работы с API YandexART необходимо аутентифицироваться со своего аккаунта:
-
Получите IAM-токен для аккаунта на Яндексе или федеративного аккаунта.
-
Получите идентификатор каталога, на который у вашего аккаунта есть роль
ai.imageGeneration.user
или выше. Идентификатор каталога понадобится, чтобы получить URI модели. -
При обращении к YandexART через API в заголовке
Authorization
каждого запроса указывайте IAM-токен;x-folder-id: <идентификатор_каталога>
Другие способы аутентификации в API описаны на странице Аутентификация в API Yandex Foundation Models.
Сгенерируйте изображение
Примечание
Чтобы повышать качество генерируемых ответов, YandexART логирует промты пользователей. Не передавайте в запросах чувствительную информацию и персональные данные.
- В консоли управления
выберите каталог, на который у вашего аккаунта есть рольai.imageGeneration.user
или выше. - В списке сервисов выберите Foundation Models.
- На панели слева выберите
YandexART. - В поле ввода опишите изображение, которое вы хотите сгенерировать. Старайтесь использовать яркие образы, описывайте детали, указывайте стили, если хотите получить изображение определенного вида.
- Параметр Зерно оставьте случайным или укажите любое значение.
- Нажмите кнопку Сгенерировать. Генерация изображения займет некоторое время. Ответ отобразится в левой части экрана.
-
Создайте файл с телом запроса (например,
prompt.json
):{ "modelUri": "art://<идентификатор_каталога>/yandex-art/latest", "generationOptions": { "seed": "1863", "aspectRatio": { "widthRatio": "2", "heightRatio": "1" } }, "messages": [ { "weight": "1", "text": "узор из цветных пастельных суккулентов разных сортов, hd full wallpaper, четкий фокус, множество сложных деталей, глубина кадра, вид сверху" } ] }
Где:
modelUri
— идентификатор модели YandexART, содержащий идентификатор каталога Yandex Cloud.seed
— зерно генерации.text
— текстовое описание изображения, на основе которого будет происходить генерация.weight
— вес текстового описания. Если в запросе присутствует больше одного описания, влияние каждого описания будет рассчитываться на основе веса, при этом сумма всех весов будет равна 1.aspectRatio
— (опционально) соотношение сторон генерируемого изображения:widthRatio
— ширина (по умолчанию 1).heightRatio
— высота (по умолчанию 1).
-
Отправьте запрос нейросети с помощью метода ImageGenerationAsync.generate, выполнив команду:
curl \ --request POST \ --header "Authorization: Bearer <значение_IAM-токена>" \ --data "@prompt.json" \ "https://llm.api.cloud.yandex.net/foundationModels/v1/imageGenerationAsync"
Где:
<значение_IAM-токена>
— IAM-токен, полученный для вашего аккаунта.prompt.json
— файл в формате JSON, содержащий параметры запроса.
В ответе сервис вернет идентификатор вашего запроса:
{ "id":"fbveu1sntj**********","description":"","createdAt":null,"createdBy":"","modifiedAt":null,"done":false,"metadata":null}
-
Генерация изображения занимает некоторое время. Подождите 10 секунд и отправьте запрос, чтобы получить результат генерации. Если изображение готово, результат вернется в кодировке Base64
и будет записан в файлimage.jpeg
.curl \ --request GET \ --header "Authorization: Bearer <значение_IAM-токена>" \ https://llm.api.cloud.yandex.net:443/operations/<идентификатор_запроса> | \ jq -r '.response | .image' | base64 -d > image.jpeg
Где:
<значение_IAM-токена>
— IAM-токен, полученный перед началом работы.<идентификатор_запроса>
— значение поляid
, полученное в ответе на запрос генерации.
Результат: