Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Истории успеха
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • ИИ для бизнеса
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Истории успеха
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex AI Studio
    • Все инструкции
    • Отключить логирование запросов
    • Получить API-ключ
    • Генерация изображений
    • Пакетная обработка данных
    • О сервисе Yandex AI Studio
    • Yandex Workflows
    • Квоты и лимиты
    • Термины и определения
  • Совместимость с OpenAI
  • Управление доступом
  • Правила тарификации
  • Аудитные логи Audit Trails
  • Публичные материалы
  • История изменений

В этой статье:

  • Перед началом работы
  • Сгенерируйте изображение
  1. Пошаговые инструкции
  2. Генерация изображений

Сгенерировать изображение с помощью YandexART

Статья создана
Yandex Cloud
Обновлена 20 ноября 2025 г.
  • Перед началом работы
  • Сгенерируйте изображение

С помощью нейросети YandexART вы можете генерировать изображения в асинхронном режиме. В ответ на асинхронный запрос модель вернет объект Operation, содержащий идентификатор операции, по которому можно отследить ее выполнение и получить результат после того, как генерация завершится. Генерация результата в асинхронном режиме может занимать от пары минут до нескольких часов.

Перед началом работыПеред началом работы

Чтобы воспользоваться примерами:

Консоль управления
SDK
cURL

Для работы из консоли управления подготовительные действия не требуются.

  1. Создайте сервисный аккаунт и назначьте ему роль ai.imageGeneration.user.

Также назначьте сервисному аккаунту роль ai.languageModels.user — в примере дополнительно используется модель YandexGPT Pro для генерации промпта для YandexART.

  1. Получите и сохраните API-ключ сервисного аккаунта.

    В примерах используется аутентификация с помощью API-ключа. Yandex Cloud ML SDK также поддерживает аутентификацию с помощью IAM-токена и OAuth-токена. Подробнее см. в разделе Аутентификация в Yandex Cloud ML SDK.

  2. С помощью менеджера пакетов pip установите библиотеку ML SDK:

    pip install yandex-cloud-ml-sdk
    
  1. Получите данные для аутентификации в API, как описано на странице Аутентификация в API Yandex AI Studio.

    Чтобы использовать API YandexART, назначьте роль ai.imageGeneration.user пользователю или сервисному аккаунту, от имени которого вы будете аутентифицироваться.

  2. Установите утилиты:

    • cURL для отправки API-запросов;
    • jq для работы с файлами JSON.

Сгенерируйте изображениеСгенерируйте изображение

Примечание

Чтобы повышать качество генерируемых ответов, YandexART логирует промпты пользователей. Не передавайте в запросах чувствительную информацию и персональные данные.

Консоль управления
SDK
cURL
  1. В консоли управления выберите каталог, на который у вашего аккаунта есть роль ai.playground.user или выше.

  2. На панели слева нажмите Все сервисы и выберите AI Studio или найдите его с помощью строки поиска на дашборде.

  3. На открывшейся панели выберите AI Playground.

    screen01

  4. Выберите тип генерации — Генерация изображений.

  5. В блоке Настройки укажите параметры генерации:

    • Зерно — число, на основе которого будет генерироваться изображение. Вы можете сами указать число или задать случайное значение. При одинаковых промпте и зерне результаты генераций будут одинаковыми.
    • Соотношение сторон — выберите желаемое соотношение сторон изображения.
  6. Напишите запрос в поле ввода снизу и нажмите или Enter. Вы также можете воспользоваться примерами запроса, предлагаемыми сверху. Старайтесь использовать яркие образы, описывайте детали, указывайте стили, если хотите получить изображение определенного вида.

    Созданные диалоги сохраняются на панели Эксперименты справа. Нажмите возле нужного диалога, чтобы переименовать или удалить его.

  7. В блоке Использование модели нажмите Посмотреть код, чтобы получить код запроса к модели через ML SDK для Python.

    screen02

В данный код входят четыре независимые друг от друга примера, иллюстрирующие различные варианты использования интерфейса SDK:

  • Пример 1: простой запрос, состоящий из одного текстового описания.
  • Пример 2: запрос, состоящий из двух текстовых описаний, с сохранением результата в файл ./image.jpeg.
  • Пример 3: запрос, состоящий из двух текстовых описаний с указанием веса.
  • Пример 4: сочетание запроса к модели YandexGPT Pro (для генерации расширенного промпта) и запроса к модели YandexART (для генерации изображения по этому промпту).

Код в примере не возвращает объект Operation, а дожидается выполнения моделями запросов и сохраняет результат в переменную result.

  1. Создайте файл generate-image.py и добавьте в него следующий код:

    #!/usr/bin/env python3
    
    from __future__ import annotations
    import pathlib
    from yandex_cloud_ml_sdk import YCloudML
    
    message1 = "a red cat"
    message2 = "Miyazaki style"
    
    
    def main():
        sdk = YCloudML(
            folder_id="<идентификатор_каталога>",
            auth="<API-ключ>",
        )
    
        model = sdk.models.image_generation("yandex-art")
    
        # configuring model for all of future runs
        model = model.configure(width_ratio=1, height_ratio=2, seed=50)
    
        # Sample 1: simple run
        operation = model.run_deferred(message1)
        result = operation.wait()
        print(result)
    
        # Sample 2: run with several messages, saving the result to file
        path = pathlib.Path("./image.jpeg")
        try:
            operation = model.run_deferred([message1, message2])
            result = operation.wait()
            path.write_bytes(result.image_bytes)
        finally:
            path.unlink(missing_ok=True)
    
        # Sample 3: run with several messages specifying weight
        operation = model.run_deferred([{"text": message1, "weight": 5}, message2])
        result = operation.wait()
        print(result)
    
        # Sample 4: example of combining YandexGPT and YandexART models
        gpt = sdk.models.completions("yandexgpt")
        messages = gpt.run(
            [
                "you need to create a prompt for a yandexart model",
                "of " + message1 + "in" + message2,
            ]
        )
        print(messages)
    
        operation = model.run_deferred(messages)
        result = operation.wait()
        print(result)
    
    
    if __name__ == "__main__":
        main()
    

    Где:

    Примечание

    В качестве входных данных для запроса Yandex Cloud ML SDK может принимать строку, словарь, объект класса TextMessage или массив, содержащий любое сочетание указанных типов данных. Подробнее см. в разделе Использование Yandex Cloud ML SDK.

    • message1 — основная часть запроса на генерацию изображения.
    • message2 — уточняющая часть запроса на генерацию изображения.
    • <идентификатор_каталога> — идентификатор каталога, в котором создан сервисный аккаунт.

    • <API-ключ> — API-ключ сервисного аккаунта, полученный ранее и необходимый для аутентификации в API.

      В примерах используется аутентификация с помощью API-ключа. Yandex Cloud ML SDK также поддерживает аутентификацию с помощью IAM-токена и OAuth-токена. Подробнее см. в разделе Аутентификация в Yandex Cloud ML SDK.

    Подробнее о том, как обращаться к модели генерации изображений, см. в разделе Обращение к моделям.

  2. Выполните созданный файл:

    python3 generate-image.py
    

    Результат:

    ImageGenerationModelResult(model_version='', image_bytes=<889288 bytes>)
    ImageGenerationModelResult(model_version='', image_bytes=<1062632 bytes>)
    GPTModelResult(alternatives=(Alternative(role='assistant', text='Вот пример того, как может выглядеть запрос для модели YandexART:\n\n«Создай изображение красной кошки в стиле аниме Хаяо Миядзаки. Фон должен быть выполнен в мягких пастельных тонах с добавлением деталей, которые подчёркивают атмосферу волшебства и уюта».\n\n*Обратите внимание, что это лишь пример запроса, и вы можете адаптировать его под свои нужды.*', status=<AlternativeStatus.FINAL: 3>),), usage=Usage(input_text_tokens=31, completion_tokens=76, total_tokens=107), model_version='07.03.2024')
    ImageGenerationModelResult(model_version='', image_bytes=<1180073 bytes>)
    

Пример ниже разработан для выполнения в операционных системах MacOS и Linux. Чтобы выполнить его в системе Windows, ознакомьтесь с особенностями работы с Bash в Microsoft Windows.

  1. Создайте файл с телом запроса (например, prompt.json):

    {
    "modelUri": "art://<идентификатор_каталога>/yandex-art/latest",
    "generationOptions": {
      "seed": "1863",
      "aspectRatio": {
         "widthRatio": "2",
         "heightRatio": "1"
       }
    },
    "messages": [
      {
        "text": "узор из цветных пастельных суккулентов разных сортов, hd full wallpaper, четкий фокус, множество сложных деталей, глубина кадра, вид сверху"
      }
    ]
    }
    

    Где:

    • modelUri — идентификатор модели YandexART, содержащий идентификатор каталога Yandex Cloud.
    • seed — зерно генерации.
    • text — текстовое описание изображения, на основе которого будет происходить генерация.
    • aspectRatio — (опционально) соотношение сторон генерируемого изображения:
      • widthRatio — ширина (по умолчанию 1).
      • heightRatio — высота (по умолчанию 1).
  2. Отправьте запрос нейросети с помощью метода 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, содержащий параметры запроса.

    В ответе сервис вернет объект Operation:

    {"id":"fbveu1sntj**********","description":"","createdAt":null,"createdBy":"","modifiedAt":null,"done":false,"metadata":null}
    

    Сохраните идентификатор (id) операции, полученный в ответе.

  3. Генерация изображения может занять от нескольких секунд до нескольких часов. Подождите некоторое время и отправьте запрос по адресу: https://llm.api.cloud.yandex.net:443/operations/<идентификатор_операции>, чтобы получить результат генерации. Если изображение готово, результат вернется в кодировке 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, полученное в ответе на запрос генерации.

См. такжеСм. также

  • Обзор AI-моделей сервиса Yandex AI Studio
  • Примеры работы с ML SDK на GitHub

Была ли статья полезна?

Предыдущая
Вызвать функцию из модели
Следующая
Пакетная обработка данных
Проект Яндекса
© 2025 ООО «Яндекс.Облако»