Найти тему
API для Midjourney: userapi.ai

API прослойка к Midjourney для вашего проекта

Около полутора лет назад у маркетологов, дизайнеров, веб-разработчиков, контент-мейкеров, арбитражников начал резко меняться подход в работе - появились удобные инструменты для генерации качественных артов, баннеров, превьюшек, иконок.

Один из мощнейших инструментов для этого - Midjourney. Эта нейронная сеть позволяет генерировать в рамках 20-30 секунд качественные, красивые изображения. Ко всему этому прилагаются удобные инструменты для редактирования результата. Например, Midjourney позволяет внести коррективы в конкретной части картинки. Ниже я приведу примеры как использовать все возможности Midjourney.

Большие проекты сразу проявили желание интегрировать эту нейронную сеть. Яркие примеры: рекламные сети, аггрегаторы рекламных сетей, площадки предоставляющие офферы для вебмастеров и людей работающих с трафиком; отдельная "прослойка" - это дизайнеры, потому что в их руках теперь есть инструмент который за мгновение выполнит работу, на которую им потребуется 2-3 часа.

Первым делом такие проекты ищут официальное API Midjourney для интеграции. В конце концов решение находится просто: userapi.ai - API для Midjourney.

Имея уже само API - возможность интеграции в сервисы появляется. А вместе с тем и необходимость изучения возможностей для автоматизации работы с Midjourney.

Пререквизиты:

  • Наличие аккаунта на discord.com
  • Наличие подписки на этом аккаунте на midjourney.com (вы должны авторизоваться на этом сайте с помощью вашего discord аккаунта и приобрести подписку)

Затем, после регистрации на userapi.ai, необходимо подвязать ваш discord аккаунт к сервису:

Добавление discord аккаунта в userapi.ai для доступа к API Midjourney (есть free integration pack)
Добавление discord аккаунта в userapi.ai для доступа к API Midjourney (есть free integration pack)

Это делается достаточно просто, необходимо лишь указать ваш token, остальные поля заполнятся за вас сами. Токен нужно получить в браузере, открыв дискорд, найти в нем бота Midjourney Bot - если у вас уже есть подписка к Midjourney, то и чат с ботом у вас под рукой, открыть Developer Tools (Ctrl + I), найти вкладку Network. Затем отослать боту команду:

```/info```

и найти запрос interactions как показано на картинке:

Получение discord token
Получение discord token

Все что указано под цифрой 2 - и есть ваш токен. Вставляем его в окно добавления аккаунта, вуаля! Цифрой 1 обозначен Channel ID - если он не вставится автоматически, надо сделать это вручную.

Спустя 15-20 секунд ваш аккаунт станет активен. На изображении ниже показан ваш api-key:

-3

Его теперь можно использовать для доступа к API (документация). Сразу покажу пример:

curl -X POST https://api.userapi.ai/midjourney/v2/imagine \
-H "Content-Type: application/json" \
-H "api-key: 3fb0b6d9-6e1b-4bb7-993f-f79e9f1717e8" \
-d '{ "prompt": "nice 52 old woman in the pink hat" }'

(конечно, вы должны вставить свой api-key)

Этот метод по запросу пользователя (prompt) вернет изображение.

Как описано в документации, этот метод вам вернет hash вашей генерации изображения.

{
"hash":"cecb48b8-7edd-4c42-b63a-fc6afd755979"
}

По нему методом /status можно будет получить результат через 20-30 секунд:

curl -X GET \
-H "Content-Type: application/json" \
-H "api-key: 3fb0b6d9-6e1b-4bd7-993f-f79e9f1717e8" \
"https://api.userapi.ai/midjourney/v2/status?hash=cecb48b8-7edd-4c42-b63a-fc6afd755979"

В ответ получаем нашу картинку:

{
"hash":"cecb48b8-7edd-4c42-b63a-fc6afd755979",
"prompt":"nice 52 old woman in the pink hat",
"type":"imagine",
"progress":100,
"status":"done",
"result":{
"url":"https://cdn.discordapp.com/attachments/example.png",
"proxy_url":"https://cdn.discordapp.com/attachments/example.png",
}
}

А вот в качестве примера того, на сколько мощный этот инструмент.
Давайте предположим, что мы создали изображение которое нам полностью подходит, кроме какого-то момента. Например наше изображение:

Собака лежит на уютном диване
Собака лежит на уютном диване

Давайте изменим лишь часть изображения. Работать будем с верхним правым, получить его отдельно необходимо через метод /upscale:

curl -X POST https://api.userapi.ai/midjourney/v2/upscale \ -H "Content-Type: application/json" \
-H "api-key: 3fb0b6d9-6e1b-4bd7-993f-f79e9f1717e8" \
-d '{ "hash": "
cecb48b8-7edd-4c42-b63a-fc6afd755979", "choice": 2}'

В ответе мы получим хеш конкретного отдельного правого-верхнего изображения.

{
"hash":"2e324ddc-f6e4-4c2f-8511-81cc10214904"
}

Опять же, через метод /status можем получить ссылку на наше конкретное изображение:

curl -X GET \
-H "Content-Type: application/json" \
-H "api-key: 3fb0b6d9-6e1b-4bd7-993f-f79e9f1717e8" \
"https://api.userapi.ai/midjourney/v2/status?hash=2e324ddc-f6e4-4c2f-8511-81cc10214904"

А теперь попросим ИИ заменить собаку на кошку. У Миджорни для этого есть метод Vary (Region), он же Inpaint в API. Создаем маску (параметр mask в запросе ниже), это base64 от черно-белого PNG, где белое - это та область, которую необходимо перерисовать:

-5

Затем используем метод /inpaint (он же Vary (Region)):

curl -X POST https://api.userapi.ai/midjourney/v2/inpaint \ -H "Content-Type: application/json" \
-H "api-key: 3fb0b6d9-6e1b-4bd7-993f-f79e9f1717e8" \
-d '{
"hash": "6794f6ef-866a-4bc3-b0bc-7b28ec010d1b",
"mask": "UklGRgQoAABXR...",
"prompt": "a cat" }'

Получаем в ответ hash нашей новой задачи, а по нему методом /status, само новое изображение:

-6

Классно ведь?!

Давайте теперь подведем итог: в этой статье мы разобрались как получить доступ к api Midjourney используя userapi.ai и рассмотрели три базовых метода:

  • создать изображение (/imagine)
  • получить ссылку на картинку (/status)
  • увеличить одно из 4-х изображений (/upscale)

И один расширенный метод редактирования части изображения по запросу:

Желаю удачи в интеграции!