Перейти к основному содержанию
Основная функция Midjourney Tasks API заключается в том, чтобы запрашивать статус выполнения задачи, используя ID задачи, сгенерированный через Midjourney Imagine API или Midjourney Describe API. В этом документе подробно описывается интеграция Midjourney Tasks API, чтобы помочь вам легко интегрировать и в полной мере использовать мощные возможности этого API. С помощью Midjourney Tasks API вы можете легко реализовать запрос статуса выполнения задач Midjourney Imagine API или Midjourney Describe API.

Процесс подачи заявки

Чтобы использовать Midjourney Tasks API, сначала необходимо перейти на страницу заявки Midjourney Imagine API и подать заявку на соответствующую услугу, затем скопировать ID задачи Imagine API, как показано на рисунке:

Затем перейдите на страницу Tasks API Midjourney Tasks API и подайте заявку на соответствующую услугу, после перехода на страницу нажмите кнопку «Acquire», как показано на рисунке: Страница заявки Если вы еще не вошли в систему или не зарегистрированы, вы будете автоматически перенаправлены на страницу входа, где вас пригласят зарегистрироваться и войти в систему. После входа в систему вы будете автоматически возвращены на текущую страницу. При первой подаче заявки предоставляется бесплатный лимит, который позволяет бесплатно использовать этот API.

Пример запроса

Midjourney Tasks API можно использовать для запроса результатов как Midjourney Imagine API, так и Midjourney Describe API. Для получения информации о том, как использовать Midjourney Imagine API, обратитесь к документации Midjourney Imagine API. Для получения информации о том, как использовать Midjourney Describe, обратитесь к Midjourney Describe API. Мы возьмем в качестве примера ID задачи, возвращенный службой Midjourney Imagine API, и продемонстрируем, как использовать этот API. Предположим, у нас есть ID задачи: 7489df4c-ef03-4de0-b598-e9a590793434, далее мы покажем, как передать этот ID задачи.

Пример задачи

Установка заголовков запроса и тела запроса

Request Headers включает:
  • accept: указывает на прием ответа в формате JSON, здесь указывается application/json.
  • authorization: ключ для вызова API, после подачи заявки его можно выбрать из выпадающего списка.
Request Body включает:
  • id: загруженный ID задачи.
  • ids: массив ID задач для пакетного запроса.
  • action: способ выполнения операции над задачей, поддерживает retrieve (одиночный запрос) и retrieve_batch (пакетный запрос).
Настройка, как показано на рисунке:

Пример кода

Можно заметить, что на правой стороне страницы автоматически сгенерирован код на различных языках, как показано на рисунке:

Некоторые примеры кода:

CURL

curl -X POST 'https://api.acedata.cloud/midjourney/tasks' \
-H 'accept: application/json' \
-H 'authorization: Bearer {token}' \
-H 'content-type: application/json' \
-d '{
  "id": "7489df4c-ef03-4de0-b598-e9a590793434",
  "action": "retrieve"
}'

Python

import requests

url = "https://api.acedata.cloud/midjourney/tasks"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
    "id": "7489df4c-ef03-4de0-b598-e9a590793434",
    "action": "retrieve"
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)

Пример ответа

После успешного запроса API вернет информацию о деталях задачи, как показано на изображении:
{
  "_id": "668aae3f550a4144a540803b",
  "id": "7489df4c-ef03-4de0-b598-e9a590793434",
  "application_id": "9dec7b2a-1cad-41ff-8536-d4ddaf2525d4",
  "created_at": 1720364607.967,
  "credential_id": "68253cc8-505d-47f4-97ad-0050a62e4975",
  "request": {
    "mode": "fast",
    "prompt": "Кот, сидящий на столе",
    "action": "generate"
  },
  "type": "imagine",
  "hold": false,
  "image_id": "1259525319472185344",
  "job_id": "da317da6-f500-48e6-bf32-dd48b3e6f84f",
  "response": {
    "image_url": "https://platform.cdn.acedata.cloud/midjourney/7489df4c-ef03-4de0-b598-e9a590793434.png?imageMogr2/thumbnail/!50p",
    "image_width": 1024,
    "image_height": 1024,
    "actions": [
      "upscale1",
      "upscale2",
      "upscale3",
      "upscale4",
      "reroll",
      "variation1",
      "variation2",
      "variation3",
      "variation4"
    ],
    "raw_image_url": "https://platform.cdn.acedata.cloud/midjourney/7489df4c-ef03-4de0-b598-e9a590793434.png",
    "raw_image_width": 2048,
    "raw_image_height": 2048,
    "progress": 100,
    "image_id": "1259525319472185344",
    "task_id": "7489df4c-ef03-4de0-b598-e9a590793434",
    "success": true,
    "job_id": "da317da6-f500-48e6-bf32-dd48b3e6f84f",
    "hold": false
  },
  "duration": 29.437000036239624,
  "finished_at": 1720364637.404
}
Возвращаемый результат содержит несколько полей, поле request — это тело запроса, отправленного для создания задачи, а поле response — это тело ответа, возвращенное после завершения задачи. Если type = imagine, его результат совпадает с запросом и ответом Midjourney Imagine API, если type = describe, его результат совпадает с запросом и ответом Midjourney Describe API. Описание полей следующее.
  • id: ID задачи по созданию этого изображения, используется для уникальной идентификации этой задачи по созданию изображения.
  • type: если type = imagine, это результат Midjourney Imagine API, если type = describe, это результат Midjourney Describe API.
  • job_id: ID задачи по запросу изображения, используется для уникальной идентификации этой задачи по запросу изображения.
  • image_id: уникальный идентификатор изображения, запрашиваемого в этой задаче, который необходимо передать при следующем изменении изображения.
  • request: информация о запросе в задаче по запросу изображения.
  • response: информация о ответе в задаче по запросу изображения.

Пакетный запрос

Это запрос для получения деталей нескольких задач по ID, в отличие от вышеуказанного, необходимо выбрать action как retrieve_batch. Request Body включает:
  • ids: массив загруженных ID задач.
  • action: способ выполнения операции над задачей.
Настройка, как показано на рисунке:

Пример кода

Можно заметить, что на правой стороне страницы автоматически сгенерирован код на различных языках, как показано на рисунке:

Некоторые примеры кода приведены ниже:

Пример ответа

После успешного запроса API вернет конкретную информацию о всех задачах пакетной обработки изображений. Например:
{
  "items": [
    {
      "_id": "668aae3f550a4144a540803b",
      "id": "7489df4c-ef03-4de0-b598-e9a590793434",
      "application_id": "9dec7b2a-1cad-41ff-8536-d4ddaf2525d4",
      "created_at": 1720364607.967,
      "credential_id": "68253cc8-505d-47f4-97ad-0050a62e4975",
      "request": {
        "mode": "fast",
        "prompt": "Кот, сидящий на столе",
        "action": "generate"
      },
      "type": "imagine",
      "hold": false,
      "image_id": "1259525319472185344",
      "job_id": "da317da6-f500-48e6-bf32-dd48b3e6f84f",
      "response": {
        "image_url": "https://platform.cdn.acedata.cloud/midjourney/7489df4c-ef03-4de0-b598-e9a590793434.png?imageMogr2/thumbnail/!50p",
        "image_width": 1024,
        "image_height": 1024,
        "actions": [
          "upscale1",
          "upscale2",
          "upscale3",
          "upscale4",
          "reroll",
          "variation1",
          "variation2",
          "variation3",
          "variation4"
        ],
        "raw_image_url": "https://platform.cdn.acedata.cloud/midjourney/7489df4c-ef03-4de0-b598-e9a590793434.png",
        "raw_image_width": 2048,
        "raw_image_height": 2048,
        "progress": 100,
        "image_id": "1259525319472185344",
        "task_id": "7489df4c-ef03-4de0-b598-e9a590793434",
        "success": true,
        "job_id": "da317da6-f500-48e6-bf32-dd48b3e6f84f",
        "hold": false
      },
      "duration": 29.437000036239624,
      "finished_at": 1720364637.404
    },
    {
      "_id": "668b41d6550a4144a551d996",
      "id": "807f62de-c63e-4add-8345-7f0ae6dd18e7",
      "application_id": "9dec7b2a-1cad-41ff-8536-d4ddaf2525d4",
      "created_at": 1720402390.341,
      "credential_id": "6fd3e1d5-4bd6-47e8-8872-fab89a183b53",
      "request": {
        "mode": "fast",
        "prompt": "Красивая девушка",
        "action": "generate"
      },
      "type": "imagine",
      "hold": false,
      "image_id": "1259683790612070400",
      "job_id": "ede5c805-e231-498c-8f74-3aa76d5d6d12",
      "response": {
        "image_url": "https://platform.cdn.acedata.cloud/midjourney/807f62de-c63e-4add-8345-7f0ae6dd18e7.png?imageMogr2/thumbnail/!50p",
        "image_width": 1024,
        "image_height": 1024,
        "actions": [
          "upscale1",
          "upscale2",
          "upscale3",
          "upscale4",
          "reroll",
          "variation1",
          "variation2",
          "variation3",
          "variation4"
        ],
        "raw_image_url": "https://platform.cdn.acedata.cloud/midjourney/807f62de-c63e-4add-8345-7f0ae6dd18e7.png",
        "raw_image_width": 2048,
        "raw_image_height": 2048,
        "progress": 100,
        "image_id": "1259683790612070400",
        "task_id": "807f62de-c63e-4add-8345-7f0ae6dd18e7",
        "success": true,
        "job_id": "ede5c805-e231-498c-8f74-3aa76d5d6d12",
        "hold": false
      },
      "duration": 29.471999883651733,
      "finished_at": 1720402419.813
    }
  ],
  "count": 2
}
Возвращаемый результат содержит несколько полей, среди которых items включает в себя конкретную информацию о пакетных задачах изображений, каждая конкретная информация о задаче изображения аналогична полям, упомянутым выше. Поля информации следующие.
  • items, все конкретные детали пакетных задач изображений. Это массив, каждый элемент массива имеет такой же формат, как и возвращаемый результат для одиночной задачи.
  • count, количество задач пакетного запроса изображений.

CURL

curl -X POST 'https://api.acedata.cloud/midjourney/tasks' \
-H 'accept: application/json' \
-H 'authorization: Bearer {token}' \
-H 'content-type: application/json' \
-d '{
  "action": "retrieve_batch",
  "id": "",
  "ids": ["7489df4c-ef03-4de0-b598-e9a590793434","807f62de-c63e-4add-8345-7f0ae6dd18e7"]
}'

Python

import requests

url = "https://api.acedata.cloud/midjourney/tasks"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
    "action": "retrieve_batch",
    "id": "",
    "ids": ["7489df4c-ef03-4de0-b598-e9a590793434","807f62de-c63e-4add-8345-7f0ae6dd18e7"]
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)

Обработка ошибок

При вызове API, если возникнет ошибка, API вернет соответствующий код ошибки и информацию. Например:
  • 400 token_mismatched: Неверный запрос, возможно, из-за отсутствующих или недействительных параметров.
  • 400 api_not_implemented: Неверный запрос, возможно, из-за отсутствующих или недействительных параметров.
  • 401 invalid_token: Неавторизовано, недействительный или отсутствующий токен авторизации.
  • 429 too_many_requests: Слишком много запросов, вы превысили лимит частоты.
  • 500 api_error: Внутренняя ошибка сервера, что-то пошло не так на сервере.

Пример ответа об ошибке

{
  "success": false,
  "error": {
    "code": "api_error",
    "message": "fetch failed"
  },
  "trace_id": "2cf86e86-22a4-46e1-ac2f-032c0f2a4e89"
}

Заключение

С помощью этого документа вы узнали, как использовать API Midjourney Tasks для запроса всех конкретных деталей о одиночных или пакетных задачах изображений. Надеемся, что этот документ поможет вам лучше интегрировать и использовать данный API. Если у вас есть какие-либо вопросы, пожалуйста, не стесняйтесь обращаться в нашу техническую поддержку.