Claude Opus 5.5 已在 SeedRouter 上线

Midjourney V8.2 API:提交图像任务并轮询结果

提交 Midjourney V8.2 图像任务,保存任务 ID,用 Python 轮询结果,并了解版本参数、图像操作与实时计价方式。

以 Markdown 阅读

接入 Midjourney V8.2 API,需要明确版本、有效的图像请求,以及读取已完成任务的方法。在 SeedRouter 中,向 /v1/images/generations 提交请求,保存返回的任务 ID,再轮询 /v1/tasks/{id}。提交成功只表示任务已受理;图像会出现在完成后的结果中。

本文遵循 SeedRouter 请求契约。2026 年 10 月 18 日的一次付费检查完成了 V8.2 快速请求,交付四张 1024 × 1024 图像。下方人像是其中一张。模型页 提供 Playground 与实时价格;API 参考文档 则区分受支持的输入与仍需验证的组合。[1]

Midjourney V8.2 API 输出:一名红发女子穿着奶油色毛衣站在海边悬崖上

从明确指定版本的 Midjourney V8.2 API 请求开始

使用完整模型 ID:midjourney-v8.2。SeedRouter 要求明确指定模型,不要缩写成 midjourney,也不要根据其他界面中的账号设置推断版本。请将模型与提交的请求一起记录。[1]

准备服务端 API 密钥,以及一条结果便于检查的简短提示词。首次请求先不加参考图或父图操作,以便测试基本流程。下面的请求生成了文中展示的人像图组,使用快速模式,并开启额外内容检查:

{
  "model": "midjourney-v8.2",
  "prompt": "Cinematic portrait of a young woman with freckles and wind-swept auburn hair, wearing a cream cable-knit sweater, laughing on a coastal cliff at golden hour, warm rim light, shallow depth of field, 85mm film photograph",
  "speed": "fast",
  "nsfw_check": true
}

最小请求只需 model 和 prompt;省略速度时默认为快速模式。若添加 size,请填写 "16:9" 这样的宽高比,而非 WIDTHxHEIGHT 像素尺寸。通用图像客户端预设发送的 1024x1024、quality: "high" 或任意 n 均不符合此模型契约。请根据 Midjourney 字段表调整请求体,不要原样套用其他模型的设置。

只提交一次,再轮询已保存的任务 ID

可下载的 Python 示例 使用标准库,将密钥保存在环境变量中,并把受理的任务 ID 写入本地文件。提交与轮询使用独立命令,因此可以恢复读取,而不创建新的图像任务。

export SEEDROUTER_API_KEY='your-server-side-key'
python3 midjourney-v8-2.py submit request.json --state mj-task.json
python3 midjourney-v8-2.py poll --state mj-task.json

将上面的 JSON 请求保存为 request.json。在本地环境中将示例密钥替换为自己的密钥;不要放进浏览器代码包或提交到仓库。测试本地部署时,请将示例的 SEEDROUTER_BASE_URL 设为该部署的 /v1 基础 URL。

示例在提交时拒绝覆盖已有状态文件,也不会在连接失败后自动重复 POST。响应丢失时,应用可能无法确定任务是否已受理。决定重新提交前,请先检查任务历史。

轮询则不同:它读取已存在的任务。示例会在任务完成或失败时停止;若仍在处理中,则报告等待已达上限。等待上限只是客户端的观察,不能证明需要重新生成任务。

按操作类型读取结果结构

已完成的图像操作会在 output.data 中返回 URL。应遍历这个数组,不要假设始终有四项。图像生成、选择单张图像、图像描述和编辑输入步骤可能返回不同类型的输出。

结果字段应用应如何处理
status区分处理中、已完成与失败的任务
output.data[].url显示或保存每张交付的图像
output.grid将交付的网格标为网格;一个文件可能包含多个图像选项
output.text显示返回文字,不假设一定有四条建议或使用英文
output.seed存在时记录,不要求每次结果都包含它
output.awaiting_input继续文档规定的编辑输入流程

即使读取任务的 HTTP 请求成功,应用也应将失败的任务按失败处理。HTTP 成功表示状态查询已得到响应,不代表所请求的图像已生成。

当 output.grid 为 true 时,一个 URL 中包含整张网格。不要根据该文件自行编造四个独立 URL。后续选择操作使用网格中从 1 开始的图像位置;URL 数量并不等于可选图像数量。

示例会将完成的输出打印为 JSON。应用可以围绕返回图像添加存储、缩略图与选择控件。请将任务 ID 与结果保存在一起,以便后续操作引用正确的父任务。

转换原生参数时保留冲突信息

此接入支持结构化字段与受支持的原生提示词标记,优先级为 结构化字段、extra、prompt 中的标记。显式提供的零值与 false 值会保留。

例如,提示词包含 --stylize 700,同时设置 "stylize": 0 时,会采用显式的零值。这对单独发送控件值的 UI 很有用,但若应用在不同位置拼装提示词和 JSON,也容易产生意外。每项设置最好只有一个来源。

对于 SeedRouter V8.2 请求,quality 在兼容组合中接受 0.25、0.5、1 或 2。质量与 hd 是独立输入:设置质量并不会选择高清。添加两者或其他参考控件之前,请检查当前组合限制;文档列出输入,并不代表它在所有版本上的效果均已确定。Raw 与这两者也不同,Raw 指南 会解释这些区别。[1]

此接入会丢弃未知 JSON 字段,但会拒绝未知原生标记。不要把请求被接受当成无关额外 JSON 字段影响了输出的证据。请核对文档字段名,并在测试记录中保存完整的原始请求体。

将父图操作与原任务绑定

后续操作请使用 SeedRouter 的 parent_task_id。依赖任务的操作仍绑定原始执行上下文。若该上下文不可用,操作会失败,而不会在其他地方另建父任务。父任务必须属于同一账号、使用同一模型,并且仍可用于所请求的操作。公开图像索引从 1 开始。

选择图像与创意放大是不同操作。select 结果不应被描述为提升了分辨率。同样,变化、重混与官方 V8.2 Edit Model 是各有要求的独立功能。

当前接入没有将新版 Edit Model 作为经过验证的 API 操作开放。不要用旧版局部重绘请求替代,再假定两者行为相同。编辑指南 说明了可用替代方案与已验证的 V6.1 蒙版编辑流程;API 参考文档 记录了已实现的操作限制。

按任务估价,不要数缩略图

在此接入的计价契约中,一次完成的生成算一个任务。从网格中选择已有图像,不会创建另一个收费生成任务。进入编辑输入阶段不会再加收一次生成费用;最终 modal 操作才是收费步骤。生成四张图像并不自动等于四个分别计费的任务。10 月 18 日的 V8.2 草稿检查在一个任务中返回了 24 张图像,因此返回图像数不是可靠的计价公式。

请使用所选版本、操作、速度与模式的当前费率。父图操作可能继承设置,因此价格应根据实际生效请求计算,而非猜测默认值。模型页读取配置费率,不会在这篇教程中写死美元金额。

验收测试时,请记录请求、任务 ID、最终状态、输出数量与账号的实际扣费。编译成功或模拟 HTTP 测试都不能证明这些运行时事实。SeedRouter 对失败的请求不收费。

常见问题

同一把 API 密钥可以用于前端 JavaScript 吗?

请将密钥保存在服务器上。让浏览器调用经过认证的应用接口,再由该接口使用服务端密钥提交请求。

拿到任务 ID 就表示图像已就绪吗?

不是。持续读取任务直到状态为完成或失败,再处理相应结果。开始轮询前请先保存 ID。

超时后应该重新生成吗?

不应自动重新生成。保留已知任务 ID,并检查已有任务。连接超时或客户端等待超时,不能证明原始提交被拒绝。

父图操作可以更换版本吗?

此接入要求与父任务使用同一模型。想评估其他版本时,请另开一次生成。

开始接入 Midjourney V8.2 API 时,先发送一次明确的请求并保存任务 ID。确认交付结果与扣费后,再添加参考图或串联图像操作。

来源

契约与执行证据核对于 2026 年 10 月 18 日。文中图像来自付费接入检查,不是通用模型基准测试。

[1] SeedRouter Midjourney API 参考文档

[2] 模型版本设置与当前价格