跳转到主要内容
新建任务每个能力一个接口:POST /midjourney/{接口名};加工已有的图统一调 POST /midjourney/action,用 action 指定做什么。提交后都返回任务 ID,用 GET /midjourney/task/{task_id} 查询结果。还没调过的话,先看 快速上手。

全部接口

所有接口都接受 notify_hook(任务结束后推送结果的地址)。除识图外都接受 speed(relax / fast / turbo,默认 fast)。

生成

加工已有的图

统一调 POST /midjourney/action:action 填下表里的一个,再传 task_id(要加工的任务)。作用在某一张图上的,还要传 index:第几张,从 1 开始;任务只有一张图时可以不传。
zoom、pan、inpaint 不传 prompt 时沿用原任务的提示词;传了但没写版本时,补上原任务的版本。

视频

用自己的图做首帧调 POST /midjourney/video;用某个任务里的图做首帧、延长视频都算加工,调 POST /midjourney/action。 视频的参数见下文 视频。

后续操作

查询结果里的 actions 列出这个任务接着能做的加工(即 /midjourney/action 的 action 取值),规则与 Midjourney 网页端一致: 几种图有额外限制:
  • V8 高清图(--hd):不能放大。扩图、平移、局部重绘按普通分辨率生成。
  • V8.1 / V8.2 的草图有时一次出 24 张,这种草图批次只能变化、重塑、增强和重跑。
  • V8(--v 8):只能变化、重塑、做视频和重跑。
另外:
  • 只能加工自己账号下、已经成功的任务。任务还没完成时提交会返回 task_not_finished。
  • index 从 1 开始,最大是 images 的张数(视频任务是视频的个数)。
  • 个别图片没通过内容审核时,images 里对应位置是空字符串,其余图片的序号不变,这张图不能再加工。
  • 视频不能重跑,想重来就用同样的参数再调一次 video。

提示词参数

提示词原样交给 Midjourney,在 Midjourney 里能用的参数在这里都能用:--ar、--v、--niji、--s、--c、--w、--q、--seed、--no、--sref、--oref、--cref、--iw、--p、--raw、--tile、--draft、--hd 等。 几条需要知道的规则:
  • 速度:--relax、--fast、--turbo 会被读成 speed 参数,不会原样发出。两处都写时以 speed 参数为准。
  • 版本:不写版本时补上 --v 8.2(Midjourney 现在的默认版本)。
  • 不支持 --repeat(--r)和排列写法 {a, b}:它们会把一次请求变成多个任务,请分开提交。
  • 视频参数(--video、--motion、--bs、--loop、--end)只能在视频接口里用。
  • 参考图:提示词里的图片地址(开头的垫图、--sref、--cref、--oref 后面的地址)要能公网直接下载。地址后面的权重(如 ::2)不支持,会被去掉。
  • 提示词最长 6000 个字符(汉字、字母、空格、标点都算 1 个)。V8 系列的提示词正文(参数前面的文字)在 1024 个字符以内一定能用;更长的会先自动精简再生成,正常写的长描述多半没问题,重复堆砌的内容可能被拒,返回 400 The prompt is too long, shorten it to under 1024 characters and try again,不扣费,缩短到 1024 个字符以内即可。

图片输入

images、image、mask、end_image 都可以传公网能直接下载的图片地址,或 base64(带不带 data:image/png;base64, 前缀都可以)。
  • 支持 PNG、JPEG、GIF、WebP,单张不超过 20 MB。
  • 地址必须是公网地址,内网和需要登录的地址会被拒绝。
局部重绘的遮罩:一张黑白图,白色是要重画的区域,黑色保持不变;也可以用透明区域表示要重画的地方。尺寸可以和原图不同,会拉伸到原图尺寸,所以宽高比最好与原图一致。全白或全黑的遮罩会被拒绝,想整张重画请用 variation 或 remix。

视频

首帧有两种给法:
  • 用已生成的图:调 POST /midjourney/action,action 填 video,传 task_id + index。
  • 用你自己的图:调 POST /midjourney/video,传 image。
延长时调 POST /midjourney/action,action 填 video-extend,传视频任务的 task_id 和第几个视频 index。延长出来的视频沿用原视频的分辨率和个数,每次加约 4 秒,最多延长 4 次。 视频不支持 relax 速度。

计费

每次调用按次计费,失败自动退费。各能力按速度分档的单价见模型详情页的价格表,下面这些情况在对应速度的单价上再乘倍率。 速度:已经体现在价格表里,慢速是快速的 0.4 倍、极速是 2 倍;视频没有慢速,识图不分速度。 版本与画质(imagine、blend、edit、retexture,以及 reroll): 加工已有的图:
  • 对草图做变化、放大、扩图、平移、增强,都按完整质量生成,按 1 倍计费,不再打折。
  • 对 V8 高清图做变化 2 倍;remix 的新提示词带 --hd 也是 2 倍。
  • 扩图、平移、局部重绘总是 1 倍(高清图上按普通分辨率生成)。
  • 原样 reroll 沿用原任务的倍率;换了提示词就按新提示词算。
视频:模型详情页列的是 480p、一个视频的价格。resolution 为 720p 乘 3.2,batch_size 为 2 或 4 分别乘 2 或 4。video-extend 按原视频的分辨率和个数计价。

错误

错误响应统一是这个形状,HTTP 状态码与错误类型对应:

常见问题

能用,已经接好的不需要改。新接入建议用本文的接口:不用再从 buttons 里拼 custom_id,加工哪张图直接调 /midjourney/action,传 action、task_id 和 index;速度也改成了请求参数,不再依赖令牌设置。
index 从 1 开始,最大是这个任务 images 的张数(视频任务是视频的个数)。放大后的任务只有一张图,index 填 1 或者不填。
一组四张的草图可以直接放大,按完整质量计费。也可以先用 enhance 按完整质量重新生成一组,再挑一张放大。V8.1 / V8.2 一次出 24 张的草图批次不能放大,要先 enhance。
V8 的高清图(--hd)本身就是高分辨率,Midjourney 不提供再放大。可以直接变化、扩图或做视频。
可以。describe 同步返回,结果在 descriptions 里,是一段中文描述,拿去调 imagine 即可。