Chuyển đến nội dung chính

Proxy Midjourney

Gọi Midjourney qua định dạng Midjourney Proxy. Tất cả các endpoint submit đều là POST (trừ các endpoint truy vấn); xác thực giống với các endpoint khác.

Luồng gọi​

  1. Gửi tác vụ (/mj/submit/*) → nhận một task ID.
  2. Truy vấn (/mj/task/{id}/fetch) → nhận status và imageUrl.
  3. Tùy chọn upscale / vary / reroll kết quả lưới 4 ảnh (/mj/submit/change hoặc /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" }'
Tham sốKiểuBắt buộcMô tả
promptstringCóPrompt vẽ ảnh, cho phép dùng cờ MJ (--ar, --v, …)
base64ArrayarrayKhôngẢnh tham chiếu (mảng Base64)
notifyHookstringKhôngURL callback (polling cũng hoạt động)
statestringKhôngTrường truyền qua tùy chỉnh

Phản hồi:

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

code: 1 là thành công với result là task ID; code: 21 nghĩa là tác vụ cần được xác nhận qua /mj/submit/modal; code: 22 nghĩa là tác vụ trùng lặp; code: 9 nghĩa là đang xếp hàng đợi (result chứa thông báo).

Truy vấn tác vụ​

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
}
TrườngMô tả
statusNOT_START / SUBMITTED / IN_PROGRESS / SUCCESS / FAILURE / CANCEL
imageUrlURL ảnh kết quả (chỉ trả về khi SUCCESS)
failReasonLý do thất bại (khi FAILURE)

Truy vấn hàng loạt​

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

Các thao tác tiếp theo​

Upscale / Variation / Reroll​

POST /mj/submit/change
{ "taskId": "1792xxxx-task-id", "action": "UPSCALE", "index": 2 }
Tham sốMô tả
actionUPSCALE / VARIATION / REROLL / HIGH_VARIATION / LOW_VARIATION / ZOOM, v.v.
indexVị trí trong lưới 1–4 (bắt buộc với UPSCALE / VARIATION)
customIdHoặc truyền customId của nút được trả về bởi tác vụ

Thao tác nút (Button Actions)​

POST /mj/submit/action

Nhấp vào một trong các buttons được trả về bởi tác vụ (các nút U/V, Regional, Pan, v.v.):

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

Các endpoint submit khác​

EndpointMô tả
POST /mj/submit/blendTrộn 2–4 ảnh (base64Array, tùy chọn dimensions)
POST /mj/submit/describeẢnh thành prompt (gửi base64, trả về bốn prompt gợi ý)
POST /mj/submit/modalXác nhận tác vụ code: 21 (taskId + prompt)
POST /mj/submit/shortenPhân tích và rút gọn prompt
POST /mj/submit/simple-changeThay đổi nhanh: content chẳng hạn như "taskId U2"
POST /mj/submit/editsChỉnh sửa cục bộ
POST /mj/submit/videoTạo video
POST /mj/submit/upload-discord-imagesTải ảnh lên và nhận URL tham chiếu
POST /mj/insight-face/swapHoán đổi khuôn mặt (InsightFace)

Các endpoint hỗ trợ​

EndpointMô tả
GET /mj/task/{id}/image-seedLấy image seed của một tác vụ
GET /mj/image/{id}Truy cập ảnh qua proxy
Mẹo

Mọi lượt submit trả về code: 21 đều phải được xác nhận qua /mj/submit/modal trước khi thực thi — phổ biến với chân dung cận cảnh và các scene tương tự.