# Midjourney 图像任务

> 图像生成

提交异步任务。请求体中的模型和参数按本模型文档填写，响应会返回任务 ID。

## 请求地址

`POST https://api.modelverse.cn/v1/tasks/submit`

## 请求体

## 响应

- **200** — 任务提交成功。
- **400** — 请求参数无效或任务提交失败。
- **default** — 错误响应。

## OpenAPI 定义

```json
{
  "openapi": "3.1.0",
  "x-language": "zh-CN",
  "info": {
    "title": "midjourney接口文档",
    "version": "1.0.0",
    "description": "这是 ModelVerse 上 `midjourney` 的图片接口文档，说明如何发起图片生成或编辑请求、填写参数、读取结果以及处理错误。\n接口路径包括 `POST /v1/tasks/submit`、`GET /v1/tasks/status`。\n"
  },
  "servers": [
    {
      "url": "https://api.modelverse.cn",
      "description": "Midjourney 的 ModelVerse API 服务地址。"
    }
  ],
  "tags": [
    {
      "name": "Midjourney",
      "description": "异步 Midjourney 图像生成及后续操作。"
    }
  ],
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "paths": {
    "/v1/tasks/submit": {
      "post": {
        "tags": [
          "Midjourney"
        ],
        "operationId": "submitMidjourneyTask",
        "summary": "Midjourney 图像任务",
        "description": "提交异步任务。请求体中的模型和参数按本模型文档填写，响应会返回任务 ID。\n",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MidjourneyTaskSubmitRequest"
              },
              "examples": {
                "imagine": {
                  "summary": "文生图",
                  "value": {
                    "model": "midjourney-fast-imagine",
                    "input": {
                      "prompt": "a cute cat sitting on a cloud, anime style --v 8"
                    }
                  }
                },
                "upscale": {
                  "summary": "放大 U1",
                  "value": {
                    "model": "midjourney-fast-upscale",
                    "input": {},
                    "parameters": {
                      "mj_task_id": "1775203239196609",
                      "mj_custom_id": "MJ::JOB::upsample::1::431a5822-bfb2-4c55-8fc5-fc101abebd91"
                    }
                  }
                },
                "variation": {
                  "summary": "创建 V1 变体",
                  "value": {
                    "model": "midjourney-fast-variation",
                    "input": {},
                    "parameters": {
                      "mj_task_id": "1775203239196609",
                      "mj_custom_id": "MJ::JOB::variation::1::431a5822-bfb2-4c55-8fc5-fc101abebd91"
                    }
                  }
                },
                "reroll": {
                  "summary": "重新生成全部图像",
                  "value": {
                    "model": "midjourney-fast-reroll",
                    "input": {},
                    "parameters": {
                      "mj_task_id": "1775203239196609",
                      "mj_custom_id": "MJ::JOB::reroll::0::431a5822-bfb2-4c55-8fc5-fc101abebd91::SOLO"
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "任务提交成功。",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MidjourneyTaskSubmitResponse"
                },
                "examples": {
                  "submitted": {
                    "summary": "已提交任务",
                    "value": {
                      "output": {
                        "task_id": "1775203239196609"
                      },
                      "request_id": "abc123..."
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "请求参数无效或任务提交失败。",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MidjourneyHttpErrorResponse"
                },
                "examples": {
                  "invalidRequest": {
                    "$ref": "#/components/examples/MidjourneyHttpError"
                  }
                }
              }
            }
          },
          "default": {
            "description": "错误响应。",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MidjourneyHttpErrorResponse"
                },
                "examples": {
                  "error": {
                    "$ref": "#/components/examples/MidjourneyHttpError"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/v1/tasks/status": {
      "get": {
        "tags": [
          "Midjourney"
        ],
        "operationId": "getMidjourneyTaskStatus",
        "summary": "Midjourney 任务状态",
        "description": "查询异步任务状态。任务完成后，响应中会包含结果 URL、用量信息或错误信息。\n",
        "parameters": [
          {
            "name": "task_id",
            "in": "query",
            "required": true,
            "description": "调用 `/v1/tasks/submit` 后返回的异步任务标识。",
            "schema": {
              "type": "string"
            },
            "examples": {
              "documented": {
                "summary": "源文档任务 ID 示例",
                "value": "1775203239196609"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "任务状态响应。",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MidjourneyTaskStatusResponse"
                },
                "examples": {
                  "success": {
                    "summary": "带后续操作按钮的成功任务",
                    "value": {
                      "output": {
                        "task_id": "1775203239196609",
                        "task_status": "Success",
                        "urls": [
                          "https://example.com/midjourney-grid.png"
                        ],
                        "submit_time": 1775203239,
                        "buttons": [
                          {
                            "custom_id": "MJ::JOB::upsample::1::431a5822-bfb2-4c55-8fc5-fc101abebd91",
                            "label": "U1"
                          },
                          {
                            "custom_id": "MJ::JOB::upsample::2::431a5822-bfb2-4c55-8fc5-fc101abebd91",
                            "label": "U2"
                          },
                          {
                            "custom_id": "MJ::JOB::upsample::3::431a5822-bfb2-4c55-8fc5-fc101abebd91",
                            "label": "U3"
                          },
                          {
                            "custom_id": "MJ::JOB::upsample::4::431a5822-bfb2-4c55-8fc5-fc101abebd91",
                            "label": "U4"
                          },
                          {
                            "custom_id": "MJ::JOB::reroll::0::431a5822-bfb2-4c55-8fc5-fc101abebd91::SOLO",
                            "emoji": "🔄"
                          },
                          {
                            "custom_id": "MJ::JOB::variation::1::431a5822-bfb2-4c55-8fc5-fc101abebd91",
                            "label": "V1"
                          },
                          {
                            "custom_id": "MJ::JOB::variation::2::431a5822-bfb2-4c55-8fc5-fc101abebd91",
                            "label": "V2"
                          },
                          {
                            "custom_id": "MJ::JOB::variation::3::431a5822-bfb2-4c55-8fc5-fc101abebd91",
                            "label": "V3"
                          },
                          {
                            "custom_id": "MJ::JOB::variation::4::431a5822-bfb2-4c55-8fc5-fc101abebd91",
                            "label": "V4"
                          }
                        ]
                      }
                    }
                  },
                  "failure": {
                    "summary": "失败任务",
                    "value": {
                      "output": {
                        "task_id": "1775203239196609",
                        "task_status": "Failure",
                        "submit_time": 1775203239,
                        "error_message": "Generation failed."
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "任务标识无效或任务状态查询失败。",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MidjourneyHttpErrorResponse"
                },
                "examples": {
                  "invalidRequest": {
                    "$ref": "#/components/examples/MidjourneyHttpError"
                  }
                }
              }
            }
          },
          "default": {
            "description": "错误响应。",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MidjourneyHttpErrorResponse"
                },
                "examples": {
                  "error": {
                    "$ref": "#/components/examples/MidjourneyHttpError"
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "bearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "API key"
      }
    },
    "schemas": {
      "MidjourneyTaskSubmitRequest": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/MidjourneyImagineSubmitRequest"
          },
          {
            "$ref": "#/components/schemas/MidjourneyUpscaleSubmitRequest"
          },
          {
            "$ref": "#/components/schemas/MidjourneyVariationSubmitRequest"
          },
          {
            "$ref": "#/components/schemas/MidjourneyRerollSubmitRequest"
          }
        ],
        "discriminator": {
          "propertyName": "model",
          "mapping": {
            "midjourney-fast-imagine": "#/components/schemas/MidjourneyImagineSubmitRequest",
            "midjourney-fast-upscale": "#/components/schemas/MidjourneyUpscaleSubmitRequest",
            "midjourney-fast-variation": "#/components/schemas/MidjourneyVariationSubmitRequest",
            "midjourney-fast-reroll": "#/components/schemas/MidjourneyRerollSubmitRequest"
          }
        }
      },
      "MidjourneyImagineSubmitRequest": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "model",
          "input"
        ],
        "properties": {
          "model": {
            "type": "string",
            "const": "midjourney-fast-imagine",
            "description": "文生图模型，返回一张包含 4 个生成图像的拼合网格图。"
          },
          "input": {
            "$ref": "#/components/schemas/MidjourneyImagineInput"
          }
        }
      },
      "MidjourneyUpscaleSubmitRequest": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "model",
          "input",
          "parameters"
        ],
        "properties": {
          "model": {
            "type": "string",
            "const": "midjourney-fast-upscale",
            "description": "放大选中的图像，或执行文档所述的后续放大操作。"
          },
          "input": {
            "$ref": "#/components/schemas/MidjourneyEmptyInput"
          },
          "parameters": {
            "$ref": "#/components/schemas/MidjourneyActionParameters"
          }
        }
      },
      "MidjourneyVariationSubmitRequest": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "model",
          "input",
          "parameters"
        ],
        "properties": {
          "model": {
            "type": "string",
            "const": "midjourney-fast-variation",
            "description": "基于选中的图像生成 4 个变体。"
          },
          "input": {
            "$ref": "#/components/schemas/MidjourneyEmptyInput"
          },
          "parameters": {
            "$ref": "#/components/schemas/MidjourneyActionParameters"
          }
        }
      },
      "MidjourneyRerollSubmitRequest": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "model",
          "input",
          "parameters"
        ],
        "properties": {
          "model": {
            "type": "string",
            "const": "midjourney-fast-reroll",
            "description": "重新生成上一个任务中的全部 4 个图像。"
          },
          "input": {
            "$ref": "#/components/schemas/MidjourneyEmptyInput"
          },
          "parameters": {
            "$ref": "#/components/schemas/MidjourneyActionParameters"
          }
        }
      },
      "MidjourneyImagineInput": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "prompt"
        ],
        "properties": {
          "prompt": {
            "type": "string",
            "description": "文生图提示词，`midjourney-fast-imagine` 必填。可在提示词中使用 `--v` 指定 Midjourney 版本，例如 `--v 8`。"
          }
        }
      },
      "MidjourneyEmptyInput": {
        "type": "object",
        "additionalProperties": false,
        "description": "查询异步任务状态。任务完成后，响应中会包含结果 URL、用量信息或错误信息。\n"
      },
      "MidjourneyActionParameters": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "mj_task_id",
          "mj_custom_id"
        ],
        "properties": {
          "mj_task_id": {
            "type": "string",
            "description": "放大、生成变体和重新生成操作所需的上一步任务 ID。"
          },
          "mj_custom_id": {
            "type": "string",
            "description": "上一步状态响应中 `buttons` 项的 `custom_id`。"
          }
        }
      },
      "MidjourneyTaskSubmitResponse": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "output"
        ],
        "properties": {
          "output": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "task_id"
            ],
            "properties": {
              "task_id": {
                "type": "string",
                "description": "异步任务标识。"
              }
            }
          },
          "request_id": {
            "type": "string",
            "description": "ModelVerse 返回的请求标识。"
          }
        }
      },
      "MidjourneyTaskStatusResponse": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "output"
        ],
        "properties": {
          "output": {
            "$ref": "#/components/schemas/MidjourneyTaskStatusOutput"
          }
        }
      },
      "MidjourneyTaskStatusOutput": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "task_id",
          "task_status"
        ],
        "properties": {
          "task_id": {
            "type": "string",
            "description": "任务 ID。"
          },
          "task_status": {
            "$ref": "#/components/schemas/MidjourneyTaskStatus"
          },
          "urls": {
            "type": "array",
            "description": "图像 URL 列表。文生图、生成变体和重新生成返回一张拼合网格图；\n放大操作返回一张单图的 URL。\n",
            "items": {
              "type": "string",
              "format": "uri"
            }
          },
          "submit_time": {
            "type": "integer",
            "format": "int64",
            "description": "Unix 时间戳，单位为秒。"
          },
          "buttons": {
            "type": "array",
            "description": "后续操作按钮列表，包含用于发起后续操作的 `custom_id`。",
            "items": {
              "$ref": "#/components/schemas/MidjourneyButton"
            }
          },
          "error_message": {
            "type": "string",
            "description": "当 `task_status` 为 `Failure` 时返回的错误信息。"
          }
        }
      },
      "MidjourneyTaskStatus": {
        "type": "string",
        "enum": [
          "Pending",
          "Running",
          "Success",
          "Failure"
        ]
      },
      "MidjourneyButton": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "custom_id"
        ],
        "anyOf": [
          {
            "required": [
              "label"
            ]
          },
          {
            "required": [
              "emoji"
            ]
          }
        ],
        "properties": {
          "custom_id": {
            "type": "string",
            "description": "按钮的自定义 ID，用作 `parameters.mj_custom_id`。"
          },
          "label": {
            "type": "string",
            "description": "按钮标签，例如 `U1` 或 `V1`。"
          },
          "emoji": {
            "type": "string",
            "description": "按钮表情，例如重新生成按钮。"
          }
        }
      },
      "MidjourneyHttpErrorResponse": {
        "type": "object",
        "additionalProperties": true,
        "description": "查询异步任务状态。任务完成后，响应中会包含结果 URL、用量信息或错误信息。\n",
        "properties": {
          "error": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "message": {
                "type": "string"
              },
              "type": {
                "type": "string"
              },
              "code": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "param": {
                "type": [
                  "string",
                  "null"
                ]
              }
            }
          },
          "request_id": {
            "type": "string"
          }
        }
      }
    },
    "examples": {
      "MidjourneyHttpError": {
        "summary": "HTTP 错误响应",
        "value": {
          "error": {
            "message": "Invalid param",
            "type": "invalid_request_error",
            "code": "param_error",
            "param": "model"
          }
        }
      }
    }
  }
}
```
