控制台 ↗
图像接口

MJ

悠船协议:图片生成、参考图与异步任务查询

接口

POSThttps://www.yunqiai.chat/v1/tob/diffusion
GEThttps://www.yunqiai.chat/v1/tob/job/{jobId}

密钥从 YOUCHUAN_API_KEY 环境变量读取,值为 YunQi API 密钥。生成请求的 model 可为 mj_imagineyouchuan-image,两个名称都可调用同一 MJ 接口;提示词字段为 text,版本参数放在 text 中。

HTTP 请求头
Authorization: Bearer <YOUCHUAN_API_KEY>
Content-Type: application/json
Accept: application/json

不使用 x-api-key、x-goog-api-key、x-youchuan-secret 或 x-youchuan-app。环境变量名称不是请求头。/v1/tob/subscribe 不用于生成图片。

密钥需要开通对应的 MJ 图片权限。创建密钥时选择包含目标能力的分组,避免使用仅包含文本模型的分组。

版本与质量

显式指定 --v 或 --niji,二者不同时使用。本接口未指定版本时默认 v7;不要套用 Midjourney 网站的默认版本。

版本参数--q 可用值说明
--v 5.1 / --v 5.2 / --v 60.25 / 0.5 / 1默认 1
--v 6.10.5 / 1 / 2默认 1
--v 71 / 2 / 4默认 1
--v 8 / --v 8.11 / 4默认 1
--v 8.21 / 2 / 3 / 4默认 1
--niji 5 / --niji 60.25 / 0.5 / 1默认 1
--niji 7不发送 --q不支持质量参数

--q 不是 OpenAI Images 的 quality=low/medium/high,也不是输出像素尺寸。质量参数不承诺每个画面的视觉效果逐档提升;请求受理或参数回显不能独立证明底层计算档位。

生成参数

以下参数均写在 text 末尾,参数前留空格,末尾不加逗号或句号。不要将 size、n、quality、aspectRatio、response_format 放进 JSON 请求体。text 长度为 1–8192 字符;v8 系列正文不超过 1024 字符,不含图片引用与参数。

参数取值说明
--ar W:H正整数比例,默认 1:1例如 16:9、9:16、4:3、2:3;不保证固定像素宽高。
--raw开关减少默认风格化;历史版本的兼容性不同。
--chaos0–100,默认 0结果变化程度。
--seed整数 0–4294967295随机种子;不保证跨版本或服务更新后逐像素复现。
--stylize / --s0–1000,默认 100风格化强度。
--weird / --w0–3000,默认 0非常规造型程度。
--no排除内容负向描述,不保证绝对排除。
--tile开关无缝平铺;不与 v7 draft 组合。
--fast / --turbo二选一快速 / 极速模式;本接口 v7、v8.1、v8.2 可用 turbo,费用以控制台为准。
--draft开关草图模式;本页示例使用 v7,完成后可执行 enhance。
--hd仅 v8.1 / v8.2原生 2K 档位,并非固定 2048×2048;尺寸随比例变化。
--exp0–100,默认 0v7 / v8.1 / v8.2 的实验性美学强度。

通用参数不代表每个历史版本都支持。V8.1/V8.2 的 SD 最大比例为 14:1、HD 为 4:1,含纵向对称比例。不要自动改变客户选定的模型、质量或模式重试。

组合约束

  • --fast 与 --turbo 不同时使用;niji 7 不发送 --q。
  • v7 的 --draft 不与 --tile、--oref 组合;--oref 不与 --q 4 组合。draft 请求不附加 --q 4,不据此承诺草图的质量档位。
  • --hd 仅用于 v8.1 / v8.2,不能追加到旧版本。
  • 结果数量以 urls 为准,不固定假设四张,不用 JSON 的 n 控制。
组合语法text 末尾
v7--v 7 --fast --q 1 --s 100 --ar 16:9
v8.1 HD--v 8.1 --fast --hd --q 4 --raw --ar 16:9
v7 draft--v 7 --fast --draft --ar 1:1
niji 7--niji 7 --fast --s 500 --ar 2:3

以上只展示语法,配置由调用方选择。操作类型与生成模式会影响费用,具体倍率见下节。

计费规则

MJ 按任务计费,不按返回图片数量直接相乘;二次操作创建的新任务另行计费。mj_imagine 与 youchuan-image 均按各自控制台定价及以下适用倍率计算。

任务费用 = 基础任务价格 × 操作倍率 × Turbo 倍率 × Draft 倍率 × HD 倍率。基础价格、币种与账户分组折扣以控制台为准;多个条件同时满足时,倍率相乘。

操作操作倍率
diffusion、reroll
variation、inpaint、remix、edit、upload-paint、retexture1.5×
upscale,type=01.5×
upscale,type=1
pan、outpaint、remove-background、enhance
参数条件附加倍率适用范围
Turbo 生效使用 Turbo 模式的任务;不与 --fast 同时发送。
v7 且 --draft 生效0.5×仅 diffusion。
v8.1 / v8.2 且 --hd 生效1.5×仅 diffusion。
不满足对应条件不附加该倍率。

例如普通 v7 生成为 1×、v7 draft 为 0.5×、v8.1/v8.2 HD 为 1.5×、HD 加 Turbo 为 3×,均相对于基础任务价格,并以参数组合可用为前提。v5 专用 upscale type=2/3 的价格单独查看控制台。

本规则没有为 --q 或 --ar 单独设置附加倍率,q4 不等于四倍费用。cost.fastCost、cost.feeCost 不直接当作客户币种金额;实际扣费及失败任务结算以控制台账单为准。

任务流程

提交后保存响应 id,用同一密钥查询任务。status=1 执行中,status=2 成功,status=3 失败。只有成功状态且存在有效 urls,才进入下载和后续操作。

JSON · 任务响应结构(费用数值仅为示例)
{
  "id": "TASK_ID",
  "status": 1,
  "comment": "执行中",
  "urls": [],
  "cost": {
    "fastCost": 1,
    "feeCost": 60
  }
}
结果处理
status=1每隔 5 秒查询同一任务;默认等待预算 6 分钟。
status=2检查 urls 与 audits,下载全部可用图片。
status=3停止查询,保存 comment、cost 与完整响应到受控业务日志。
HTTP 400 / 404参数错误 / 任务不存在或不可访问;停止轮询并核对请求。
HTTP 401 / 403停止自动轮询。先读错误正文:insufficient_user_quota 表示账号余额不足以预扣费;其他情况核对密钥、分组权限与任务归属。新建 Key 不会增加账号余额。
HTTP 429遵守 Retry-After,只重试原任务查询。
HTTP 500 / 502 / 503 / 504预算内延迟重试 GET,不重新 POST 生成。
未知状态 / 非 JSON 响应保留诊断,不显示为成功。

六分钟是客户端等待预算,不代表任务已取消或生成时长承诺。超时后保留 id 恢复查询;提交超时但没有 id 时先核对控制台或联系客服,不自动重复提交。

imageNo 从 0 开始,使用原始 urls 数组位置,不对过滤后的数组重新编号。图片二次操作返回新的任务 id,需要单独查询。

签名下载链接完整保留查询参数,及时保存文件。向存储地址下载时不附带 YunQi API 密钥。空链接和审核受限项不计为可用结果。

图片操作

以下路径前缀均为 /v1/tob/,方法为 POST。jobId 为已完成的源任务 ID,imageNo 为源图片编号。选填字段用问号标注。

路径请求字段用途与约束
/v1/tob/diffusionmodel、textmodel:mj_imagine 或 youchuan-image;文生图或 URL 参考图。版本与比例放入 text,例如 --v 7 --ar 3:2。
/v1/tob/variationjobId、imageNo、typetype=0 轻微变化,1 强烈变化。
/v1/tob/upscalejobId、imageNo、typetype=0 标准高清,1 创意高清;2 / 3 为 v5 的 2x / 4x。需匹配源版本。
/v1/tob/rerolljobId沿用原始生成参数重新生成。
/v1/tob/panjobId、imageNo、direction、scale、remixPrompt?direction:0 下、1 右、2 上、3 左;scale:1.1–3。
/v1/tob/outpaintjobId、imageNo、scale、remixPrompt?向周围扩图;scale:1.1–2。
/v1/tob/inpaintjobId、imageNo、mask、remixPrompt?按蒙版指定区域重绘。
/v1/tob/remixjobId、imageNo、remixPrompt、mode?修改提示词;mode=0 强变化(默认),1 弱变化。
/v1/tob/editjobId、imageNo、canvas、imgPos、remixPrompt、mask?设置输出画布、原图放置区域和编辑提示词。
/v1/tob/upload-paintimgUrl、mask、canvas、imgPos、remixPrompt使用可访问图片 URL 进行画布编辑。
/v1/tob/retextureimgUrl、remixPrompt基于参考图调整材质和风格;提示词版本不低于 6.1。
/v1/tob/remove-backgroundimgUrl移除图片背景。
/v1/tob/enhancejobId、imageNo仅用于 --draft 生成的源任务。

高级编辑和转绘的结果仅支持继续执行高清操作。不要将 GPT Images 的任务、图片索引或蒙版格式直接套入 MJ。

参考图与画布

单张或多张图片 URL 放在 text 开头,后接提示词;URL 必须能由服务端直接读取,不能是本机路径或需要登录的网页。不要使用裸 Base64 代替 URL。

JSON · 双参考图
{
  "model": "mj_imagine",
  "text": "IMAGE_URL_1 IMAGE_URL_2 A blue mug on a red table --iw 1 --ar 3:2 --v 7"
}
引用方式text 写法约束
普通垫图IMAGE_URL_1 IMAGE_URL_2 描述 --iw 1 --v 7多张 URL 以空格分隔;影响内容、构图和色彩。v6/v6.1/v7/v8.1/v8.2 的 iw 为 0–3,niji 7 为 0–2。
风格参考描述 --sref STYLE_URL_1 STYLE_URL_2 --sw 100 --sv 6 --v 7sw=0–1000,默认 100;参考风格,不保证主体身份。v7 的 sv 为 1–6;v6.1/niji 6 为 1–4;v8.1/v8.2 只用 6。
角色参考描述 --cref PERSON_URL --cw 100 --v 6.1仅 v6、v6.1、niji 6;cw=0–100,默认 100。低权重偏向脸部,高权重更多保留发型和服装。
万物引用描述 --oref OBJECT_URL --ow 200 --v 7仅 v7,一次一张;ow=1–1000,默认 100;不与 draft、q4 组合。

参考图使用 PNG、JPEG、WebP 或 GIF 的 HTTP(S) 直链。优先使用稳定公开地址;签名 URL 则需保留完整查询参数并覆盖任务读取时段。sv 是风格算法版本,不是主模型版本。参考图不是可编辑图层,不保证逐像素保留主体。

canvas 为编辑画布宽高,结果可能按模型规格缩放;imgPos 为原图在新画布中的宽高和左上角位置。mask.areas 的 width / height 为原图尺寸,points 按 x、y 成对排列。也可用同尺寸黑白蒙版 URL,白色为重绘区域。

JSON · 画布编辑
{
  "jobId": "SOURCE_TASK_ID",
  "imageNo": 0,
  "canvas": {
    "width": 1280,
    "height": 1024
  },
  "imgPos": {
    "width": 1024,
    "height": 1024,
    "x": 128,
    "y": 0
  },
  "remixPrompt": "Extend the white tabletop around the blue mug"
}

提交示例

JSON · POST /v1/tob/diffusion
{
  "model": "mj_imagine",
  "text": "现代东方建筑,清晨薄雾,电影级建筑摄影,无文字 --v 8.1 --fast --hd --q 4 --raw --ar 16:9"
}

完整 Python 客户端从 YOUCHUAN_API_KEY 读取密钥,先保存任务 id,再轮询和下载;支持按原任务恢复。JSON 示例中的图片 URL 和任务 ID 需替换成自己的实际值。

完整参数、各操作请求体与可恢复的 Python 示例

图片保存

任务完成后立即遍历 urls,保存为 mj-imagine-任务ID-原始序号.png。完整示例会实际编码为 PNG,并记录每张图片的下载结果;单张失败仍处理其他图片,恢复下载不再次生成。

悠船存储说明的上游默认留存为 30 天;这不是签名 URL 的有效期或永久存储承诺。客户应自行保存文件,下载存储链接时不要附带 API 密钥。

YunQi AI 开放平台文档 · 客户接入与参数参考文档更新于 2026-09-14 · v1.0.11