MJ 图片/视频生成

查看 Markdown 原文

概述

MJ 系列接口提供图像生成、图像编辑、图生视频、视频处理等基础生成能力,采用任务化(异步)模型:调用生成类接口后返回 jobId,再通过查询接口轮询任务状态获取结果。

本版本将原单一的 /aigc/mj 接口拆分为多个语义化的独立接口(/mj/v1/tob/*),每个动作对应一个独立路径。原 /aigc/mj 接口已废弃。

Base URL: https://api.apiverse.ai


认证方式

所有接口均需在请求头中携带 API Key 进行认证:

Authorization: Bearer {YOUR_API_KEY}

响应结构(生成类接口)

所有生成类接口(图片 / 视频)返回统一的任务对象:

字段类型说明
jobIdstring任务 ID,用于后续查询或二次操作
commentstring任务状态,见「任务状态」章节
reasonstring失败原因(仅任务失败时返回,已脱敏)
textstring提示词(图片任务返回)
urlsstring[]图片结果 URL 列表(图片任务)
videoUrlsstring[]视频结果 URL 列表(视频任务)
costnumber消耗金额,任务完成后更新
createdAtstring创建时间(查询接口返回)
finishedAtstring完成时间(查询接口返回)
创建任务时 comment 固定为 JobStatusCreatedurls / videoUrls 为空数组,cost 为 0。结果需通过「查询任务信息」接口获取。

创建成功响应示例

{
  "jobId": "task_20260529150000_abc12345",
  "comment": "JobStatusCreated",
  "text": "一只可爱的橘猫在阳光下打盹,油画风格",
  "urls": [],
  "cost": 0
}

错误结构

{
  "code": 400,
  "message": "Invalid_Argument",
  "reason": "请求参数无效: ..."
}
字段类型说明
codeint错误码
messagestring错误标识
reasonstring失败原因详情

常见错误码见文末「错误码」章节。


接口总览

分类接口方法路径
图片生成图像生成POST/api/v2/open/mj/v1/tob/diffusion
图片生成变化POST/api/v2/open/mj/v1/tob/variation
图片生成高清放大POST/api/v2/open/mj/v1/tob/upscale
图片生成重新执行POST/api/v2/open/mj/v1/tob/reroll
图片生成延展POST/api/v2/open/mj/v1/tob/pan
图片生成扩图POST/api/v2/open/mj/v1/tob/outpaint
图片生成区域重绘POST/api/v2/open/mj/v1/tob/inpaint
图片生成重塑POST/api/v2/open/mj/v1/tob/remix
图片生成编辑POST/api/v2/open/mj/v1/tob/edit
图片生成高级编辑POST/api/v2/open/mj/v1/tob/upload-paint
图片生成转绘POST/api/v2/open/mj/v1/tob/retexture
图片生成移除背景POST/api/v2/open/mj/v1/tob/remove-background
图片生成增强POST/api/v2/open/mj/v1/tob/enhance
视频生成图生视频POST/api/v2/open/mj/v1/tob/video-diffusion
视频生成视频延长POST/api/v2/open/mj/v1/tob/extend-video
视频生成视频高清POST/api/v2/open/mj/v1/tob/video-upscale
任务查询查询任务信息GET/api/v2/open/mj/v1/tob/job/{jobId}

一、图片生成接口

1.1 图像生成

POST /api/v2/open/mj/v1/tob/diffusion

核心的图像生成接口。提示词、生成参数、参考图片 URL 均通过 text 字段传入(与标准提示词写法一致,可在文本中嵌入图片链接与 --ar--v 等参数)。当 text 中包含图片链接时按图生图计费,否则按文生图计费。

请求参数

参数类型必填说明
textstring提示词,支持纯文本、嵌入图片 URL、生成参数
callbackstring异步回调地址

请求示例

{
  "text": "一只可爱的橘猫在阳光下打盹,油画风格 --ar 16:9 --v 7",
  "callback": "https://your-domain.com/callback"
}

使用场景

text 字段整体透传给生成引擎,通过不同的内容组合覆盖以下常见场景([] 表示可选内容,实际请求中不需要写方括号):

场景text 字段格式说明
纯文本生图描述文本 [--参数]仅通过文字描述生成图像
单图 + 文本图片URL 描述文本 [--参数]参考一张图片,结合文字描述生成新图像
多图融合图片URL1 图片URL2 [--参数]混合多张图片的风格与元素(无文本)
多图 + 文本图片URL1 图片URL2 描述文本 [--参数]多张参考图配合文字获得更精确的引导
角色参考描述文本 --cref 人物图片URL在新图中保持指定角色的面部、发型、服装一致性
风格参考描述文本 --sref 风格图片URL迁移参考图的视觉风格(颜色、纹理、光照)到新创作
万物引用描述文本 --oref 物体图片URL将参考图中的角色或物体放入新场景(仅 v7)
text 中可包含以 http:// / https:// 开头的图片链接实现图生图;图片链接需公网可访问。图像生成为基础生成,无论是否携带参考图,价格一致(按单次任务计费,一次生成一组图片),仅速度档影响计费倍率。

常用生成参数

以下参数直接写在 text 中,与提示词、图片链接混用,例如 一只猫 --ar 16:9 --v 7 --cref https://.../face.jpg --cw 80

参数说明取值范围
--ar画面宽高比16:91:12:3
--v模型版本6 / 6.1 / 7 / 8.1 / 8.2
--iw图像提示权重,控制参考图对结果的影响程度0-3,默认 1
--cref角色参考图 URL支持 v6 / v6.1 / niji 6
--cw角色参考权重0-100,默认 100
--sref风格参考图 URL(可多个)支持全部图像模型
--sw风格参考权重0-1000,默认 100
--sv风格算法版本1-4(v7 支持 1-6),默认 4
--oref万物引用图 URL(仅 1 张)仅 v7
--ow万物引用权重1-1000,默认 100
上述参数由生成引擎解析,网关不做额外校验;参数格式错误时任务会以 JobStatusBadPrompt / JobStatusInvalidParameter 状态返回,且不消耗额度。

版本选择(--v 参数)

模型版本通过在 text 中追加 --v 参数指定,写在提示词末尾即可,可与 --ar--sref 等参数混用。未指定 --v 时使用平台默认版本。

写法版本说明
--v 6 / --v 6.1v6 / v6.1早期版本
--v 7v7支持万物引用(--oref)、草图模式半价
--v 8.1v8.1最新版本,提示词遵循更强、支持原生 2K 高清(--hd),--q 仅支持 1 / 4
--v 8.2v8.2与 v8.1 能力一致,--q 支持 1 / 2 / 3 / 4

使用示例:

{
  "text": "young elven hunter with moss-woven armor, soft forest light --ar 2:3 --raw --v 8.2 --hd",
  "callback": "https://your-domain.com/callback"
}
- 版本号直接跟在 --v 后,如 --v 8.2;不写 --v 则由平台按默认版本处理。
- v8.1 与 v8.2 的核心区别:v8.1 的 --q(图像细节质量)仅支持 14,v8.2 扩展为 1 / 2 / 3 / 44 为最高质量档)。

v8 系列(v8.1 / v8.2)专有参数

v8.1 与 v8.2 在 v7 参数基础上新增以下能力,均写在 text 中:

参数说明取值范围计费影响
--hd原生 2K 高清渲染,生成阶段即输出高分辨率,一次任务直接生成 4 张高清图无需填值叠加 1.5× 系数
--q图像细节质量,4 为高质量模式v8.1:1 / 4;v8.2:1 / 2 / 3 / 4,默认 1不影响计费
--raw原始模式,不采用默认美化无需填值不影响计费
--stylize艺术风格强度0-1000,默认 100不影响计费
--exp实验参数,增加画面动态感0-100,默认 0不影响计费
--draft单次生成 24 张 0.5K 草图,用于快速预览无需填值系数为 1(v8 系列草图不享受 v7 的 0.5× 减半)
- v8 系列的高清出图通过 --hd 实现(原生 2K),不再使用独立的「高清放大」接口,一次任务直接产出 4 张高清图。
- --q 与风格参考(--sref / Moodboard)不影响计费。
- v8 系列完全兼容 v7 的 --sref 风格参考与 Moodboard,已有风格资产可直接迁移。
- v8 系列的非「标准生图」类任务(变化、编辑、转绘等)计费与 v7 一致。

速度档(计费系数)

生成速度通过在 text 中追加速度参数控制,不同速度档对应不同计费倍率。未指定时默认 快速档

参数速度档计费系数说明
--fast快速(默认)默认档位,不写速度参数时即为此档
--turbo极速更快出图,计费翻倍
--draft草图0.5×(仅 --v 7半价快速预览;v8 系列亦可用 --draft,但计费系数为 1(不减半)
--relax放松按快速档计费(无单独优惠档)
- 速度参数与 --ar--v 等一样直接写在 text 中,可与其它参数混用,例如 ... --ar 16:9 --v 7 --turbo
- 派生操作(变化、放大、延展等)不单独指定速度档,自动继承原始生成任务的速度档计费。
- 实际单价以你的计费方案为准,上表系数为各档之间的相对倍率。

示例:"text": "一只猫 --ar 16:9 --v 7 --turbo"(极速档,2× 计费)

响应示例

{
  "jobId": "task_20260529150000_abc12345",
  "comment": "JobStatusCreated",
  "text": "一只可爱的橘猫在阳光下打盹,油画风格 --ar 16:9 --v 7",
  "urls": [],
  "cost": 0
}

1.2 变化(Variation)

POST /api/v2/open/mj/v1/tob/variation

基于已生成图片中的某一张,生成相似的变体。

请求参数

参数类型必填说明
jobIdstring源任务 ID
imageNoint源图片编号(1-4)
typeint变化程度:0 轻微 / 1 强烈
remixPromptstring重塑提示词
callbackstring异步回调地址

请求示例

{
  "jobId": "task_20260529150000_abc12345",
  "imageNo": 1,
  "type": 1,
  "remixPrompt": "换成夜晚的场景"
}

1.3 高清放大(Upscale)

POST /api/v2/open/mj/v1/tob/upscale

对指定图片进行高清放大。

请求参数

参数类型必填说明
jobIdstring源任务 ID
imageNoint源图片编号(1-4)
typeint放大模式:0 标准 / 1 创意 / 2 v5_2x / 3 v5_4x
callbackstring异步回调地址

请求示例

{
  "jobId": "task_20260529150000_abc12345",
  "imageNo": 1,
  "type": 0
}

1.4 重新执行(Reroll)

POST /api/v2/open/mj/v1/tob/reroll

以源任务的参数重新生成一组图片。

请求参数

参数类型必填说明
jobIdstring源任务 ID
callbackstring异步回调地址

请求示例

{
  "jobId": "task_20260529150000_abc12345"
}

1.5 延展(Pan)

POST /api/v2/open/mj/v1/tob/pan

向指定方向平移并扩展画面内容。

请求参数

参数类型必填说明
jobIdstring源任务 ID
imageNoint源图片编号(1-4)
directionint延展方向:0 下 / 1 右 / 2 上 / 3
scalenumber延展比例(1.1-3.0)
remixPromptstring延展区域提示词
callbackstring异步回调地址

请求示例

{
  "jobId": "task_20260529150000_abc12345",
  "imageNo": 1,
  "direction": 1,
  "scale": 1.5,
  "remixPrompt": "向右延展出一片草地"
}

1.6 扩图(Outpaint)

POST /api/v2/open/mj/v1/tob/outpaint

在原图四周外扩生成更大的画面。

请求参数

参数类型必填说明
jobIdstring源任务 ID
imageNoint源图片编号(1-4)
scalenumber扩展比例(1.1-2.0)
remixPromptstring扩图区域提示词
callbackstring异步回调地址

请求示例

{
  "jobId": "task_20260529150000_abc12345",
  "imageNo": 1,
  "scale": 2.0
}

1.7 区域重绘(Inpaint)

POST /api/v2/open/mj/v1/tob/inpaint

通过蒙版指定区域进行局部重绘。

请求参数

参数类型必填说明
jobIdstring源任务 ID
imageNoint源图片编号(1-4)
maskobject蒙版定义(areas 坐标区域,或 url 蒙版图,二选一)
remixPromptstring重绘区域描述
callbackstring异步回调地址

mask 对象结构areasurl 二选一):

字段类型说明
areasarray坐标区域列表,每个元素含 widthheightpoints(多边形顶点坐标数组,按 x1,y1,x2,y2,... 顺序排列)
urlstring蒙版图片 URL(黑白蒙版,白色为重绘区域)

请求示例

坐标区域方式:

{
  "jobId": "task_20260529150000_abc12345",
  "imageNo": 1,
  "mask": {
    "areas": [
      {
        "width": 100,
        "height": 100,
        "points": [10, 10, 10, 100, 100, 100, 100, 10]
      }
    ]
  },
  "remixPrompt": "把这个区域换成一束鲜花"
}

蒙版图方式:

{
  "jobId": "task_20260529150000_abc12345",
  "imageNo": 1,
  "mask": { "url": "https://example.com/mask.png" },
  "remixPrompt": "把这个区域换成一束鲜花"
}

1.8 重塑(Remix)

POST /api/v2/open/mj/v1/tob/remix

以新的提示词对指定图片进行重新混合。

请求参数

参数类型必填说明
jobIdstring源任务 ID
imageNoint源图片编号(1-4)
remixPromptstring新的提示词
modeint重塑模式:0 强烈(默认) / 1 细微
callbackstring异步回调地址

请求示例

{
  "jobId": "task_20260529150000_abc12345",
  "imageNo": 1,
  "remixPrompt": "改为赛博朋克风格",
  "mode": 0
}

1.9 编辑(Edit)

POST /api/v2/open/mj/v1/tob/edit

在指定画布与图像位置上对图片进行编辑。

请求参数

参数类型必填说明
jobIdstring源任务 ID
imageNoint源图片编号(1-4)
canvasobject画布尺寸
imgPosobject图像位置
remixPromptstring编辑描述
maskobject原图重绘区域
callbackstring异步回调地址

canvas 对象结构

字段类型说明
widthint画布宽度(像素)
heightint画布高度(像素)

imgPos 对象结构(原图在画布中的位置与尺寸):

字段类型说明
widthint图像宽度(像素)
heightint图像高度(像素)
xint水平偏移(相对画布左上角,像素)
yint垂直偏移(相对画布左上角,像素)

请求示例

{
  "jobId": "task_20260529150000_abc12345",
  "imageNo": 1,
  "canvas": { "width": 1024, "height": 1024 },
  "imgPos": { "width": 1024, "height": 768, "x": 0, "y": 0 },
  "remixPrompt": "在顶部补充天空"
}

1.10 高级编辑(Upload Paint)

POST /api/v2/open/mj/v1/tob/upload-paint

直接上传图片 URL 并指定蒙版、画布、图像位置进行编辑(无需源任务)。

请求参数

参数类型必填说明
imgUrlstring待编辑图像 URL
maskobject蒙版定义(结构见「区域重绘」的 mask)
canvasobject画布尺寸(结构见「编辑」的 canvas)
imgPosobject图像位置(结构见「编辑」的 imgPos)
remixPromptstring编辑描述
callbackstring异步回调地址

请求示例

{
  "imgUrl": "https://example.com/source.jpg",
  "mask": { "url": "https://example.com/mask.png" },
  "canvas": { "width": 1024, "height": 1024 },
  "imgPos": { "width": 1024, "height": 1024, "x": 0, "y": 0 },
  "remixPrompt": "把背景替换为海滩"
}

1.11 转绘(Retexture)

POST /api/v2/open/mj/v1/tob/retexture

保留原图结构,按目标风格重新生成材质/纹理。可在 remixPrompt 中配合 --sref 风格图URL 实现更精确的风格迁移。转绘需使用 v6.1 及以上版本模型。

请求参数

参数类型必填说明
imgUrlstring待转绘图像 URL
remixPromptstring目标风格描述
callbackstring异步回调地址

请求示例

{
  "imgUrl": "https://example.com/source.jpg",
  "remixPrompt": "改为大理石材质"
}

1.12 移除背景(Remove Background)

POST /api/v2/open/mj/v1/tob/remove-background

移除图片背景,输出透明背景图。

请求参数

参数类型必填说明
imgUrlstring待处理图像 URL
callbackstring异步回调地址

请求示例

{
  "imgUrl": "https://example.com/source.jpg"
}

1.13 增强(Enhance)

POST /api/v2/open/mj/v1/tob/enhance

对指定图片进行细节增强。仅适用于 草图模式(--draft 生成的图像。

请求参数

参数类型必填说明
jobIdstring源任务 ID
imageNoint源图片编号(1-4)
callbackstring异步回调地址

请求示例

{
  "jobId": "task_20260529150000_abc12345",
  "imageNo": 1
}

二、视频生成接口

2.1 图生视频(Video Diffusion)

POST /api/v2/open/mj/v1/tob/video-diffusion

由图片生成视频。支持两种首图来源,二者二选一:

  • 派生模式:引用已生成图片任务的 jobId + imageNo1-4),系统自动以该图作为视频首帧;
  • 链接模式:在 prompt 中直接提供图片链接。

请求参数

参数类型必填说明
jobIdstring条件源图片任务 ID(派生模式,与 prompt 中的图片链接二选一)
imageNoint源图片编号 1-4(搭配 jobId 使用,指定以哪张图作为首帧)
promptstring条件提示词;链接模式下需在其中包含图片链接
videoTypeint视频分辨率:0 为 480p(默认) / 1 为 720p
callbackstring异步回调地址
单次生成时长为 5 秒。视频比例跟随首帧图片比例,常见对应关系:
原图比例视频比例分辨率示例
1:11:1624×624
4:377:58720×544
2:32:3512×768
16:991:51832×464
720p(videoType=1)的费用约为 480p 的 3.2 倍,实际以计费方案为准。

请求示例

派生模式(引用已生成图片):

{
  "jobId": "task_20260529150000_abc12345",
  "imageNo": 1,
  "prompt": "让画面中的人物缓缓转身",
  "videoType": 1
}

链接模式(prompt 中带图片链接):

{
  "prompt": "https://example.com/source.jpg 让画面中的人物缓缓转身",
  "videoType": 0
}

响应示例

{
  "jobId": "task_20260529160000_def67890",
  "comment": "JobStatusCreated",
  "videoUrls": [],
  "cost": 0
}

2.2 视频延长(Extend Video)

POST /api/v2/open/mj/v1/tob/extend-video

在已生成视频的基础上继续延长内容。每次延长增加 4 秒,最多可延长 4 次(即最长约 21 秒:5 + 4×4)。

请求参数

参数类型必填说明
jobIdstring源视频任务 ID
videoNoint视频编号
promptstring延长部分描述
callbackstring异步回调地址

请求示例

{
  "jobId": "task_20260529160000_def67890",
  "videoNo": 0,
  "prompt": "人物继续向前走入森林"
}

2.3 视频高清(Video Upscale)

POST /api/v2/open/mj/v1/tob/video-upscale

对已生成视频进行高清放大处理,输出 1080P 视频(按视频时长计费)。

请求参数

参数类型必填说明
jobIdstring源视频任务 ID
videoNoint视频编号
callbackstring异步回调地址

请求示例

{
  "jobId": "task_20260529160000_def67890",
  "videoNo": 0
}

三、任务查询接口

3.1 查询任务信息

GET /api/v2/open/mj/v1/tob/job/{jobId}

查询单个任务的状态与结果,用于轮询。

路径参数

参数类型必填说明
jobIdstring任务 ID

响应示例

处理中

{
  "jobId": "task_20260529150000_abc12345",
  "comment": "JobStatusRunning",
  "text": "一只可爱的橘猫在阳光下打盹,油画风格",
  "urls": [],
  "cost": 0,
  "createdAt": "2026-05-29T15:00:00+08:00"
}

成功(图片)

{
  "jobId": "task_20260529150000_abc12345",
  "comment": "JobStatusSuccess",
  "text": "一只可爱的橘猫在阳光下打盹,油画风格",
  "urls": [
    "https://fc-gw-sh.oss-accelerate.aliyuncs.com/images/2026/05/29/output_001.png"
  ],
  "cost": 0.6,
  "createdAt": "2026-05-29T15:00:00+08:00",
  "finishedAt": "2026-05-29T15:01:30+08:00"
}

成功(视频)

{
  "jobId": "task_20260529160000_def67890",
  "comment": "JobStatusSuccess",
  "videoUrls": [
    "https://fc-gw-sh.oss-accelerate.aliyuncs.com/videos/2026/05/29/output.mp4"
  ],
  "cost": 1.2,
  "createdAt": "2026-05-29T16:00:00+08:00",
  "finishedAt": "2026-05-29T16:03:30+08:00"
}

失败

{
  "jobId": "task_20260529150000_abc12345",
  "comment": "JobStatusFail",
  "reason": "生成失败",
  "cost": 0,
  "createdAt": "2026-05-29T15:00:00+08:00",
  "finishedAt": "2026-05-29T15:00:40+08:00"
}
任务失败时 comment 为失败类状态,reason 字段给出脱敏后的失败原因,已冻结金额会自动退还。

任务状态

生成类接口返回的 comment 字段及查询接口的 status 字段使用以下状态值:

状态值说明
JobStatusCreated已创建
JobStatusQueued排队中
JobStatusRunning执行中
JobStatusSuccess成功
JobStatusFail失败(未知错误)
JobStatusError执行报错
JobStatusReject图片审核未通过
JobStatusTextReject文本审核未通过
JobStatusBadPrompt提示词格式错误
JobStatusInvalidParameter提示词格式错误,请重试
JobStatusTimeout任务失败(超时)
JobStatusRequestTimeout任务处理失败(超时)
JobStatusInvalidImagePromptLink无效图片链接
JobStatusMaxConcurrentLimited达到同时任务数上限
JobStatusCreditNotEnough任务额度已用完
JobStatusCanceled任务已取消
JobStatusImagePromptDenied图片 prompt 敏感
JobStatusDuplicateImage存在重复图片

回调通知

创建任务时若提供了 callback,任务完成(成功或失败)后系统会向该地址发送 POST 请求,请求体为任务对象(结构与「查询任务信息」一致)。

Headers

Content-Type: application/json

Body 示例

{
  "jobId": "task_20260529150000_abc12345",
  "comment": "JobStatusSuccess",
  "urls": ["https://fc-gw-sh.oss-accelerate.aliyuncs.com/images/output_001.png"],
  "cost": 0.6,
  "createdAt": "2026-05-29T15:00:00+08:00",
  "finishedAt": "2026-05-29T15:01:30+08:00"
}

回调接收端应返回 HTTP 200 表示已成功接收。


错误码

codemessage说明
400Invalid_Argument请求参数无效 / 源任务不存在
402Account_Fee_Not_Enough账户余额不足
500Internal_Server_Error服务器内部错误

最佳实践

1. 任务轮询策略

生成类接口为异步任务,需通过「查询任务信息」(GET /job/{jobId})轮询结果。建议轮询间隔:

  • 前 30 秒:每 3 秒查询一次
  • 30 秒 ~ 2 分钟:每 5 秒查询一次
  • 2 分钟后:每 10 秒查询一次

commentJobStatusSuccess 时从 urls / videoUrls 获取结果;为失败类状态时停止轮询。

2. 处理时间参考

  • 图像生成 / 编辑类:通常 30 秒 ~ 2 分钟
  • 图生视频:通常 1 ~ 5 分钟
  • 视频延长 / 视频高清:通常 1 ~ 3 分钟

3. 余额管理

  • 创建任务时会预扣(冻结)费用,余额不足将返回 402 Account_Fee_Not_Enough
  • 任务成功后从冻结金额中实际扣费,cost 字段反映实际消耗。
  • 任务失败后冻结金额会自动退还。

4. 二次操作

  • 变化 / 放大 / 延展 / 扩图 / 区域重绘 / 重塑 / 编辑 / 增强等接口均需引用一个有效的源任务 jobId,并通过 imageNo 指定具体图片。
  • 视频延长 / 视频高清需引用已成功的视频任务 jobIdvideoNo

5. 回调优先

  • 建议优先使用 callback 接收任务完成通知,减少轮询开销;轮询作为兜底手段。