- Midjourney 文生图(Imagine)/ 垫图 / 二次操作 / 图生视频接口总览
- 异步任务模式:提交后返回 task_id,轮询查询结果
- 新版路由自动注入 model=midjourney,支持原生 MJ 参数、body 结构化参数与 metadata
注意
**Base URL:** `https://api.openveer.com`
**鉴权:** `Authorization: Bearer `
新版 `/v1/midjourney/...` 路由会自动注入 `model=midjourney`,请求体不需要传 `model`。
快速开始
# 1. 提交绘图
curl -X POST https://api.openveer.com/v1/midjourney/generations \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{"prompt": "a cute cat, watercolor style --ar 16:9"}'
# 2. 查询结果(推荐轮询统一任务接口直到 status=completed)
curl https://api.openveer.com/v1/tasks/task_01JWXXXX \
-H "Authorization: Bearer <token>"
# 3. 放大第1张图
curl -X POST https://api.openveer.com/v1/midjourney/generations/upscale \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{"task_id": "task_01JWXXXX", "index": 1}'
接口总览
每个功能的完整字段、示例、注意事项见对应子页面。
| 功能 | 路径 | 文档 |
|---|---|---|
| 文生图(默认入口) | POST /v1/midjourney/generations |
Imagine |
| 文生图(显式入口) | POST /v1/midjourney/generations/imagine |
Imagine |
| 多图融合 | POST /v1/midjourney/generations/blend |
Blend |
| 图生文(识图) | POST /v1/midjourney/generations/describe |
Describe |
| 图片编辑 | POST /v1/midjourney/generations/edits |
Edits |
| 放大选图 | POST /v1/midjourney/generations/upscale |
Upscale |
| 生成变体 | POST /v1/midjourney/generations/variation |
Variation |
| 大幅变体 | POST /v1/midjourney/generations/high-variation |
High Variation |
| 微调变体 | POST /v1/midjourney/generations/low-variation |
Low Variation |
| 重新生成 | POST /v1/midjourney/generations/reroll |
Reroll |
| 缩放扩展 | POST /v1/midjourney/generations/zoom |
Zoom |
| 平移扩展 | POST /v1/midjourney/generations/pan |
Pan |
| 局部重绘 | POST /v1/midjourney/generations/inpaint |
Inpaint |
| Modal 补充参数 | POST /v1/midjourney/generations/modal |
Modal |
| 图生视频 | POST /v1/midjourney/generations/video |
Video |
| 重塑(强 / 弱) | POST /v1/midjourney/generations/remix-strong · /remix-subtle |
Remix |
| 任务查询 | GET /v1/tasks/{task_id} · /v1/midjourney/{task_id} |
任务查询 |
参考:最佳实践(轮询 / 重试 / 排错) · 完整工作流示例(端到端 curl + 客户端封装)
完整使用流程
flowchart TB
A["① POST /generations<br/>提交 Imagine"] --> B["② GET /v1/tasks/{task_id}<br/>轮询至 completed"]
B --> C["③ 如需按钮<br/>GET /v1/midjourney/{task_id}"]
C --> D1["/upscale"]
C --> D2["/variation"]
C --> D3["/reroll"]
C --> D4["/zoom"]
C --> D5["/inpaint<br/>(进入 MODAL)"]
D5 --> M["/modal<br/>提交遮罩 + prompt"]
错误处理
错误响应格式
{
"error": {
"type": "invalid_request_error",
"message": "prompt is required"
}
}
常见错误
| HTTP 状态码 | type | 说明 |
|---|---|---|
| 400 | invalid_request_error |
参数错误(缺少必填、格式错误等) |
| 401 | authentication_error |
API Key 无效 |
| 402 | payment_required |
余额不足 |
| 404 | not_found |
任务不存在 |
| 429 | rate_limit_error |
请求频率超限 |
| 500 | internal_error |
服务器内部错误 |
任务失败
fail_reason 常见值:
Banned prompt detected— 提示词含违禁内容Task timeout— 任务超时(超过 30 分钟未完成),已自动退款No available upstream— 服务暂不可用,请稍后重试
计费说明
MJ 新版统一模型名是 midjourney,通过 action、version、speed 生成计费 key。匹配顺序通常为:
midjourney@<action>-<version>-<speed>
-> midjourney@<action>-<version>
-> midjourney@<action>-<speed>
-> midjourney@<action>
-> midjourney
| 操作 | 计费名称 | 说明 |
|---|---|---|
| Imagine | midjourney@imagine[-version][-speed] |
文生图 / 垫图 |
| Blend | midjourney@blend[-speed] |
多图融合 |
| Describe | midjourney@describe[-speed] |
图生文 |
| Edits | midjourney@edits[-speed] |
图片编辑 |
| Upscale | midjourney@upscale[-version][-speed] |
放大 |
| Variation | midjourney@variation[-version][-speed] |
变体 |
| High Variation | midjourney@high_variation[-version][-speed] |
强变体 |
| Low Variation | midjourney@low_variation[-version][-speed] |
弱变体 |
| Reroll | midjourney@reroll[-version][-speed] |
重新生成 |
| Zoom | midjourney@zoom[-version][-speed] |
缩放扩图 |
| Pan | midjourney@pan[-version][-speed] |
平移扩图 |
| Inpaint | midjourney@inpaint[-version][-speed] |
局部重绘入口 |
| Modal | midjourney@modal[-speed] |
局部重绘补参 |
| Video | midjourney@video / midjourney@video-720p |
图生视频,实扣 × batch_size |
| Remix Strong | midjourney@remix_strong[-speed] |
强重塑(仅 v8.1 / v8.2) |
| Remix Subtle | midjourney@remix_subtle[-speed] |
弱重塑(仅 v8.1 / v8.2) |
说明:
speed=relax或未传speed时,不追加 speed 后缀;fast/turbo会追加对应后缀。- 主版本归一化为
v8.2、v8.1、v7、v6.1、v5.2、v5.1。 niji=true + version=7/6归一化为niji7/niji6。
具体价格以控制台模型定价页为准。任务失败会自动全额退款。