> ## 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 Edits API Integrationsbeskrivning

> Midjourney generation 集成指南 - XHuoAPI

Denna artikel kommer att introducera en Midjourney Edits API integrationsbeskrivning, som kan redigera inkommande bilder genom att ange ledord.

## Ansökningsprocess

För att använda API:et måste du först gå till [Midjourney Edits API](https://api.xhuoapi.ai/documents/midjourney-edits) motsvarande sida för att ansöka om den tjänst som behövs. När du kommer till sidan, klicka på knappen "Acquire", som visas i bilden nedan:

![](https://cdn.xhuoapi.ai/q6ytrc.png)

Om du inte har loggat in eller registrerat dig kommer du automatiskt att omdirigeras till inloggningssidan där du uppmanas att registrera dig och logga in. Efter att ha loggat in eller registrerat dig kommer du automatiskt att återvända till den aktuella sidan.

Vid första ansökan kommer det att finnas en gratis kvot som ges, så att du kan använda API:et gratis.

## Grundläggande användning

Först och främst, förstå den grundläggande användningsmetoden, vilket innebär att ange ledord `prompt`, genereringsåtgärd `action`, referensbild `image_url`, så får du det bearbetade resultatet. Först behöver du enkelt överföra ett `action`-fält, vars värde är `generate`, den specifika informationen är som följer:

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

Här kan vi se att vi har ställt in Request Headers, inklusive:

* `accept`: vilken format av svar du vill ta emot, här anges som `application/json`, det vill säga JSON-format.
* `authorization`: nyckeln för att anropa API:et, efter ansökan kan du direkt välja från rullgardinsmenyn.

Dessutom har vi ställt in Request Body, inklusive:

* `mask`: kan specificera maskeringspositionen för bildområdet för redigering och regenerering.
* `split_images`: dela den genererade bilden i flera bilder, returneras genom sub\_image\_urls-fältet. Som standard är det false.
* `action`: åtgärden för denna redigeringsbildsgenereringsuppgift, standard är `generate`.
* `image_url`: länken till bilden som ska redigeras.
* `prompt`: ledord.
* `mode`: genereringsläge, valfritt `fast`/`relax`/`turbo`.
* `callback_url`: URL för att ta emot callback-resultat.

När du har valt kan du se att motsvarande kod också har genererats till höger, som visas i bilden nedan:

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

Klicka på knappen "Try" för att testa, som visas i bilden ovan, här får vi följande resultat:

```json theme={null}
{
  "sub_image_urls": [
    "https://cdn.midjourney.com/88e16dab-ef48-43a5-af73-bf24065287bc/0_0.png",
    "https://cdn.midjourney.com/88e16dab-ef48-43a5-af73-bf24065287bc/0_1.png",
    "https://cdn.midjourney.com/88e16dab-ef48-43a5-af73-bf24065287bc/0_2.png",
    "https://cdn.midjourney.com/88e16dab-ef48-43a5-af73-bf24065287bc/0_3.png"
  ],
  "image_url": "https://storage.fonedis.cc/attachments/1372468820912115716/1391371957878132849/cat_sitting_table_88e16dab-ef48-43a5-af73-bf24065287bc.png?ex=686ba79d&is=686a561d&hm=ad005d06f6673d6152456e04c3cbec39d062bd9df10448623fae27ddaf8b8a80&",
  "image_width": 960,
  "image_height": 1200,
  "raw_image_url": "https://storage.fonedis.cc/attachments/1372468820912115716/1391371957878132849/cat_sitting_table_88e16dab-ef48-43a5-af73-bf24065287bc.png?ex=686ba79d&is=686a561d&hm=ad005d06f6673d6152456e04c3cbec39d062bd9df10448623fae27ddaf8b8a80&",
  "raw_image_width": 960,
  "raw_image_height": 1200,
  "progress": 100,
  "image_id": "1391372193836826624",
  "task_id": "26c39859-f54a-4998-9e42-3da96eceee8c",
  "success": true
}
```

Det returnerade resultatet har flera fält, som beskrivs nedan:

* `success`, statusen för bildredigeringsgenereringsuppgiften.
* `task_id`, ID för bildredigeringsgenereringsuppgiften.
* `image_id`, ID för den aktuella bildredigeringsuppgiften.
* `sub_image_urls`, flera bildresultat från bildgenereringsuppgiften.
* `image_url`, länken till den genererade bildresultatet.
* `image_width`, bredden på den genererade bildresultatet.
* `image_height`, höjden på den genererade bildresultatet.
* `progress`, fältet för framsteg för bildredigeringsgenereringsuppgiften.

Vi kan se att vi har fått tillfredsställande bildinformation, vi behöver bara hämta den genererade bilden via länken i `image_url`.

Om du vill generera motsvarande integrationskod kan du direkt kopiera den, till exempel CURL-koden nedan:

```shell theme={null}
curl -X POST 'https://api.xhuoapi.ai/v1/midjourney/edits' \
-H 'accept: application/json' \
-H 'authorization: Bearer {token}' \
-H 'content-type: application/json' \
-d '{
  "prompt": "A cat sitting on a table",
  "split_images": true,
  "image_url": "https://cdn.xhuoapi.ai/jgo1cw.jpg",
  "action": "generate"
}'
```

## Asynkron callback

Eftersom Midjourney Edits API:s genereringstid är relativt lång, cirka 1-2 minuter, om API:et inte svarar under en längre tid, kommer HTTP-förfrågan att hålla anslutningen öppen, vilket leder till extra systemresursförbrukning. Därför erbjuder detta API också stöd för asynkron callback.

Den övergripande processen är: när klienten initierar en begäran, specificera ett extra `callback_url`-fält. Efter att klienten har initierat API-begäran kommer API:et omedelbart att returnera ett resultat som innehåller ett `task_id`-fält, vilket representerar det aktuella uppgifts-ID:t. När uppgiften är klar kommer resultatet av den genererade videon att skickas till klientens angivna `callback_url` i form av POST JSON, vilket också inkluderar `task_id`-fältet, så att uppgiftsresultatet kan kopplas ihop med ID:t.

Låt oss förstå hur man gör detta genom ett exempel.

Först är Webhook-callback en tjänst som kan ta emot HTTP-förfrågningar, utvecklare bör ersätta med URL:en till sin egen byggda HTTP-server. Här för att underlätta demonstration använder vi en offentlig Webhook-exempelsida [https://webhook.site/](https://webhook.site/), öppna denna webbplats för att få en Webhook-URL, som visas i bilden nedan:

![](https://cdn.xhuoapi.ai/hfrbzw.png)

Kopiera denna URL, så kan den användas som Webhook, exemplet här är `https://webhook.site/556e6971-b41f-4fa8-9151-6e91acd0399f`.

Därefter kan vi ställa in fältet `callback_url` till ovanstående Webhook-URL, samtidigt som vi fyller i motsvarande parametrar, den specifika informationen visas i bilden nedan:

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

Klicka på kör, så kan du se att du omedelbart får ett resultat, som följer:

```
{
  "task_id": "b8b7fdc2-628e-40dd-bc0c-671c3ddac9e9"
}
```

Vänta en stund, så kan vi observera resultatet av den genererade videon på `https://webhook.site/556e6971-b41f-4fa8-9151-6e91acd0399f`, som visas i bilden nedan:

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

Innehållet är som följer:

```json theme={null}
{
    "sub_image_urls": [
        "https://cdn.midjourney.com/f3638ed2-60f6-49dd-897a-6d68c15afb17/0_0.png",
        "https://cdn.midjourney.com/f3638ed2-60f6-49dd-897a-6d68c15afb17/0_1.png",
        "https://cdn.midjourney.com/f3638ed2-60f6-49dd-897a-6d68c15afb17/0_2.png",
        "https://cdn.midjourney.com/f3638ed2-60f6-49dd-897a-6d68c15afb17/0_3.png"
    ],
    "image_url": "https://storage.fonedis.cc/attachments/1372468820912115716/1391374307719905340/cat_sitting_table_f3638ed2-60f6-49dd-897a-6d68c15afb17.png?ex=686ba9cd&is=686a584d&hm=71543c21c38db8a50c7ebcf54bc5208ec349e8592ec9e332f778f74167000ced&",
    "image_width": 960,
    "image_height": 1200,
    "raw_image_url": "https://storage.fonedis.cc/attachments/1372468820912115716/1391374307719905340/cat_sitting_table_f3638ed2-60f6-49dd-897a-6d68c15afb17.png?ex=686ba9cd&is=686a584d&hm=71543c21c38db8a50c7ebcf54bc5208ec349e8592ec9e332f778f74167000ced&",
    "raw_image_width": 960,
    "raw_image_height": 1200,
    "progress": 100,
    "image_id": "1391374390892953600",
    "task_id": "b8b7fdc2-628e-40dd-bc0c-671c3ddac9e9",
    "success": true
}
```

Det kan ses att resultatet innehåller ett `task_id` fält, medan de andra fälten liknar de ovan, genom detta fält kan uppgiften kopplas samman.

## Felhantering

Vid anrop av API:et, om ett fel uppstår, kommer API:et att returnera motsvarande felkod och information. Till exempel:

* `400 token_mismatched`: Felaktig begäran, möjligtvis på grund av saknade eller ogiltiga parametrar.
* `400 api_not_implemented`: Felaktig begäran, möjligtvis på grund av saknade eller ogiltiga parametrar.
* `401 invalid_token`: Obemyndigad, ogiltig eller saknad auktoriseringstoken.
* `429 too_many_requests`: För många begärningar, du har överskridit hastighetsgränsen.
* `500 api_error`: Intern serverfel, något gick fel på servern.

### Exempel på felrespons

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

## Slutsats

Genom detta dokument har du fått en förståelse för hur du använder Midjourney Edits API för att redigera bilder genom att ange ledord. Vi hoppas att detta dokument kan hjälpa dig att bättre integrera och använda API:et. Om du har några frågor, tveka inte att kontakta vårt tekniska supportteam.
