Aller au contenu principal

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​

  1. Soumettez une tâche (/mj/submit/*) → obtenez un ID de tâche.
  2. Interrogez (/mj/task/{id}/fetch) → obtenez status et imageUrl.
  3. Éventuellement, appliquez un upscale / vary / reroll au résultat en grille de 4 (/mj/submit/change ou /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" }'
ParamètreTypeObligatoireDescription
promptstringOuiPrompt de dessin, drapeaux MJ autorisés (--ar, --v, …)
base64ArrayarrayNonImages de référence (tableau de Base64)
notifyHookstringNonURL de callback (le polling fonctionne aussi)
statestringNonChamp 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}/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
}
ChampDescription
statusNOT_START / SUBMITTED / IN_PROGRESS / SUCCESS / FAILURE / CANCEL
imageUrlURL de l'image résultat (renvoyée une fois SUCCESS atteint)
failReasonMotif 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ètreDescription
actionUPSCALE / VARIATION / REROLL / HIGH_VARIATION / LOW_VARIATION / ZOOM, etc.
indexPosition 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/action

Clique 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 terminaisonDescription
POST /mj/submit/blendFusionne 2 à 4 images (base64Array, dimensions optionnel)
POST /mj/submit/describeImage vers prompt (envoie base64, renvoie quatre prompts candidats)
POST /mj/submit/modalConfirme une tâche code: 21 (taskId + prompt)
POST /mj/submit/shortenAnalyse et raccourcissement du prompt
POST /mj/submit/simple-changeChangement rapide : content tel que "taskId U2"
POST /mj/submit/editsÉditions partielles
POST /mj/submit/videoGénération vidéo
POST /mj/submit/upload-discord-imagesTé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 terminaisonDescription
GET /mj/task/{id}/image-seedObtient 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.