API 文档/Midjourney

图像生成 · API v1

Midjourney 生图 API

通过 Midjourney 生成图片。本页列出本站当前支持的参数、默认配置和完整调用示例。

POST/api/v1/images/generations
提交成功返回 taskId,不代表图片已生成。每 3–5 秒查询一次任务,图片下载也需携带 API Key。
默认配置参考:0.06 积分。实际消耗以提交前报价和任务结算为准。

快速开始:第一次生成图片

  1. 准备账户与密钥

    登录后在开发者控制台创建 API Key,并确认账户有足够积分。保存完整密钥,关闭后无法再次查看。

  2. 选择模型与参数

    在侧边栏选择一个模型,复制该页的请求示例。将 YOUR_API_KEY 替换为自己的密钥,修改 prompt 为画面描述。先使用示例默认参数和一张图片。

  3. 确认积分报价

    把相同请求发送到 POST /api/v1/images/quote,查看返回的 estimatedPoints。报价不生成图片,也不冻结积分。

  4. 提交生成任务

    发送到 POST /api/v1/images/generations。每次新任务更换 Idempotency-Key;返回 HTTP 202 后保存 taskId,此时图片仍在生成中。

  5. 查询并下载图片

    每 3–5 秒请求一次 GET /api/v1/tasks/{taskId}。将路径中的占位符替换为刚才的任务 ID。任务完成后读取 task.images[].url,拼接本站域名并携带同一密钥下载。

请求与响应示例在桌面端右侧展示,手机端位于参数说明之后。遇到报错?查看常见错误处理。

OpenAI 兼容文生图

客户端的 Base URL 填 https://luocisheng.cn/api/v1,使用本站 API Key,模型填本站模型 ID。仍调用 POST /api/v1/images/generations,以 model 字段提交。成功后直接读取 data[].b64_json。

{
  "model": "midjourney",
  "prompt": "一只坐在窗边的猫,柔和的自然光",
  "n": 1
}

请关闭客户端自动重试,并为每次新生成传入独立的 Idempotency-Key。生成等待最多 120 秒;超时后可查询错误中的 task_id,或复用原键及原参数。图片编辑请向 POST /api/v1/images/edits 提交 multipart 表单,使用 image 或 image[] 上传参考图,模型须支持图生图。文生图和图片编辑均可用 stream=true 接收最终 SSE 事件;流式仅支持一张结果,不提供过程预览或遮罩编辑。

创建与使用密钥

  1. 进入开发者控制台的 API 密钥页面,创建密钥并设置便于识别的名称。
  2. 复制完整密钥并保存在自己的服务端环境变量中;页面只展示一次完整密钥。
  3. 在每次 API 请求中携带下面的鉴权头,包括任务查询和图片下载。
  4. 密钥不再使用或意外泄露时,在开发者控制台撤销,并为自己的应用更换新密钥。

所有调用使用请求头 Authorization: Bearer YOUR_API_KEY,JSON 请求还需 Content-Type: application/json。请在自己的服务端使用密钥,不要放入网页、公开代码或 URL。

API Key 只授予图像和视频生成接口访问权限。撤销立即影响后续请求;同账户其他有效密钥仍可查询已提交的 API 任务。

选择模型与请求参数

侧边栏模型文档列出各模型的可用选项。modelId 使用本站业务标识,不要用展示名称替代;也可以携带密钥调用 GET /api/v1/models 获取当前账户可用模型。

以下选项由 Midjourney 的当前能力配置生成。 支持参考图的图片模型可先直传图片,再通过 referenceImageIds 进行图生图;视频接口支持文字和参考图片输入。参考视频、参考音频、视频编辑和回调暂未开放,具体参数见各视频模型文档。

modelIdstring · 必填

固定为 midjourney

promptstring · 按操作填写

描述要生成的画面

numImagesinteger · 可选

示例值为 1;实际可用数量和输出规则由模型决定

aspectRatiostring · 可选

auto / 1:1 / 9:16 / 16:9 / 3:4 / 4:3 / 2:3 / 3:2 / 1:2 / 2:1 / 9:21 / 21:9;默认 auto

qualitystring · 可选

0.25 / 0.5 / 1 / 2;默认 1

negativePromptstring · 可选

说明希望避免的画面元素

seedinteger · 可选

随机种子,具体有效范围由模型校验

referenceImageIdsstring[] · 可选

直传并确认后返回的本人素材 ID,最多 16 张,每张最多 5MB;不传时为文生图。可与 referenceUrls 配合使用,两种输入合计不超过上限;高级操作还须满足对应规则。

generationSpeedstring

relax / fast / turbo;默认 relax,影响报价

referenceUrlsstring[]

最多 16 张公开 HTTP(S) 参考图 URL

imageAdvanced.actionenum

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.dimensionsenum

SQUARE / PORTRAIT / LANDSCAPE

imageAdvanced.directionenum

left / right / up / down

imageAdvanced.indexnumber

1–4;图像操作选择四宫格第 1–4 张;视频为 0–3

imageAdvanced.generationIndexnumber

1–100;关联任务的第几次生成请求,从 1 开始

imageAdvanced.repeatnumber

2–40;原生重复参数 2–40;按请求报价,结果数量由模型决定

imageAdvanced.zoomRationumber

0–100

imageAdvanced.parentTaskIdstring

本站 Midjourney API 任务 ID;只能引用本人任务

imageAdvanced.operationIdstring

父任务 results[].operations[].id;用于精确选择高级放大等操作

imageAdvanced.maskUrlstring

局部重绘的公开 PNG 遮罩 URL:透明区域重绘,白色区域保留

imageAdvanced.aspectRatiostring

自定义正整数宽高比,例如 5:4,覆盖顶层 aspectRatio

imageAdvanced.metadataobject

最多 4096 字符的 JSON 对象,仅保存调用方提供的附加数据

imageAdvanced.modeenum

generate / edit;generate 生成;edit 图片编辑,编辑至少需要一张参考图

imageAdvanced.versionenum

8.2 / 8.1 / 7 / 6.1 / 6 / 5.2 / 5.1;默认 8.2;niji 需选择 7 或 6

imageAdvanced.renderQualityenum

0.25 / 0.5 / 1 / 2;渲染质量,与图片数量无关

imageAdvanced.rawboolean

imageAdvanced.tileboolean

imageAdvanced.nijiboolean

imageAdvanced.draftboolean

imageAdvanced.hdboolean

imageAdvanced.contentFilterboolean

是否启用内容过滤;模型自身规则仍然适用

imageAdvanced.stylizenumber

0–1000

imageAdvanced.chaosnumber

0–100

imageAdvanced.weirdnumber

0–3000

imageAdvanced.imageWeightnumber

0–3

imageAdvanced.characterWeightnumber

0–100

imageAdvanced.styleWeightnumber

0–1000

imageAdvanced.depthWeightnumber

0–100

imageAdvanced.stopnumber

10–100

imageAdvanced.stylestring

imageAdvanced.characterReferencestring

角色参考图片的公开 HTTP(S) URL

imageAdvanced.styleReferencestring

风格参考图片的公开 HTTP(S) URL

imageAdvanced.depthReferencestring

深度参考图片的公开 HTTP(S) URL

imageAdvanced.extrastring

附加创作指令;仅允许文档列出的创作 flags

图生图与图片直传

  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。

action 放在 imageAdvanced 中。blend 需要 2–4 张参考图;edits 需要提示词及参考图;describe 返回 task.results[].description。

后续操作填写本站 parentTaskId,图像 index 为 1–4。使用 task.results[].operations[].id 作为 operationId 可选择高级放大等精确操作;原始操作指令不公开。

局部重绘先提交 action=inpaint,按最高速度档预扣。查询到 task.results[].awaitingInput=true 后,在 expiresAt 前再次向图像生成接口提交 action=modal、原本站 parentTaskId、可选提示词、maskUrl 与 generationSpeed。返回原任务,不再次冻结。透明遮罩区域重绘,白色区域保留;不提供遮罩则扩图。相同继续参数可重试,修改已提交参数返回 409;确认超时只查询原任务。成功按所选速度结算差额,失败或过期退还预扣。

每个 numImages 单位代表一次请求,通常交付 1–4 张图;repeat 可重复生成。水印、内部任务标识、路由及原始回调均不开放。完整可用创作指令与例子见本页 Markdown 文档。

报价与 API 积分

详细价格表

6 个价格档位
Midjourney API 调用价格
创作模式生成速度API 积分 / 次
图片生成relax0.06
图片生成fast0.076
图片生成turbo0.13
图片编辑relax0.076
图片编辑fast0.076
图片编辑turbo0.13

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

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

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

GET /api/v1/balance 返回 API 账面余额 balance、冻结积分 held 与可用积分 available。API 钱包初始为零,支持在开发者控制台自定义充值。

向 POST /api/v1/images/quote 发送与生成接口相同的参数,获得 estimatedPoints。报价不创建任务、不冻结积分。

1 美元 = 1 API 积分,支持小数。API 使用独立报价和 API 积分,不享受网站会员折扣。请在开发者控制台单独充值,网站原有余额保留且不互通。失败退款规则仍按模型规则执行。提交时冻结报价积分,结束后结算实际消耗。未结算时 chargedPoints 为 null;结算后为实际扣除的积分,失败是否收费沿用网站规则。

查询任务与下载图片

queued 表示排队,processing 表示生成中;这两种状态继续等待。succeeded 表示成功,partial 表示部分成功,failed 表示失败,进入这三种状态后停止轮询。下载前检查 task.images 是否有结果;没有图片时查看错误说明。

请求 GET /api/v1/tasks/{taskId}。任务状态可能为 queued、processing、succeeded、partial 或 failed。部分成功时仍可能返回图片,积分以 settled 和 chargedPoints 为准。

task.images[].url 是本站的相对路径,拼接本站域名后携带相同鉴权请求头下载。API 只能查询当前账户自己的 API 任务;全部创作记录和消耗可在任务日志与积分流水查看。

幂等重试与调用规则

每个新任务使用独立的 Idempotency-Key。网络超时重试时保持幂等键和参数不变,避免重复创建或冻结积分;更改参数会返回 409。幂等键为 8–128 位字母、数字或 ._:-,同账户多个密钥共用幂等范围。删除任务后不能依赖原键防止重复提交。

API Key 接入不受网页会员等级的任务并发上限限制,可同时提交多个任务;任务实际完成时间取决于排队与处理进度。

有效 API Key 的模型查询、报价、提交、任务查询和图片下载不设请求频率上限。建议每 3–5 秒查询一次生成中的任务,避免无效轮询;实际完成时间取决于排队与处理进度。无效密钥的重复认证尝试仍受防滥用保护。

错误处理

400

参数无效,请检查模型能力与字段

401

密钥无效或已撤销

402

积分不足

404

任务或图片不存在,或不属于当前账户

409

幂等键对应的参数冲突

429

无效密钥认证尝试过于频繁

5xx

服务或图片暂不可用,稍后重试

错误响应统一包含 error 与 code。遇到提交超时,先使用原幂等键重试,避免重复付费。