Около полутора лет назад у маркетологов, дизайнеров, веб-разработчиков, контент-мейкеров, арбитражников начал резко меняться подход в работе - появились удобные инструменты для генерации качественных артов, баннеров, превьюшек, иконок.
Один из мощнейших инструментов для этого - Midjourney. Эта нейронная сеть позволяет генерировать в рамках 20-30 секунд качественные, красивые изображения. Ко всему этому прилагаются удобные инструменты для редактирования результата. Например, Midjourney позволяет внести коррективы в конкретной части картинки. Ниже я приведу примеры как использовать все возможности Midjourney.
Большие проекты сразу проявили желание интегрировать эту нейронную сеть. Яркие примеры: рекламные сети, аггрегаторы рекламных сетей, площадки предоставляющие офферы для вебмастеров и людей работающих с трафиком; отдельная "прослойка" - это дизайнеры, потому что в их руках теперь есть инструмент который за мгновение выполнит работу, на которую им потребуется 2-3 часа.
Первым делом такие проекты ищут официальное API Midjourney для интеграции. В конце концов решение находится просто: userapi.ai - API для Midjourney.
Имея уже само API - возможность интеграции в сервисы появляется. А вместе с тем и необходимость изучения возможностей для автоматизации работы с Midjourney.
Пререквизиты:
- Наличие аккаунта на discord.com
- Наличие подписки на этом аккаунте на midjourney.com (вы должны авторизоваться на этом сайте с помощью вашего discord аккаунта и приобрести подписку)
Затем, после регистрации на userapi.ai, необходимо подвязать ваш discord аккаунт к сервису:
Это делается достаточно просто, необходимо лишь указать ваш token, остальные поля заполнятся за вас сами. Токен нужно получить в браузере, открыв дискорд, найти в нем бота Midjourney Bot - если у вас уже есть подписка к Midjourney, то и чат с ботом у вас под рукой, открыть Developer Tools (Ctrl + I), найти вкладку Network. Затем отослать боту команду:
```/info```
и найти запрос interactions как показано на картинке:
Все что указано под цифрой 2 - и есть ваш токен. Вставляем его в окно добавления аккаунта, вуаля! Цифрой 1 обозначен Channel ID - если он не вставится автоматически, надо сделать это вручную.
Спустя 15-20 секунд ваш аккаунт станет активен. На изображении ниже показан ваш api-key:
Его теперь можно использовать для доступа к 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, где белое - это та область, которую необходимо перерисовать:
Затем используем метод /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, само новое изображение:
Классно ведь?!
Давайте теперь подведем итог: в этой статье мы разобрались как получить доступ к api Midjourney используя userapi.ai и рассмотрели три базовых метода:
И один расширенный метод редактирования части изображения по запросу:
Желаю удачи в интеграции!