> ## Documentation Index
> Fetch the complete documentation index at: https://docs.xhuoapi.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Midjourney Tasks API の接続と使用

> Midjourney generation 集成指南 - XHuoAPI

Midjourney Tasks API の主な機能は、Midjourney Imagine API または Midjourney Describe API によって生成されたタスクIDを入力することで、そのタスクの実行状況を照会することです。

この文書では、Midjourney Tasks API の接続説明を詳しく紹介し、簡単に統合し、この API の強力な機能を十分に活用できるようにします。Midjourney Tasks API を使用することで、Midjourney Imagine API または Midjourney Describe API のタスク実行状況を簡単に照会できます。

## 申請プロセス

Midjourney Tasks API を使用するには、まず申請ページ [Midjourney Imagine API ](https://api.xhuoapi.ai/documents/e52c028d-897a-4d51-b110-60fccbe6118d) で該当するサービスを申請し、次に Imagine API のタスクIDをコピーします。以下の図のように：

<p>
  <img src="https://cdn.xhuoapi.ai/lx4mwb.png" width="500" className="m-auto" />
</p>

最後に、Tasks API ページ [Midjourney Tasks API ](https://api.xhuoapi.ai/documents/58ea7cc1-c685-40c3-a619-f29f9ac5d8f4) にアクセスし、該当するサービスを申請します。ページに入ったら、「Acquire」ボタンをクリックします。以下の図のように：

![申請ページ](https://cdn.xhuoapi.ai/rci31i.png)

まだログインまたは登録していない場合は、自動的に[ログインページ](https://api.xhuoapi.ai)にリダイレクトされ、登録とログインを促されます。ログインまたは登録後、現在のページに自動的に戻ります。

初回申請時には無料のクレジットが付与され、この API を無料で使用できます。

## リクエスト例

Midjourney Tasks API は、Midjourney Imagine API と Midjourney Describe API の結果を照会するために使用できます。Midjourney Imagine API の使用方法については、文書 [Midjourney Imagine API ](https://api.xhuoapi.ai/documents/b0e32002-2707-41cc-b103-a15b1f1efdc1) を参照してください。Midjourney Describe の使用方法については、[Midjourney Describe API ](https://api.xhuoapi.ai/documents/d2a04242-507c-4a49-a17a-01bc382c5756) を参照してください。

Midjourney Imagine API サービスから返されたタスクIDの一例を用いて、この API の使用方法を示します。タスクID：7489df4c-ef03-4de0-b598-e9a590793434 があると仮定し、次にタスクIDを渡す方法を示します。

### タスク例の画像

<p>
  <img src="https://cdn.xhuoapi.ai/lx4mwb.png" width="500" className="m-auto" />
</p>

### リクエストヘッダーとリクエストボディの設定

**Request Headers** には以下が含まれます：

* `accept`：JSON形式のレスポンス結果を受け取ることを指定し、ここには `application/json` を記入します。
* `authorization`：APIを呼び出すためのキーで、申請後に直接ドロップダウンから選択できます。

**Request Body** には以下が含まれます：

* `id`：アップロードされたタスクID。
* `ids`：バッチ照会時のタスクID配列。
* `action`：タスクの操作方法で、`retrieve`（単一照会）と `retrieve_batch`（バッチ照会）をサポートします。

設定は以下の図のようにします：

<p>
  <img src="https://cdn.xhuoapi.ai/ybek58.png" width="500" className="m-auto" />
</p>

### コード例

ページの右側には、さまざまな言語のコードが自動生成されていることがわかります。以下の図のように：

<p>
  <img src="https://cdn.xhuoapi.ai/46ookb.png" width="500" className="m-auto" />
</p>

一部のコード例は以下の通りです：

#### CURL

```bash theme={null}
curl -X POST 'https://api.xhuoapi.ai/v1/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

```python theme={null}
import requests

url = "https://api.xhuoapi.ai/v1/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 はこの画像タスクの詳細情報を返します。例えば：

```json theme={null}
{
  "_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": "A cat sitting on a table",
    "action": "generate"
  },
  "type": "imagine",
  "hold": false,
  "image_id": "1259525319472185344",
  "job_id": "da317da6-f500-48e6-bf32-dd48b3e6f84f",
  "response": {
    "image_url": "https://platform.cdn.xhuoapi.ai/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.xhuoapi.ai/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 フィールドはタスクを開始したときの request body です。また、response フィールドはタスク完了後に返される response body です。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`：タスクの操作方法。

設定は以下の図のようにします：

<p>
  <img src="https://cdn.xhuoapi.ai/ljmy8w.png" width="500" className="m-auto" />
</p>

### コード例

ページの右側には、さまざまな言語のコードが自動的に生成されていることがわかります。以下の画像のように：

<p>
  <img src="https://cdn.xhuoapi.ai/ljmy8w.png" width="500" className="m-auto" />
</p>

一部のコード例は以下の通りです：

### レスポンス例

リクエストが成功すると、APIはすべてのバッチ画像タスクの具体的な詳細情報を返します。例えば：

```json theme={null}
{
  "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.xhuoapi.ai/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.xhuoapi.ai/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.xhuoapi.ai/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.xhuoapi.ai/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

```bash theme={null}
curl -X POST 'https://api.xhuoapi.ai/v1/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

```python theme={null}
import requests

url = "https://api.xhuoapi.ai/v1/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": "取得に失敗しました"
  },
  "trace_id": "2cf86e86-22a4-46e1-ac2f-032c0f2a4e89"
}
```

## 結論

この文書を通じて、Midjourney Tasks APIを使用して単一またはバッチ画像タスクのすべての具体的な詳細情報を照会する方法を理解しました。この文書がAPIの接続と使用に役立つことを願っています。ご不明な点がございましたら、いつでも技術サポートチームにお問い合わせください。
