Перейти к основному содержимому

Midjourney Proxy

Вызов Midjourney через формат Midjourney Proxy. Все эндпоинты отправки задач — POST (кроме запросов состояния); аутентификация та же, что и у остальных эндпоинтов.

Порядок работы​

  1. Отправьте задачу (/mj/submit/*) → получите ID задачи.
  2. Опрашивайте состояние (/mj/task/{id}/fetch) → получите status и imageUrl.
  3. При необходимости увеличьте / создайте вариации / перегенерируйте результат из 4 сетки (/mj/submit/change или /mj/submit/action).

Imagine​

POST /mj/submit/imagine
curl https://test.kailin.com.cn/mj/submit/imagine \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-your-token" \
-d '{ "prompt": "a cyberpunk cat, neon light --ar 16:9" }'
ПараметрТипОбязательноОписание
promptstringДаПромпт для рисования, допускаются флаги MJ (--ar, --v, …)
base64ArrayarrayНетРеференсные изображения (массив Base64)
notifyHookstringНетURL обратного вызова (работает и опрос состояния)
statestringНетПроизвольное сквозное поле

Ответ:

{ "code": 1, "description": "Submitted", "result": "1792xxxx-task-id" }

code: 1 — успех, result содержит ID задачи; code: 21 — задача требует подтверждения через /mj/submit/modal; code: 22 — дубликат задачи; code: 9 — задача в очереди (в result приходит уведомление).

Запрос задачи​

GET /mj/task/{id}/fetch
curl https://test.kailin.com.cn/mj/task/1792xxxx-task-id/fetch \
-H "Authorization: Bearer sk-your-token"
{
"id": "1792xxxx-task-id",
"action": "IMAGINE",
"status": "SUCCESS",
"progress": "100%",
"imageUrl": "https://cdn.example.com/mj/xxx.png",
"prompt": "a cyberpunk cat, neon light --ar 16:9",
"submitTime": 1730000000000,
"finishTime": 1730000600000
}
ПолеОписание
statusNOT_START / SUBMITTED / IN_PROGRESS / SUCCESS / FAILURE / CANCEL
imageUrlURL результирующего изображения (возвращается при статусе SUCCESS)
failReasonПричина сбоя (при статусе FAILURE)

Пакетный запрос​

POST /mj/task/list-by-condition
{ "ids": ["id1", "id2"] }

Последующие действия​

Увеличение / вариации / перегенерация​

POST /mj/submit/change
{ "taskId": "1792xxxx-task-id", "action": "UPSCALE", "index": 2 }
ПараметрОписание
actionUPSCALE / VARIATION / REROLL / HIGH_VARIATION / LOW_VARIATION / ZOOM и др.
indexПозиция в сетке 1–4 (обязательно для UPSCALE / VARIATION)
customIdЛибо передайте customId кнопки, возвращённый задачей

Действия по кнопкам​

POST /mj/submit/action

Имитирует нажатие одной из buttons, возвращённых задачей (кнопки U/V, Regional, Pan и др.):

{ "taskId": "1792xxxx-task-id", "customId": "MJ::JOB::upsample::3::uuid" }

Другие эндпоинты отправки​

ЭндпоинтОписание
POST /mj/submit/blendСмешивание 2–4 изображений (base64Array, необязательные dimensions)
POST /mj/submit/describeИзображение → промпт (отправьте base64, вернёт четыре варианта промпта)
POST /mj/submit/modalПодтверждение задачи с code: 21 (taskId + prompt)
POST /mj/submit/shortenАнализ и сокращение промпта
POST /mj/submit/simple-changeБыстрое изменение: content вида "taskId U2"
POST /mj/submit/editsЧастичное редактирование
POST /mj/submit/videoГенерация видео
POST /mj/submit/upload-discord-imagesЗагрузка изображений и получение референсных URL
POST /mj/insight-face/swapЗамена лица (InsightFace)

Служебные эндпоинты​

ЭндпоинтОписание
GET /mj/task/{id}/image-seedПолучить image seed задачи
GET /mj/image/{id}Проксированный доступ к изображению
Совет

Каждая отправка, вернувшая code: 21, должна быть подтверждена через /mj/submit/modal до выполнения — типично для крупных портретов и подобных сцен.