# Midjourney API 文档

所有注册用户可使用，使用独立 API 价格与积分余额，不享受网站会员折扣。API Key 接入不受网页会员等级的任务并发上限限制，有效密钥调用不设请求频率上限。支持文生图、部分图片模型的图生图、文生视频和参考图生视频；部分视频模型支持参考视频、参考音频与视频编辑，具体以各模型文档为准；回调暂未开放。视频接口为 /api/v1/videos/generations 和 /api/v1/videos/quote，结果位于 task.videos[].url。

## 鉴权

在开发者控制台创建密钥，请求头为 Authorization: Bearer YOUR_API_KEY。仅在自己的服务端使用密钥。

## 模型参数

模型 ID：midjourney
默认配置参考价格：0.06 积分
比例：auto / 1:1 / 9:16 / 16:9 / 3:4 / 4:3 / 2:3 / 3:2 / 1:2 / 2:1 / 9:21 / 21:9
尺寸：
质量：0.25 / 0.5 / 1 / 2

## 提交生图

POST https://luocisheng.cn/api/v1/images/generations
Content-Type: application/json
Idempotency-Key: image-demo-0001

```json
{
  "modelId": "midjourney",
  "prompt": "一只坐在窗边的猫，柔和的自然光",
  "numImages": 1,
  "aspectRatio": "auto",
  "quality": "1"
}
```

成功返回 HTTP 202 和 taskId。提交时冻结积分，结束后结算。

## OpenAI 兼容文生图

Base URL：https://luocisheng.cn/api/v1。仍使用本站 API Key 和 API 钱包。向同一个 images/generations 地址发送 `model`（本站模型 ID）、`prompt` 和可选 `n`，最多等待生成结算 120 秒，成功返回 HTTP 200 和 `data[].b64_json`。选填 `response_format: "url"` 时返回本站下载地址，下载仍需 Bearer 鉴权。不传 `size` 或传 `auto` 使用模型默认值；`1024x1024`、`1536x1024`、`1024x1536`、`1792x1024`、`1024x1792` 映射为对应画幅和 1K 档，实际像素由模型决定。图片编辑使用 POST /api/v1/images/edits，以 multipart/form-data 提交同样的模型和提示词，使用 image 或 image[] 上传 PNG、JPEG、WebP 参考图，单张最多 5 MiB，最多 4 张且受模型限制。暂不支持遮罩或远程文件。生成与编辑可传 stream=true（n=1、partial_images=0），仅在结算后发送最终 SSE 事件，不发送过程预览。关闭客户端自动重试；提交时带 `Idempotency-Key`，超时后查询返回的 `task_id`，或复用原键和原请求。

## API 余额

GET https://luocisheng.cn/api/v1/balance 返回 balance、held、available，单位为 API 积分。API 与网站积分互不通用，API 从零开始，需在开发者控制台单独充值。

## 详细价格表

Midjourney API 调用价格

| 创作模式 | 生成速度 | API 积分 / 次 |
| --- | --- | --- |
| 图片生成 | relax | 0.06 |
| 图片生成 | fast | 0.076 |
| 图片生成 | turbo | 0.13 |
| 图片编辑 | relax | 0.076 |
| 图片编辑 | fast | 0.076 |
| 图片编辑 | turbo | 0.13 |

1 美元 = 1 API 积分。图片编辑与其它后续操作使用同一档售价。

每次请求收费，生成最多交付四张图；版本和创作参数同价。repeat 使用原生重复指令，仍按请求报价。

局部重绘按最高速度档预扣，继续时不重复冻结，成功按所选速度结算差额。


## Midjourney 创作参数

参数放在 imageAdvanced 对象中。每个 numImages 单位代表一次请求，通常交付 1–4 张图，按请求计费。所有选项参与报价、任务快照与幂等校验。

| 参数 | 类型 | 说明 |
| --- | --- | --- |
| generationSpeed | string | relax / fast / turbo；默认 relax，影响报价 |
| referenceUrls | string[] | 最多 16 张公开 HTTP(S) 参考图 URL |
| imageAdvanced.action | enum | imagine / blend / edits / describe / inpaint / modal / upscale / variation / high_variation / low_variation / reroll / zoom / pan / remix_strong / remix_subtle；imagine / blend / edits / describe / inpaint / modal / upscale / variation / high_variation / low_variation / reroll / zoom / pan / remix_strong / remix_subtle |
| imageAdvanced.dimensions | enum | SQUARE / PORTRAIT / LANDSCAPE |
| imageAdvanced.direction | enum | left / right / up / down |
| imageAdvanced.index | number | 1–4；图像操作选择四宫格第 1–4 张；视频为 0–3 |
| imageAdvanced.generationIndex | number | 1–100；关联任务的第几次生成请求，从 1 开始 |
| imageAdvanced.repeat | number | 2–40；原生重复参数 2–40；按请求报价，结果数量由模型决定 |
| imageAdvanced.zoomRatio | number | 0–100 |
| imageAdvanced.parentTaskId | string | 本站 Midjourney API 任务 ID；只能引用本人任务 |
| imageAdvanced.operationId | string | 父任务 results[].operations[].id；用于精确选择高级放大等操作 |
| imageAdvanced.maskUrl | string | 局部重绘的公开 PNG 遮罩 URL：透明区域重绘，白色区域保留 |
| imageAdvanced.aspectRatio | string | 自定义正整数宽高比，例如 5:4，覆盖顶层 aspectRatio |
| imageAdvanced.metadata | object | 最多 4096 字符的 JSON 对象，仅保存调用方提供的附加数据 |
| imageAdvanced.mode | enum | generate / edit；generate 生成；edit 图片编辑，编辑至少需要一张参考图 |
| imageAdvanced.version | enum | 8.2 / 8.1 / 7 / 6.1 / 6 / 5.2 / 5.1；默认 8.2；niji 需选择 7 或 6 |
| imageAdvanced.renderQuality | enum | 0.25 / 0.5 / 1 / 2；渲染质量，与图片数量无关 |
| imageAdvanced.raw | boolean |  |
| imageAdvanced.tile | boolean |  |
| imageAdvanced.niji | boolean |  |
| imageAdvanced.draft | boolean |  |
| imageAdvanced.hd | boolean |  |
| imageAdvanced.contentFilter | boolean | 是否启用内容过滤；模型自身规则仍然适用 |
| imageAdvanced.stylize | number | 0–1000 |
| imageAdvanced.chaos | number | 0–100 |
| imageAdvanced.weird | number | 0–3000 |
| imageAdvanced.imageWeight | number | 0–3 |
| imageAdvanced.characterWeight | number | 0–100 |
| imageAdvanced.styleWeight | number | 0–1000 |
| imageAdvanced.depthWeight | number | 0–100 |
| imageAdvanced.stop | number | 10–100 |
| imageAdvanced.style | string |  |
| imageAdvanced.characterReference | string | 角色参考图片的公开 HTTP(S) URL |
| imageAdvanced.styleReference | string | 风格参考图片的公开 HTTP(S) URL |
| imageAdvanced.depthReference | string | 深度参考图片的公开 HTTP(S) URL |
| imageAdvanced.extra | string | 附加创作指令；仅允许文档列出的创作 flags |

图像操作通过 POST /api/v1/images/generations 提交。blend 使用 2–4 张 referenceUrls；edits 需要 prompt 和参考图；describe 在 task.results[].description 返回描述文本。放大、变体、缩放、平移、重塑和局部重绘填写 parentTaskId，按需要填写 index、direction、zoomRatio 或 operationId；省略重塑提示词继承父任务提示词。index 从 1 开始。

局部重绘先提交 action=inpaint，关联已放大的图像任务，冻结最大速度档位费用。查询 task.results[].awaitingInput=true 后，在 expiresAt 前使用同一个图像生成端点提交 action=modal、parentTaskId、可选 prompt、maskUrl 和 generationSpeed；返回同一个本站 taskId，不再次冻结。继续请求重复提交相同参数幂等，不同参数返回 409。确认超时只轮询原任务；成功按继续时选择的速度结算并释放差额，失败或过期退款。


提示词和 extra 支持 --ar、--aspect、--q、--quality、--style、--v、--version、--seed、--no、--s、--stylize、--c、--chaos、--w、--weird、--tile、--niji、--iw、--cw、--sw、--cref、--sref、--dref、--dw、--raw、--draft、--hd、--stop、--p、--profile。结构化参数优先；水印、路由、回调、内部标识和未知参数不开放。视频请参阅本站 Midjourney Video 文档。


## 图生图与图片直传

1. 携带本站 API Key 请求 POST /api/v1/reference-uploads/authorize，JSON 为 {"modelId":"midjourney","file":{"name":"reference.png","type":"image/png","size":12345}}。size 为真实文件字节数；支持 image/jpeg / image/png / image/webp，单张最多 5MB。

2. 向返回的 uploadUrl 发送 PUT，以文件原始字节为请求体，原样携带返回的 headers；此步不要携带本站 API Key。上传凭证在 expiresAt 前有效。

3. 携带本站 API Key 请求 POST /api/v1/reference-uploads/{uploadId}/complete，返回 id、mime、size。确认成功后再使用 id；重复确认返回 409。

4. 在生成或报价请求中加入 referenceImageIds 数组，最多 16 张；填写 prompt 描述修改要求。素材仅限本人使用，过期后重新上传。参考图数量与提示词还须满足所选高级操作的要求；可继续使用原有 referenceUrls。

生成接口为 POST /api/v1/images/generations；报价接口为 POST /api/v1/images/quote，两者使用相同参数和本站 API 售价。

```json
{
  "modelId": "midjourney",
  "prompt": "保留参考图构图，改为水彩风格",
  "referenceImageIds": [
    "确认上传后返回的素材 ID"
  ]
}
```


## 图像清晰度

imageSize 不传时默认使用该模型支持的最高 K 档，按对应尺寸售价计费；显式传入时使用指定档位。

## 报价

POST https://luocisheng.cn/api/v1/images/quote，参数与生成接口相同。estimatedPoints 是报价积分。

## 查询与下载

GET https://luocisheng.cn/api/v1/tasks/{taskId}
每 3–5 秒查询一次；task.images[].url 是本站相对图片地址，下载同样需要鉴权请求头。
settled 为 true 时 chargedPoints 是实际扣费；未结算时为 null。状态包括 queued、processing、succeeded、partial、failed。

## 重试与错误

网络超时复用同一 Idempotency-Key 和相同参数，避免重复创建任务或冻结积分。幂等键为 8–128 位字母、数字或 ._:-。修改参数返回 409；删除任务后原键不再提供防重保证。
有效 API Key 的模型查询、报价、提交、任务查询和下载不设请求频率上限。无效密钥的重复认证尝试仍有防滥用保护。
错误格式为 {"error":"错误说明","code":"ERROR_CODE"}。400 参数无效，401 密钥无效，402 积分不足，404 资源不可访问，409 幂等冲突，429 无效密钥认证尝试过于频繁，5xx 服务暂不可用。
