Zum Hauptinhalt springen
Dieser Artikel beschreibt eine Integrationsanleitung für die Midjourney Edits API, die es ermöglicht, durch Eingabe von Eingabeaufforderungen Bilder zu bearbeiten und zu generieren.

Antragsprozess

Um die API zu nutzen, müssen Sie zunächst auf die entsprechende Seite der Midjourney Edits API gehen und den entsprechenden Dienst beantragen. Nach dem Betreten der Seite klicken Sie auf die Schaltfläche „Acquire“, wie im Bild gezeigt: Wenn Sie noch nicht angemeldet oder registriert sind, werden Sie automatisch zur Anmeldeseite weitergeleitet, um sich zu registrieren und anzumelden. Nach der Anmeldung werden Sie automatisch zur aktuellen Seite zurückgeleitet. Bei der ersten Beantragung gibt es ein kostenloses Kontingent, mit dem Sie die API kostenlos nutzen können.

Grundlegende Nutzung

Zunächst sollten Sie die grundlegende Nutzung verstehen, indem Sie die Eingabeaufforderung prompt, die Generierungsaktion action und das Referenzbild image_url eingeben, um das bearbeitete Ergebnis zu erhalten. Zuerst müssen Sie ein einfaches action-Feld übergeben, dessen Wert generate ist. Die genauen Inhalte sind wie folgt:

Hier sehen wir, dass wir die Request-Header festgelegt haben, einschließlich:
  • accept: In welchem Format Sie die Antwort erhalten möchten, hier eingetragen als application/json, also im JSON-Format.
  • authorization: Der Schlüssel zur Nutzung der API, den Sie nach der Beantragung direkt auswählen können.
Zusätzlich haben wir den Request-Body festgelegt, einschließlich:
  • mask: Sie können die Maskenposition des Bildbereichs angeben, um Bearbeitungen und Neugenerierungen durchzuführen.
  • split_images: Teilt das generierte Bild in mehrere Bilder auf, die über das Feld sub_image_urls zurückgegeben werden. Standardmäßig ist es false.
  • action: Die Aktion für die Bearbeitung des Bildgenerierungsauftrags, standardmäßig generate.
  • image_url: Der Link zum Bild, das bearbeitet werden soll.
  • prompt: Die Eingabeaufforderung.
  • mode: Der Generierungsmodus, wahlweise fast/relax/turbo.
  • callback_url: Die URL, an die die Ergebnisse zurückgerufen werden sollen.
Nach der Auswahl können Sie sehen, dass auf der rechten Seite auch der entsprechende Code generiert wurde, wie im Bild gezeigt:

Klicken Sie auf die Schaltfläche „Try“, um einen Test durchzuführen. Wie im obigen Bild gezeigt, haben wir folgendes Ergebnis erhalten:
{
  "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
}
Die Rückgabe enthält mehrere Felder, die wie folgt beschrieben werden:
  • success: Der Status des Bildbearbeitungs- und Generierungsauftrags.
  • task_id: Die ID des Bildbearbeitungs- und Generierungsauftrags.
  • image_id: Die ID des Bildes für diesen Bildbearbeitungsauftrag.
  • sub_image_urls: Mehrere Bildresultate des Bildgenerierungsauftrags.
  • image_url: Der Link zum generierten Bild.
  • image_width: Die Breite des generierten Bildes.
  • image_height: Die Höhe des generierten Bildes.
  • progress: Das Fortschrittsfeld des Bildbearbeitungs- und Generierungsauftrags.
Wir haben die gewünschten Bildinformationen erhalten und müssen nur die generierte Bilddatei über die Bild-URL im Ergebnis abrufen. Wenn Sie den entsprechenden Integrationscode generieren möchten, können Sie ihn direkt kopieren, zum Beispiel sieht der CURL-Code wie folgt aus:
curl -X POST 'https://api.acedata.cloud/midjourney/edits' \
-H 'accept: application/json' \
-H 'authorization: Bearer {token}' \
-H 'content-type: application/json' \
-d '{
  "prompt": "Eine Katze, die auf einem Tisch sitzt",
  "split_images": true,
  "image_url": "https://cdn.acedata.cloud/jgo1cw.jpg",
  "action": "generate"
}'

Asynchrone Rückrufe

Da die Generierungszeit der Midjourney Edits API relativ lang ist, etwa 1-2 Minuten, bleibt die HTTP-Anfrage bei längerer Nichtreaktion verbunden, was zu einem zusätzlichen Verbrauch von Systemressourcen führt. Daher bietet diese API auch Unterstützung für asynchrone Rückrufe. Der gesamte Prozess ist: Wenn der Client die Anfrage stellt, gibt er zusätzlich ein callback_url-Feld an. Nach der API-Anfrage gibt die API sofort ein Ergebnis zurück, das ein task_id-Feld enthält, das die aktuelle Aufgaben-ID darstellt. Wenn die Aufgabe abgeschlossen ist, werden die Ergebnisse der Videoerstellung in Form von POST JSON an die vom Client angegebene callback_url gesendet, wobei auch das task_id-Feld enthalten ist, sodass die Aufgabenergebnisse über die ID verknüpft werden können. Lassen Sie uns anhand eines Beispiels verstehen, wie dies konkret funktioniert. Zunächst ist der Webhook-Rückruf ein Dienst, der HTTP-Anfragen empfangen kann. Entwickler sollten die URL ihres eigenen HTTP-Servers ersetzen. Zur Vereinfachung der Demonstration verwenden wir eine öffentliche Webhook-Beispielseite https://webhook.site/, auf der Sie eine Webhook-URL erhalten können, wie im Bild gezeigt: Kopieren Sie diese URL, um sie als Webhook zu verwenden. Das Beispiel hier lautet https://webhook.site/556e6971-b41f-4fa8-9151-6e91acd0399f. Anschließend können wir das Feld callback_url auf die oben genannte Webhook-URL setzen und die entsprechenden Parameter eingeben, wie im Bild gezeigt:

Klicken Sie auf Ausführen, und Sie werden sofort ein Ergebnis erhalten, wie folgt:
{
  "task_id": "b8b7fdc2-628e-40dd-bc0c-671c3ddac9e9"
}
Nach kurzer Wartezeit können wir auf https://webhook.site/556e6971-b41f-4fa8-9151-6e91acd0399f die Ergebnisse der Videoerstellung beobachten, wie im Bild gezeigt:

Der Inhalt lautet wie folgt:
{
    "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
}
Es kann gesehen werden, dass im Ergebnis ein task_id-Feld vorhanden ist, während die anderen Felder ähnlich wie im vorherigen Text sind. Über dieses Feld kann die Zuordnung der Aufgaben erfolgen.

Fehlerbehandlung

Beim Aufruf der API, wenn ein Fehler auftritt, gibt die API den entsprechenden Fehlercode und die Informationen zurück. Zum Beispiel:
  • 400 token_mismatched: Ungültige Anfrage, möglicherweise aufgrund fehlender oder ungültiger Parameter.
  • 400 api_not_implemented: Ungültige Anfrage, möglicherweise aufgrund fehlender oder ungültiger Parameter.
  • 401 invalid_token: Unbefugt, ungültiges oder fehlendes Autorisierungstoken.
  • 429 too_many_requests: Zu viele Anfragen, Sie haben das Rate-Limit überschritten.
  • 500 api_error: Interner Serverfehler, etwas ist auf dem Server schiefgelaufen.

Fehlerantwort Beispiel

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

Fazit

Durch dieses Dokument haben Sie gelernt, wie Sie die Midjourney Edits API verwenden können, um Bilder durch Eingabe von Eingabeaufforderungen zu bearbeiten. Wir hoffen, dass dieses Dokument Ihnen hilft, die API besser zu integrieren und zu nutzen. Bei Fragen wenden Sie sich bitte jederzeit an unser technisches Support-Team.