Перейти до основного вмісту
Основна функція 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. Припустимо, у нас є 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. Якщо у вас є будь-які питання, будь ласка, звертайтеся до нашої технічної підтримки.