> ## 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.

# Integracja i użycie API Midjourney Tasks

> Midjourney generation 集成指南 - XHuoAPI

Główna funkcja API Midjourney Tasks polega na sprawdzaniu statusu wykonania zadań za pomocą ID zadań generowanych przez API Midjourney Imagine lub API Midjourney Describe.

Dokument ten szczegółowo opisuje instrukcje integracji API Midjourney Tasks, aby pomóc Ci łatwo zintegrować i w pełni wykorzystać potężne możliwości tego API. Dzięki API Midjourney Tasks możesz łatwo sprawdzić status wykonania zadań API Midjourney Imagine lub API Midjourney Describe.

## Proces aplikacji

Aby korzystać z API Midjourney Tasks, należy najpierw przejść do strony aplikacji [Midjourney Imagine API](https://api.xhuoapi.ai/documents/e52c028d-897a-4d51-b110-60fccbe6118d) i złożyć wniosek o odpowiednią usługę, a następnie skopiować ID zadania API Imagine, jak pokazano na obrazku:

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

Na koniec przejdź do strony API Tasks [Midjourney Tasks API](https://api.xhuoapi.ai/documents/58ea7cc1-c685-40c3-a619-f29f9ac5d8f4) i złóż wniosek o odpowiednią usługę, po wejściu na stronę kliknij przycisk „Acquire”, jak pokazano na obrazku:

![Strona aplikacji](https://cdn.xhuoapi.ai/rci31i.png)

Jeśli nie jesteś zalogowany lub zarejestrowany, automatycznie zostaniesz przekierowany na [stronę logowania](https://api.xhuoapi.ai), aby zarejestrować się i zalogować, po zalogowaniu lub rejestracji automatycznie wrócisz na bieżącą stronę.

Podczas pierwszej aplikacji otrzymasz darmowy limit, który pozwala na bezpłatne korzystanie z tego API.

## Przykład żądania

API Midjourney Tasks może być używane do sprawdzania wyników API Midjourney Imagine i API Midjourney Describe. Aby dowiedzieć się, jak korzystać z API Midjourney Imagine, zapoznaj się z dokumentem [Midjourney Imagine API](https://api.xhuoapi.ai/documents/b0e32002-2707-41cc-b103-a15b1f1efdc1). Aby dowiedzieć się, jak korzystać z Midjourney Describe, zapoznaj się z [Midjourney Describe API](https://api.xhuoapi.ai/documents/d2a04242-507c-4a49-a17a-01bc382c5756).

Weźmy jako przykład ID zadania zwrócone przez usługę API Midjourney Imagine, aby pokazać, jak korzystać z tego API. Załóżmy, że mamy ID zadania: 7489df4c-ef03-4de0-b598-e9a590793434, a następnie pokażemy, jak to zrobić, przekazując ID zadania.

### Przykład zadania

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

### Ustawienia nagłówków żądania i ciała żądania

**Nagłówki żądania** obejmują:

* `accept`: określa, że oczekiwany jest wynik w formacie JSON, tutaj wpisz `application/json`.
* `authorization`: klucz do wywołania API, po złożeniu wniosku można go bezpośrednio wybrać z rozwijanej listy.

**Ciało żądania** obejmuje:

* `id`: przesłane ID zadania.
* `ids`: tablica ID zadań do zapytania w partii.
* `action`: sposób operacji na zadaniu, wspiera `retrieve` (pojedyncze zapytanie) oraz `retrieve_batch` (zapytanie w partii).

Ustawienia są pokazane na poniższym obrazku:

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

### Przykład kodu

Można zauważyć, że po prawej stronie strony automatycznie wygenerowano kod w różnych językach, jak pokazano na obrazku:

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

Niektóre przykłady kodu są następujące:

#### 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)
```

### Przykład odpowiedzi

Po pomyślnym złożeniu żądania, API zwróci szczegółowe informacje o zadaniu z tego miejsca. Na przykład:

```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": "Kot siedzący na stole",
    "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
}
```

Zwrócone wyniki zawierają wiele pól, pole request to ciało żądania, które zostało wysłane podczas inicjowania zadania, a pole response to ciało odpowiedzi zwrócone po zakończeniu zadania. Jeśli type = imagine, jego wynik jest zgodny z żądaniem i odpowiedzią API Midjourney Imagine, jeśli type = describe, jego wynik jest zgodny z żądaniem i odpowiedzią API Midjourney Describe. Opis pól jest następujący.

* `id`, ID zadania generującego ten obraz, używane do unikalnej identyfikacji tego zadania generowania obrazu.
* `type`, jeśli type = imagine oznacza, że jest to wynik API Midjourney Imagine, jeśli type = describe oznacza, że jest to wynik API Midjourney Describe.
* `job_id`, ID zadania zapytania o obraz, używane do unikalnej identyfikacji tego zadania zapytania o obraz.
* `image_id`, unikalna identyfikacja obrazu w tym zapytaniu, potrzebna do wykonania operacji na obrazie w przyszłości.
* `request`, informacje o żądaniu w zadaniu zapytania o obraz.
* `response`, informacje o odpowiedzi w zadaniu zapytania o obraz.

## Operacje zapytań w partii

To jest zapytanie o szczegóły zadań obrazów dla wielu ID zadań, w przeciwieństwie do powyższego, należy wybrać akcję jako retrieve\_batch.

**Ciało żądania** obejmuje:

* `ids`: tablica przesłanych ID zadań.
* `action`: sposób operacji na zadaniu.

Ustawienia są pokazane na poniższym obrazku:

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

### Przykład kodu

Można zauważyć, że po prawej stronie strony automatycznie wygenerowano różne języki kodu, jak pokazano na rysunku:

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

Niektóre przykłady kodu są następujące:

### Przykład odpowiedzi

Po pomyślnym wykonaniu żądania, API zwróci szczegółowe informacje o wszystkich zadaniach obrazów w partii. Na przykład:

```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": "Kot siedzący na stole",
        "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": "Piękna dziewczyna",
        "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
}
```

Zwrócone wyniki zawierają wiele pól, z których `items` zawiera szczegółowe informacje o zadaniach obrazów w partii, a szczegółowe informacje o każdym zadaniu obrazu są takie same jak w powyższych polach. Informacje o polach są następujące.

* `items`, wszystkie szczegółowe informacje o zadaniach obrazów w partii. Jest to tablica, a każdy element tablicy ma taki sam format jak wynik zapytania pojedynczego zadania.
* `count`, liczba zadań obrazów w tej partii.

#### 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)
```

## Obsługa błędów

Podczas wywoływania API, jeśli wystąpi błąd, API zwróci odpowiedni kod błędu i informacje. Na przykład:

* `400 token_mismatched`: Złe żądanie, prawdopodobnie z powodu brakujących lub nieprawidłowych parametrów.
* `400 api_not_implemented`: Złe żądanie, prawdopodobnie z powodu brakujących lub nieprawidłowych parametrów.
* `401 invalid_token`: Nieautoryzowany, nieprawidłowy lub brakujący token autoryzacyjny.
* `429 too_many_requests`: Zbyt wiele żądań, przekroczono limit.
* `500 api_error`: Błąd wewnętrzny serwera, coś poszło nie tak na serwerze.

### Przykład odpowiedzi błędu

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

## Wnioski

Dzięki tej dokumentacji, zrozumieliście, jak używać API Midjourney Tasks do zapytań o szczegółowe informacje o pojedynczych lub partiach zadań obrazów. Mamy nadzieję, że ta dokumentacja pomoże Wam lepiej zintegrować i korzystać z tego API. W razie jakichkolwiek pytań, prosimy o kontakt z naszym zespołem wsparcia technicznego.
