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沿用原任务的倍率;换了提示词就按新提示词算。
resolution 为 720p 乘 3.2,batch_size 为 2 或 4 分别乘 2 或 4。video-extend 按原视频的分辨率和个数计价。
错误
错误响应统一是这个形状,HTTP 状态码与错误类型对应:常见问题
以前用的 /mj/submit/* 接口还能用吗?
以前用的 /mj/submit/* 接口还能用吗?
能用,已经接好的不需要改。新接入建议用本文的接口:不用再从
buttons 里拼 custom_id,加工哪张图直接调 /midjourney/action,传 action、task_id 和 index;速度也改成了请求参数,不再依赖令牌设置。为什么加工时提示 index 超出范围?
为什么加工时提示 index 超出范围?
index 从 1 开始,最大是这个任务 images 的张数(视频任务是视频的个数)。放大后的任务只有一张图,index 填 1 或者不填。草图(--draft)能直接放大吗?
草图(--draft)能直接放大吗?
一组四张的草图可以直接放大,按完整质量计费。也可以先用
enhance 按完整质量重新生成一组,再挑一张放大。V8.1 / V8.2 一次出 24 张的草图批次不能放大,要先 enhance。为什么高清图的 actions 里没有 upscale?
为什么高清图的 actions 里没有 upscale?
V8 的高清图(
--hd)本身就是高分辨率,Midjourney 不提供再放大。可以直接变化、扩图或做视频。识图返回的描述能直接当提示词吗?
识图返回的描述能直接当提示词吗?
可以。
describe 同步返回,结果在 descriptions 里,是一段中文描述,拿去调 imagine 即可。