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
- Gửi tác vụ (
/mj/submit/*) → nhận một task ID. - Truy vấn (
/mj/task/{id}/fetch) → nhậnstatusvàimageUrl. - Tùy chọn upscale / vary / reroll kết quả lưới 4 ảnh (
/mj/submit/changehoặc/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" }'
| Tham số | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
prompt | string | Có | Prompt vẽ ảnh, cho phép dùng cờ MJ (--ar, --v, …) |
base64Array | array | Không | Ảnh tham chiếu (mảng Base64) |
notifyHook | string | Không | URL callback (polling cũng hoạt động) |
state | string | Không | Trườ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}/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
}
| Trường | Mô tả |
|---|---|
status | NOT_START / SUBMITTED / IN_PROGRESS / SUCCESS / FAILURE / CANCEL |
imageUrl | URL ảnh kết quả (chỉ trả về khi SUCCESS) |
failReason | Lý 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ả |
|---|---|
action | UPSCALE / VARIATION / REROLL / HIGH_VARIATION / LOW_VARIATION / ZOOM, v.v. |
index | Vị trí trong lưới 1–4 (bắt buộc với UPSCALE / VARIATION) |
customId | Hoặ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/actionNhấ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
| Endpoint | Mô tả |
|---|---|
POST /mj/submit/blend | Trộ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/modal | Xác nhận tác vụ code: 21 (taskId + prompt) |
POST /mj/submit/shorten | Phân tích và rút gọn prompt |
POST /mj/submit/simple-change | Thay đổi nhanh: content chẳng hạn như "taskId U2" |
POST /mj/submit/edits | Chỉnh sửa cục bộ |
POST /mj/submit/video | Tạo video |
POST /mj/submit/upload-discord-images | Tải ảnh lên và nhận URL tham chiếu |
POST /mj/insight-face/swap | Hoán đổi khuôn mặt (InsightFace) |
Các endpoint hỗ trợ
| Endpoint | Mô tả |
|---|---|
GET /mj/task/{id}/image-seed | Lấ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ự.