Midjourney API
本文介绍通过 XinnetModel 调用 Midjourney 的完整流程,包含文生图、放大、变体和重新生成四个操作。
模型列表
模型名 | 功能 |
|---|
midjourney-fast-imagine | 文生图,输入提示词,返回 4 张图的拼合网格图 |
midjourney-fast-upscale | 放大单张图(U1~U4 及后续二次操作) |
midjourney-fast-variation | 变体,基于某张图重新生成 4 张(V1~V4) |
midjourney-fast-reroll | 重新生成全部 4 张(🔄) |
服务地址
接口 | 方法 | 地址 |
|---|
提交任务 | POST | https://airouter.xincache.cn/v1/tasks/submit |
查询状态 | GET | https://airouter.xincache.cn/v1/tasks/status |
认证方式: Authorization: Bearer <your-api-key>
工作流
所有 Midjourney 任务均为异步执行:
POST /v1/tasks/submit 提交任务,得到 task_id
轮询 GET /v1/tasks/status?task_id=<task_id> ,直到 task_status 为 Success 或 Failure
接口详情
提交任务
POST https://airouter.xincache.cn/v1/tasks/submit
请求体
{
"model": "<模型名>",
"input": {
"prompt": "<提示词,仅 imagine 需要>"
},
"parameters": {
"mj_task_id": "<上一步操作的 task_id,upscale / variation / reroll 必填>",
"mj_custom_id": "<buttons 中的 custom_id,upscale / variation / reroll 必填>"
}
}
参数说明
字段 | 类型 | 是否必须 | 说明 |
|---|
model | string | 必须 | 模型名,见上方模型列表 |
input.prompt | string | imagine 必须 | 文生图提示词 |
parameters.mj_task_id | string | upscale / variation / reroll 必须 | 关联的上一步任务 ID |
parameters.mj_custom_id | string | upscale / variation / reroll 必须 | 来自上一步查询结果 buttons 中的 custom_id |
响应
{
"output": {
"task_id": "1775203239196609"
},
"request_id": "abc123..."
}
查询任务状态
GET https://airouter.xincache.cn/v1/tasks/status?task_id=<task_id>
响应
{
"output": {
"task_id": "1775203239196609",
"task_status": "Success",
"urls": ["https://...图片地址..."],
"submit_time": 1775203239,
"buttons": [
{"custom_id": "MJ::JOB::upsample::1::431a5822-...", "label": "U1"},
{"custom_id": "MJ::JOB::upsample::2::431a5822-...", "label": "U2"},
{"custom_id": "MJ::JOB::upsample::3::431a5822-...", "label": "U3"},
{"custom_id": "MJ::JOB::upsample::4::431a5822-...", "label": "U4"},
{"custom_id": "MJ::JOB::reroll::0::431a5822-...::SOLO", "emoji": "🔄"},
{"custom_id": "MJ::JOB::variation::1::431a5822-...", "label": "V1"},
{"custom_id": "MJ::JOB::variation::2::431a5822-...", "label": "V2"},
{"custom_id": "MJ::JOB::variation::3::431a5822-...", "label": "V3"},
{"custom_id": "MJ::JOB::variation::4::431a5822-...", "label": "V4"}
]
}
}
task_status 枚举
值 | 含义 |
|---|
Pending | 排队中 |
Running | 生成中 |
Success | 成功 |
Failure | 失败,见 error_message 字段 |
响应字段说明
字段 | 类型 | 说明 |
|---|
output.task_id | string | 任务 ID |
output.task_status | string | 任务状态,见上方枚举 |
output.urls | array | 图片直链列表。imagine / variation / reroll 返回 1 张网格拼合图;upscale 返回 1 张单图 |
output.submit_time | integer | 提交时间的 Unix 时间戳(秒) |
output.buttons | array | 可继续操作的按钮列表,每项含 custom_id |
完整示例
Step 1 — 文生图(imagine)
curl -X POST https://airouter.xincache.cn/v1/tasks/submit \
-H "Authorization: Bearer $XINNETMODEL_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "midjourney-fast-imagine",
"input": {
"prompt": "a cute cat sitting on a cloud, anime style"
}
}'
提交后轮询查询接口,直到 task_status 为 Success:
curl "https://airouter.xincache.cn/v1/tasks/status?task_id=1775203239196609" \
-H "Authorization: Bearer $XINNETMODEL_API_KEY"
成功后记录:
Step 2a — 放大单张(upscale,以 U1 为例)
从 buttons 中找到 label 为 "U1" 的项,取其 custom_id:
curl -X POST https://airouter.xincache.cn/v1/tasks/submit \
-H "Authorization: Bearer $XINNETMODEL_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "midjourney-fast-upscale",
"input": {},
"parameters": {
"mj_task_id": "1775203239196609",
"mj_custom_id": "MJ::JOB::upsample::1::431a5822-bfb2-4c55-8fc5-fc101abebd91"
}
}'
upscale 成功后同样返回 buttons ,包含更多二次操作选项(二次放大、Vary、Zoom、Pan、Animate 等),均可继续通过 midjourney-fast-upscale 模型发起。
Step 2b — 变体(variation,以 V1 为例)
从 buttons 中找到 label 为 "V1" 的项,取其 custom_id:
curl -X POST https://airouter.xincache.cn/v1/tasks/submit \
-H "Authorization: Bearer $XINNETMODEL_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "midjourney-fast-variation",
"input": {},
"parameters": {
"mj_task_id": "1775203239196609",
"mj_custom_id": "MJ::JOB::variation::1::431a5822-bfb2-4c55-8fc5-fc101abebd91"
}
}'
variation 成功后返回新的 buttons ,可继续对新图执行 upscale 等操作。
Step 2c — 重新生成(reroll)
从 buttons 中找到 emoji 为 "🔄" 的项,取其 custom_id:
curl -X POST https://airouter.xincache.cn/v1/tasks/submit \
-H "Authorization: Bearer $XINNETMODEL_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "midjourney-fast-reroll",
"input": {},
"parameters": {
"mj_task_id": "1775203239196609",
"mj_custom_id": "MJ::JOB::reroll::0::431a5822-bfb2-4c55-8fc5-fc101abebd91::SOLO"
}
}'
Last modified: 25 April 2026