mjapi2 / docs /api.md
BG5's picture
Upload 116 files
41c1b5e
# API接口说明
`http://ip:port/mj` 已有api文档,此处仅作补充
## 1. 数据结构
### 任务
| 字段 | 类型 | 示例 | 描述 |
|:-----:|:----:|:----|:----|
| id | string | 1689231405853400 | 任务ID |
| action | string | IMAGINE | 任务类型: IMAGINE(绘图)、UPSCALE(选中放大)、VARIATION(选中变换)、REROLL(重新执行)、DESCRIBE(图生文)、BLEAND(图片混合) |
| status | string | SUCCESS | 任务状态: NOT_START(未启动)、SUBMITTED(已提交处理)、IN_PROGRESS(执行中)、FAILURE(失败)、SUCCESS(成功) |
| prompt | string | 猫猫 | 提示词 |
| promptEn | string | Cat | 英文提示词 |
| description | string | /imagine 猫猫 | 任务描述 |
| submitTime | number | 1689231405854 | 提交时间 |
| startTime | number | 1689231442755 | 开始执行时间 |
| finishTime | number | 1689231544312 | 结束时间 |
| progress | string | 100% | 任务进度 |
| imageUrl | string | https://cdn.discordapp.com/attachments/xxx/xxx/xxxx.png | 生成图片的url, 成功或执行中时有值,可能为png或webp |
| failReason | string | [Invalid parameter] Invalid value | 失败原因, 失败时有值 |
| properties | object | {"finalPrompt": "Cat"} | 任务的扩展属性,系统内部使用 |
## 2. 任务提交返回
- code=1: 提交成功,result为任务ID
```json
{
"code": 1,
"description": "成功",
"result": "8498455807619990",
"properties": {
"discordInstanceId": "1118138338562560102"
}
}
```
- code=21: 任务已存在,U时可能发生
```json
{
"code": 21,
"description": "任务已存在",
"result": "0741798445574458",
"properties": {
"status": "SUCCESS",
"imageUrl": "https://xxxx"
}
}
```
- code=22: 提交成功,进入队列等待
```json
{
"code": 22,
"description": "排队中,前面还有1个任务",
"result": "0741798445574458",
"properties": {
"numberOfQueues": 1,
"discordInstanceId": "1118138338562560102"
}
}
```
- code=23: 队列已满,请稍后尝试
```json
{
"code": 23,
"description": "队列已满,请稍后尝试",
"result": "14001929738841620",
"properties": {
"discordInstanceId": "1118138338562560102"
}
}
```
- code=24: prompt包含敏感词
```json
{
"code": 24,
"description": "可能包含敏感词",
"properties": {
"promptEn": "nude body",
"bannedWord": "nude"
}
}
```
- other: 提交错误,description为错误描述
## 3. `/mj/submit/simple-change` 绘图变化-simple
接口作用同 `/mj/submit/change`(绘图变化),传参方式不同,该接口接收content,格式为`ID 操作`,例如:1320098173412546 U2
- 放大 U1~U4
- 变换 V1~V4
- 重新执行 R
## 4. `/mj/submit/describe` 图生文
```json
{
// 图片的base64字符串
"base64": "data:image/png;base64,xxx"
}
```
后续任务完成后,properties中finalPrompt即为图片生成的prompt
```json
{
"id":"14001929738841620",
"action":"DESCRIBE",
"status": "SUCCESS",
"description":"/describe 14001929738841620.png",
"imageUrl":"https://cdn.discordapp.com/attachments/xxx/xxx/14001929738841620.png",
"properties": {
"finalPrompt": "1️⃣ Cat --ar 5:4\n\n2️⃣ Cat2 --ar 5:4\n\n3️⃣ Cat3 --ar 5:4\n\n4️⃣ Cat4 --ar 5:4"
}
// ...
}
```
## 5. 任务变更回调
任务状态变化或进度改变时,会调用业务系统的接口
- 接口地址为配置的 mj.notify-hook,任务提交时支持传`notifyHook`以改变此任务的回调地址
- 两者都为空时,不触发回调
POST application/json
```json
{
"id": "14001929738841620",
"action": "IMAGINE",
"status": "SUCCESS",
"prompt": "猫猫",
"promptEn": "Cat",
"description": "/imagine 猫猫",
"submitTime": 1689231405854,
"startTime": 1689231442755,
"finishTime": 1689231544312,
"progress": "100%",
"imageUrl": "https://cdn.discordapp.com/attachments/xxx/xxx/xxxx.png",
"failReason": null,
"properties": {
"finalPrompt": "Cat"
}
}
```