Proxy Midjourney
Appelez Midjourney via le format Midjourney Proxy. Tous les points de terminaison de soumission sont en POST (sauf ceux d'interrogation) ; l'authentification est la même que pour les autres points de terminaison.
Flux de travail
- Soumettez une tâche (
/mj/submit/*) → obtenez un ID de tâche. - Interrogez (
/mj/task/{id}/fetch) → obtenezstatusetimageUrl. - Éventuellement, appliquez un upscale / vary / reroll au résultat en grille de 4 (
/mj/submit/changeou/mj/submit/action).
Imagine
POST /mj/submit/imaginecurl 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" }'
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
prompt | string | Oui | Prompt de dessin, drapeaux MJ autorisés (--ar, --v, …) |
base64Array | array | Non | Images de référence (tableau de Base64) |
notifyHook | string | Non | URL de callback (le polling fonctionne aussi) |
state | string | Non | Champ personnalisé transmis tel quel |
Réponse :
{ "code": 1, "description": "Submitted", "result": "1792xxxx-task-id" }
code: 1 succès avec result comme ID de tâche ; code: 21 signifie que la tâche nécessite une confirmation via /mj/submit/modal ; code: 22 signifie une tâche en double ; code: 9 signifie en file d'attente (result contient l'avis).
Interroger une tâche
GET /mj/task/{id}/fetchcurl 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
}
| Champ | Description |
|---|---|
status | NOT_START / SUBMITTED / IN_PROGRESS / SUCCESS / FAILURE / CANCEL |
imageUrl | URL de l'image résultat (renvoyée une fois SUCCESS atteint) |
failReason | Motif de l'échec (en cas de FAILURE) |
Interrogation par lot
POST /mj/task/list-by-condition{ "ids": ["id1", "id2"] }
Actions de suivi
Upscale / Variation / Reroll
POST /mj/submit/change{ "taskId": "1792xxxx-task-id", "action": "UPSCALE", "index": 2 }
| Paramètre | Description |
|---|---|
action | UPSCALE / VARIATION / REROLL / HIGH_VARIATION / LOW_VARIATION / ZOOM, etc. |
index | Position dans la grille, de 1 à 4 (obligatoire pour UPSCALE / VARIATION) |
customId | À la place, vous pouvez passer le customId du bouton renvoyé par la tâche |
Actions de bouton
POST /mj/submit/actionClique sur l'un des buttons renvoyés par une tâche (boutons U/V, Regional, Pan, etc.) :
{ "taskId": "1792xxxx-task-id", "customId": "MJ::JOB::upsample::3::uuid" }
Autres points de terminaison de soumission
| Point de terminaison | Description |
|---|---|
POST /mj/submit/blend | Fusionne 2 à 4 images (base64Array, dimensions optionnel) |
POST /mj/submit/describe | Image vers prompt (envoie base64, renvoie quatre prompts candidats) |
POST /mj/submit/modal | Confirme une tâche code: 21 (taskId + prompt) |
POST /mj/submit/shorten | Analyse et raccourcissement du prompt |
POST /mj/submit/simple-change | Changement rapide : content tel que "taskId U2" |
POST /mj/submit/edits | Éditions partielles |
POST /mj/submit/video | Génération vidéo |
POST /mj/submit/upload-discord-images | Téléverse des images et obtient des URL de référence |
POST /mj/insight-face/swap | Échange de visages (InsightFace) |
Points de terminaison auxiliaires
| Point de terminaison | Description |
|---|---|
GET /mj/task/{id}/image-seed | Obtient la graine (seed) de l'image d'une tâche |
GET /mj/image/{id} | Accès aux images via le proxy |
Astuce
Chaque soumission renvoyant code: 21 doit être confirmée via /mj/submit/modal avant exécution — c'est courant pour les portraits en gros plan et scénarios similaires.