Midjourney API
概述
MetaChat 面向合作伙伴提供开放平台 API,提供包括 Midjourney 等 AIGC 模型的基础能力和扩展特性,供合作伙伴集成和二次开发。本手册描述开放平台的接入方法、各类 API 的调用方法和注意事项,供合作伙伴的服务端开发人员参考。
接入鉴权
MetaChat 开放平台提供服务端 HTTPS RESTful API 接口,服务端基础 URL 和 API 前缀如下:
调用 MetaChat 开放平台 API 时,需使用 MetaChat 为合作伙伴分配的应用 ID(App ID)和鉴权密钥(API Key)进行合法鉴权,具体方法:
在 HTTP Header 中填写 X-App-ID 字段,标识合作伙伴的应用 ID(App ID)。
在 HTTP Header 中填写标准的 Authentication Bearer 字段,标识合作伙伴的鉴权密钥(API Key)。
开放平台 API 参数格式为 JSON,请在 HTTP Header 中标识相应的 Content-Type,并注意请求参数的填写和响应参数的解析。以 curl 命令行工具调用为例:
异常处理
MetaChat 开放平台 API 有如下两类异常返回:
服务级或应用级,利用 HTTP 标准的 400/500 系列 status code 返回异常,此时无需解析返回参数。
401 -
authentication_error
: 鉴权失败,通常是 App ID 或 API Key 未填写或填写错误。403 -
permission_error
: 授权失败,通常是 App ID 或 API Key 已过期或已停用。404 -
not_found_error
: 请求资源不存在,通常是 API path 填写错误。429 -
rate_limit_error
: 限流,通常是 API 调用太频繁。500 -
internal_error
: MetaChat 开放平台内部错误。
API 级,此时 HTTP status code 为 200,具体错误信息在返回参数中描述。
status
: API 调用结果,string 类型,Success 表示成功,Fail 表示失败。message
:描述信息,string 类型,通常用于 Fail 时的错误信息。data
: API 返回数据,object 结构,具体定义参见后文 API 描述,当 Fail 时 data 为空。
示例:
访问限流
为防止滥用和攻击,开放平台 API 对调用方的访问频次按照如下配额进行限流:
Midjourney API:50 RPM(每分钟 50 次)。
当超出配额后,开放平台将返回 HTTP status code 429,调用方可据此进行主动流控,稍后再试。
API 说明
Midjourney API
提供 Midjourney 官方支持的各类图片生成、变换、描述和融合能力,通常用于灵活多变的单一图片生成场景。
由于图片生成需要较长的 AI 服务时间,各图片生成和变换类 API 只负责创建和提交各类绘图任务,任务执行进度和最终生成的图片结果,需要调用后文描述的「查询结果」API 获取。
图片生成
POST /midjourney/imagine
说明:根据提示词、参数和参考图,生成 1 张四宫格图片。
请求参数(POST body)
prompt
: 提示词,string 类型,必填,支持中英文。提示词末尾可携带自定义参数(例如 --style raw --ar 1:1 --v 6 等),自定义参数会覆盖 params 中对应参数,未提供自定义参数时,以 params 参数为准。model
: 模型版本,string 类型,取值mj-v6
(Midjourney V6,默认值)、mj-niji-v6
(Niji 6)。params
: 绘图参数,object 类型aspect
: 图片比例,string 类型,取值 1:1(默认),2:3,3:2,3:4,4:3,16:9,9:16 等。stylize
: 风格化程度,number 类型,取值 1 - 1000(默认 100)。quality
: 画质,number 类型,取值 0.25(普通),0.5(标清),1(高清,默认)。chaos
: 混乱程度,number 类型,取值 0 - 1000(默认 0)。style
: 绘图风格,string 类型,取值 raw。seed
: 随机种子,number 类型,取值 0 - 4294967295 间的整数。no
: 排除关键词列表,string 列表,支持中英文。iw
: 参考图权重,当参考图用于 Image Prompt 时有效,number 类型,取值 0 - 3(默认 1)。fast : 高速模式开关,boolean 类型,取值 true(高速模式 Fast Mode)、false(普通模式 Relax Mode),默认 true。高速模式出图速度更快、更稳定,消耗 API 元点略高。
images
: 参考图参数,array 类型,可包含 1 - 3 张参考图(JPG/PNG/WebP 格式),每张参考图定义为 object 类型url
: 图片完整 URL,string 类型,必填,需确保访问该 URL 能正常下载图片文件。type
: 图片 MIME 类型,string 类型,必填,取值 image/png,image/jpg,image/jpeg,image/webp。size
: 图片文件大小,number 类型,图片文件大小(bytes)。w
: 图片宽度,number 类型。h
: 图片高度,number 类型。image_prompt
: 参考图是否用于 Image Prompt,boolean 类型。sref
: 参考图是否用于风格一致性 sref,boolean 类型。cref
: 参考图是否用于角色一致性 cref,boolean 类型。sw
: 参考图用于风格一致性 sref 时的权重,number 类型,取值 0 - 1000(默认 100)。cw
: 参考图用于角色一致性 cref 时的权重,number 类型,取值 0 - 100(默认 100)。
请求参数示例
返回数据(data)
id
: 成功创建的绘图任务 ID,string 类型,可用于后续各类图片变换和绘图结果查询。prompt
: 最终生效的绘图提示词,string 类型,包括绘图描述、完整参数和参考图片等信息。model
: 最终生效的模型版本,同请求字段定义。
返回数据示例
图片拆分
POST /midjourney/separate
说明:从生成的四宫格图片中拆分放大出指定的一张。
请求参数(POST body)
id
: 绘图任务 ID,string 类型,必填,该任务由「图片生成」API 创建并生成完毕。index
: 需拆分的图片索引,number 类型,必填,取值 1(左上 U1)、2(右上 U2)、3(左下 U3)、4(右下 U4)
请求参数示例
返回数据(data)
id
: 成功创建的绘图任务 ID,string 类型,可用于后续各类图片变换和绘图结果查询。
返回数据示例
图片微调(四宫格)
POST /midjourney/variation
说明:以四宫格图片中的一张图片为参考,微调变换后生成新的四宫格图片。
请求参数(POST body)
id
: 绘图任务 ID,string 类型,必填,该任务由「图片生成」API 创建并生成完毕。index
: 微调变化需参考的图片索引,number 类型,取值 1(左上 V1)、2(右上 V2)、3(左下 V3)、4(右下 V4)。
请求参数示例
返回数据(data)
id
: 成功创建的绘图任务 ID,string 类型,可用于后续各类图片变换和绘图结果查询。
返回数据示例
图片重绘
POST /midjourney/reroll
说明:针对已生成的四宫格图片进行整体重绘(保留原提示词和参数不变),生成新的四宫格图片。
请求参数(POST body)
id
: 绘图任务 ID,string 类型,必填,该任务由「图片生成」API 创建并生成完毕。
请求参数示例
返回数据(data)
id
: 成功创建的绘图任务 ID,string 类型,可用于后续各类图片变换和绘图结果查询。
返回数据示例
图片高清
POST /midjourney/upscale
说明:针对拆分后的单张图片进行高清放大。
请求参数(POST body)
id
: 绘图任务 ID,string 类型,必填,该任务由「图片拆分」API 创建并生成完毕。type
: 图片放大类型,string 类型,取值 subtle(2 倍原图高清,保留原图细节,默认值,mj-v6 和 niji-6 适用)、creative(2 倍增强高清,添加新细节,mj-v6 和 niji-6 适用)、2x(2 倍原图高清,mj-v5.2 和 niji-v5 适用)、4x(4 倍原图高清,mj-v5.2 和 niji-v5 适用)
请求参数示例
返回数据(data)
id
: 成功创建的绘图任务 ID,string 类型,可用于后续各类图片变换和绘图结果查询。
返回数据示例
图片微调(单图)
POST /midjourney/vary
说明:针对拆分或高清放大后的单张图片进行微调变化。
请求参数(POST body)
id
: 绘图任务 ID,string 类型,必填,该任务由「图片拆分」或「图片高清」API 创建并生成完毕。type
: 图片变化类型,string 类型,取值 subtle(轻微变化)、strong(强烈变化)
请求参数示例
返回数据(data)
id
: 成功创建的绘图任务 ID,string 类型,可用于后续各类图片变换和绘图结果查询。
返回数据示例
图片变焦
POST /midjourney/zoomout
说明:针对拆分后的单张图片进行画面变焦(1.5 倍和 2 倍)。
请求参数(POST body)
id
: 绘图任务 ID,string 类型,必填,该任务由「图片拆分」API 创建并生成完毕。type
: 画面变焦倍数,string 类型,取值 1.5x(1.5 倍)、2x(2倍)
请求参数示例
返回数据(data)
id
: 成功创建的绘图任务 ID,string 类型,可用于后续各类图片变换和绘图结果查询。
返回数据示例
图片平移
POST /midjourney/pan
说明:针对拆分后的单张图片进行画面平移扩展。
请求参数(POST body)
id
: 绘图任务 ID,string 类型,必填,该任务由「图片拆分」API 创建并生成完毕。type
: 画面平移方向,string 类型,取值 left(向左)、right(向右)、up(向上)、down(向下)
请求参数示例
返回数据(data)
id
: 成功创建的绘图任务 ID,string 类型,可用于后续各类图片变换和绘图结果查询。
返回数据示例
图片描述
POST /midjourney/describe
说明:提供 1 张图片 (JPG/PNG/WebP),模型生成 4 个可能的提示词。生成的提示词有启发性和暗示性,通常用于来探索新词汇和美学效果,不能用于精确重现已上传的图片。
请求参数(POST body)
image
: object 类型,必填,参数如下:url
: 图片完整 URL,string 类型,必填,需确保访问该 URL 能正常下载图片文件。type
: 图片 MIME 类型,string 类型,必填,取值 image/png,image/jpg,image/jpeg,image/webp。size
: 图片文件大小,number 类型,图片文件大小(bytes)。w
: 图片宽度,number 类型。h
: 图片高度,number 类型。
请求参数示例
返回数据(data)
id
: 成功创建的图片描绘任务 ID,string 类型,可用于后续结果查询。
返回数据示例
图片融合
POST /midjourney/blend
说明:提供 2 - 5 张图片 (JPG/PNG/WebP),模型根据每张图片的概念和美学,合并生成 1 张新的四宫格图片。
请求参数(POST body)
images
: 参考图参数,array 类型,必填,可包含 2 - 5 张原图,每张原图定义为 object 类型。url
: 图片完整 URL,string 类型,必填,需确保访问该 URL 能正常下载图片文件。type
: 图片 MIME 类型,string 类型,必填,取值 image/png,image/jpg,image/jpeg,image/webp。size
: 图片文件大小,number 类型,图片文件大小(bytes)。w
: 图片宽度,number 类型。h
: 图片高度,number 类型。
dimension
: 融合生成的图片比例,string 类型,取值 square(1:1 正方形宽高比,默认值),landscape(3:2 横向宽高比),portrait(2:3 纵向宽高比)。
请求参数示例
返回数据(data)
id
: 成功创建的绘图任务 ID,string 类型,可用于后续各类图片变换和绘图结果查询。
返回数据示例
查询结果
GET /midjourney/result/{id}
说明:查询绘图任务的执行进度和结果,调用方可定时轮询(考虑绘图速度,建议周期不低于 5 秒)。
请求参数(HTTP GET params)
id
: 各类图片生成或变换 API 中成功创建的绘图任务 ID。
返回数据(data)
id
: 绘图任务 ID,string 类型status
: 任务状态,string 类型,取值 submitted(排队中)、in_progress(执行中,具体进度参见 progress)、failure(执行失败,具体原因参见 fail_reason)、success(执行成功)。progress
: 任务进度(百分比),number 类型,0 - 100。fail_reason
: 任务失败原因,string 类型,任务执行失败后返回。image_url
: 最终生成的图片 URL,string 类型,任务执行成功后返回。image_description
: 图片描绘任务最终生成的提示词,string 类型,任务执行成功后返回。total_points
: 任务消耗的元点,number 类型,任务执行成功后返回。prompt
: 原始提示词,string 类型。revised_prompt
: 最终生效的绘图提示词,string 类型,包括绘图描述、绘图参数、参考图和模型版本等信息。model
: 最终生效的模型版本,string 类型,详见「图片生成」API 描述。command
: 绘图任务指令,string 类型。params
: 最终生效的绘图参数,object 类型,详见「图片生成」API 描述。images
: 原始参考图列表,array 类型,详见「图片生成」API 描述。submitted_at
: 任务提交时间,number 类型,UNIX 时间戳(秒)。started_at
: 任务启动时间,number 类型,UNIX 时间戳(秒)。finished_at
: 任务结束时间,number 类型,UNIX 时间戳(秒)。
返回数据示例
Last updated