api
Midjourney 任务兼容协议
直接答案本站 /mj/* 是任务代理兼容协议,不是 Midjourney 官方公开 API;先确认渠道授权与条款,再提交 imagine,保存 result 任务 ID,并轮询到 SUCCESS 或 FAILURE。
更新 · 审核信息
小白:先认清本站兼容协议
/mj/* 是本站兼容协议,不是 Midjourney 官方公开 API,也不代表 Midjourney 为该路径、字段或可用性背书。Midjourney 官方条款会更新,并对自动化访问和服务转售设有限制;调用前必须确认账户、上游渠道、授权方式和当前条款允许你的场景。网页产品能做某项操作,也不等于本站渠道已经支持。
本站令牌只用于本站 Authorization: Bearer $API_KEY。不要把 Discord 凭据、Midjourney 登录信息或上游密钥放进请求、浏览器代码和日志。
最小 imagine 请求
prompt 是 imagine 的必填字段。首次接入先提交一条低成本提示词,不要同时启用回调、参考图和后续动作。
create=$(curl -sS "$BASE_URL/mj/submit/imagine" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{"prompt":"纸雕白兔站在月光森林,电影光影"}')
task_id=$(printf '%s' "$create" | jq -r '.result')
test -n "$task_id" && test "$task_id" != "null"
成功提交常见结构为 code、description、result 和可选 properties。code=1 表示受理,排队或任务已存在可能被兼容层归并处理;不要只凭 HTTP 200 判断生成成功。若 result 为空或 code 不在成功集合,记录脱敏响应并停止轮询。
查询状态与读取结果
curl "$BASE_URL/mj/task/$task_id/fetch" \
-H "Authorization: Bearer $API_KEY"
规范查询模式写作 GET /mj/task/{task_id}/fetch。查询对象包含 id、status、progress、imageUrl、imageUrls、videoUrl 与 failReason 等字段。SUCCESS 和 FAILURE 是终态;状态尚为空或进度未到 100% 时仍可能在排队或处理。只在 SUCCESS 后消费结果,FAILURE 时保存 failReason。轮询从数秒间隔开始,使用有上限的指数退避和随机抖动,并设置总时限。
后续动作与渠道亲和
放大、变化、重绘、视频等动作依赖原任务的 taskId,部分动作还需要 action、index、customId 或遮罩。本站会把后续动作绑定到原任务渠道;先确认原任务 SUCCESS,再根据查询结果返回的 buttons/customId 发起动作,不要猜按钮 ID,也不要跨账户复用任务 ID。
创建接口没有通用幂等保证。业务侧应记录调用方任务号、提示词哈希、本站 Request-ID、返回任务 ID、创建时间和计费记录,超时后先查本地记录,避免重复生成。
媒体、安全与结果生命周期
Base64 参考图会放大请求体和内存占用;提交前限制字节数、像素、类型和数量,解码与转发采用有界流式处理。远程素材 URL 必须防 SSRF、重定向绕过和超大响应。人物、商标、版权素材及生成结果应符合授权、隐私、内容政策和商业使用要求。
imageUrl 或 videoUrl 可能过期或受上游访问控制。任务成功后及时流式复制到自有对象存储,保存 MIME、字节数、哈希、来源任务、访问权限和删除时间,不要把签名 URL 当永久资产。
专家:上线与故障治理
把提交并发和轮询并发分开限流;提交超时、查询超时、总任务时限分别配置。对 400 或内容审核失败不重试,对 429 延迟并降低并发,对临时 5xx 仅做有限重试。监控受理率、排队时间、成功率、P95 完成时间、重复任务率、失败原因和结果保存成功率。渠道或条款变化时应能快速停用该协议,而不是让客户端无限重试。
适用场景
- 提交 imagine 图像任务并查询进度
- 在成功任务上执行放大、变化和重绘动作
- 管理任务幂等、结果保存与合规边界
API 协议
/mj/submit/imagine/mj/task/{task_id}/fetch
FAQ
/mj 是 Midjourney 官方 API 吗?
不是。它是本站兼容协议,由已配置的任务渠道提供能力;Midjourney 官方产品文档和条款不为本站路径或响应结构背书。
提交响应里的 result 是图片地址吗?
通常不是。提交成功时 result 是任务 ID,应放入 /mj/task/{task_id}/fetch 查询;完成后再读取 imageUrl、imageUrls 或 videoUrl。
创建请求超时后可以立即重发吗?
不建议。上游可能已经受理并计费。先用业务幂等键、Request-ID 和已保存的任务记录排查,再决定是否创建新任务。
关联指南
官方来源
- Midjourney Documentation Official
- Midjourney Terms of Service Official
兔子API