Claude Opus 5.5 ist auf SeedRouter verfügbar

Midjourney V8.2 API: Bildtask senden und Ergebnis abrufen

Senden Sie Midjourney V8.2-Bildtasks, speichern Sie die ID und rufen Sie Ergebnisse mit Python ab. Mit Parametern, Bildaktionen und aktuellen Preisen.

Als Markdown lesen

Eine Integration der Midjourney V8.2 API benötigt eine explizite Version, eine gültige Bildanfrage und eine Möglichkeit, den abgeschlossenen Task abzurufen. Bei SeedRouter senden Sie an /v1/images/generations, speichern die zurückgegebene Task-ID und fragen /v1/tasks/{id} regelmäßig ab. Eine erfolgreiche Übermittlung bestätigt die Annahme des Tasks; die Bilder stehen erst im abgeschlossenen Ergebnis bereit.

Diese Anleitung folgt der Anfragespezifikation von SeedRouter. Ein kostenpflichtiger Test am 18. Oktober 2026 schloss eine V8.2-Fast-Anfrage ab und lieferte vier Bilder mit 1024 × 1024 Pixeln. Das folgende Porträt ist eines dieser Ergebnisse. Die Modellseite enthält den Playground und aktuelle Preise; die API-Referenz trennt unterstützte Eingaben von Kombinationen, die noch geprüft werden müssen. [1]

Midjourney V8.2 API-Ausgabe: eine rothaarige Frau im cremefarbenen Pullover auf einer Küstenklippe

Eine explizite Anfrage an die Midjourney V8.2 API erstellen

Verwenden Sie die vollständige Modell-ID midjourney-v8.2. SeedRouter verlangt eine explizite Modellangabe; kürzen Sie sie nicht zu midjourney ab und leiten Sie sie nicht aus einer Kontoeinstellung in einer anderen Oberfläche ab. Dokumentieren Sie das Modell zusammen mit der gesendeten Anfrage. [1]

Bereiten Sie einen serverseitigen API-Schlüssel und einen kurzen Prompt vor, dessen Ergebnis Sie prüfen können. Beginnen Sie ohne Referenzen oder Aktionen mit übergeordnetem Bild, damit Ihre erste Anfrage den grundlegenden Ablauf testet. Die folgende Anfrage erzeugte die gezeigte Porträtserie. Sie wählt Fast und aktiviert die zusätzliche Inhaltsprüfung:

{
  "model": "midjourney-v8.2",
  "prompt": "Cinematic portrait of a young woman with freckles and wind-swept auburn hair, wearing a cream cable-knit sweater, laughing on a coastal cliff at golden hour, warm rim light, shallow depth of field, 85mm film photograph",
  "speed": "fast",
  "nsfw_check": true
}

Für die minimale Anfrage genügen model und prompt; ohne Geschwindigkeitsangabe gilt Fast. Wenn Sie size hinzufügen, verwenden Sie ein Seitenverhältnis wie "16:9" statt einer Pixelangabe im Format WIDTHxHEIGHT. Eine allgemeine Bildclient-Voreinstellung mit 1024x1024, quality: "high" oder einem beliebigen n entspricht nicht der Spezifikation dieses Modells. Passen Sie den Anfrageinhalt anhand der Midjourney-Feldtabelle an, statt die Einstellungen eines anderen Modells unverändert zu übernehmen.

Einmal senden und die gespeicherte Task-ID abfragen

Das herunterladbare Python-Beispiel nutzt die Standardbibliothek, hält den Schlüssel in einer Umgebungsvariablen und schreibt die angenommene Task-ID in eine lokale Datei. Übermittlung und Polling erfolgen mit getrennten Befehlen. Dadurch lässt sich das Lesen fortsetzen, ohne einen weiteren Bildauftrag anzulegen.

export SEEDROUTER_API_KEY='your-server-side-key'
python3 midjourney-v8-2.py submit request.json --state mj-task.json
python3 midjourney-v8-2.py poll --state mj-task.json

Speichern Sie die obige JSON-Anfrage als request.json. Ersetzen Sie den Beispielschlüssel in Ihrer lokalen Umgebung durch Ihren eigenen geheimen Schlüssel; nehmen Sie ihn nicht in ein Browser-Bundle oder einen Repository-Commit auf. Für einen lokalen Bereitstellungstest setzen Sie SEEDROUTER_BASE_URL im Beispiel auf die /v1-Basis-URL dieser Bereitstellung.

Das Beispiel überschreibt bei der Übermittlung keine vorhandene Zustandsdatei. Es wiederholt auch keinen POST automatisch nach einem Verbindungsfehler. Geht die Antwort verloren, weiß die Anwendung möglicherweise nicht, ob der Task angenommen wurde. Prüfen Sie den Task-Verlauf, bevor Sie über eine erneute Übermittlung entscheiden.

Polling ist etwas anderes: Es liest einen bereits vorhandenen Task. Das Beispiel stoppt, wenn der Task abgeschlossen oder fehlgeschlagen ist, und meldet eine begrenzte Wartezeit, wenn er weiter verarbeitet wird. Ein Wartelimit ist eine Beobachtung auf Clientseite und kein Beleg dafür, dass der Task neu generiert werden muss.

Das Ergebnisformat der jeweiligen Aktion auswerten

Eine abgeschlossene Bildaktion gibt URLs in output.data zurück. Durchlaufen Sie dieses Array, statt immer vier Einträge zu erwarten. Bildgenerierung, Auswahl eines einzelnen Bilds, Bildbeschreibung und ein Bearbeitungseingabeschritt können unterschiedliche Ausgaben liefern.

ErgebnisfeldAufgabe Ihrer Anwendung
statusZwischen Verarbeitung, Abschluss und Fehlschlag unterscheiden
output.data[].urlJedes bereitgestellte Bild anzeigen oder speichern
output.gridEin geliefertes Raster als Raster kennzeichnen; eine Datei kann mehrere Bildoptionen enthalten
output.textZurückgegebenen Text anzeigen, ohne vier Vorschläge oder Englisch vorauszusetzen
output.seedBei Vorhandensein speichern; nicht für jedes Ergebnis voraussetzen
output.awaiting_inputDen dokumentierten Bearbeitungseingabeablauf fortsetzen

Behandeln Sie einen fehlgeschlagenen Task in Ihrer Anwendung als Fehlschlag, auch wenn die HTTP-Anfrage zum Lesen erfolgreich war. HTTP-Erfolg bedeutet, dass die Statusabfrage bedient wurde; er bedeutet nicht, dass das angeforderte Bild generiert wurde.

Wenn output.grid true ist, enthält eine URL das Raster. Erfinden Sie daraus keine vier einzelnen URLs. Eine spätere Auswahl verwendet die bei eins beginnende Bildposition im Raster; die Anzahl der URLs entspricht nicht der Anzahl verfügbarer Optionen.

Das Beispiel gibt die abgeschlossene Ausgabe als JSON aus. Ihre Anwendung kann Speicherung, Vorschaubilder und Auswahlmöglichkeiten für die gelieferten Bilder ergänzen. Bewahren Sie die Task-ID bei diesen Ergebnissen auf, damit eine spätere Aktion auf den richtigen übergeordneten Task verweisen kann.

Native Parameter übertragen, ohne Konflikte zu verdecken

Die Integration akzeptiert strukturierte Felder und unterstützte native Prompt-Flags. Die Rangfolge lautet: strukturierte Felder, dann extra, dann Flags in prompt. Explizit gesetzte Nullen und false-Werte bleiben erhalten.

Ein Prompt mit --stylize 700 zusammen mit "stylize": 0 verwendet beispielsweise den expliziten Wert null. Das ist nützlich, wenn eine Oberfläche einen separaten Steuerwert sendet, kann aber Anwendungen überraschen, die Prompts und JSON an unterschiedlichen Stellen zusammensetzen. Verwenden Sie möglichst nur eine Quelle pro Einstellung.

Für SeedRouter-V8.2-Anfragen akzeptiert quality in kompatiblen Kombinationen 0.25, 0.5, 1 oder 2. Qualität und hd sind unabhängige Eingaben: Eine Qualitätseinstellung wählt nicht HD aus. Prüfen Sie die aktuellen Kombinationsgrenzen, bevor Sie beide oder weitere Referenzsteuerungen hinzufügen; dokumentierte Eingaben belegen nicht ihre Wirkung in jeder Version. Raw ist von beiden getrennt; die Raw-Anleitung erklärt diesen Unterschied. [1]

Unbekannte JSON-Felder werden von dieser Integration verworfen, unbekannte native Flags dagegen abgelehnt. Werten Sie eine angenommene Anfrage nicht als Nachweis dafür, dass ein sachfremdes zusätzliches JSON-Feld die Ausgabe verändert hat. Prüfen Sie die dokumentierten Feldnamen und bewahren Sie den exakt gesendeten Anfrageinhalt im Testprotokoll auf.

Folgeaktionen mit ihrem übergeordneten Bildtask verknüpfen

Verwenden Sie für eine Folgeaktion Ihre SeedRouter-parent_task_id. Eine abhängige Aktion bleibt an ihren ursprünglichen Ausführungskontext gebunden. Ist dieser nicht verfügbar, schlägt sie fehl, statt anderswo einen neuen übergeordneten Task anzulegen. Dieser muss demselben Konto gehören, dasselbe Modell verwenden und für die gewünschte Aktion weiterhin verfügbar sein. Öffentliche Bildindizes beginnen bei eins.

Die Auswahl eines Bilds und eine kreative Hochskalierung sind unterschiedliche Aktionen. Beschreiben Sie ein select-Ergebnis nicht als Auflösungsverbesserung. Ebenso sind Variation, Remix und das offizielle V8.2 Edit Model eigenständige Funktionen mit unterschiedlichen Anforderungen.

Die aktuelle Integration stellt das neue Edit Model nicht als geprüfte API-Aktion bereit. Ersetzen Sie es nicht durch eine ältere Inpaint-Anfrage in der Annahme, dass diese dasselbe Verhalten liefert. Die Bearbeitungsanleitung erläutert verfügbare Alternativen und eine geprüfte V6.1-Maskenbearbeitungsfolge; die API-Referenz dokumentiert die Grenzen der implementierten Aktionen.

Aufträge statt Vorschaubilder zählen

Eine abgeschlossene Generierung ist nach der Preisspezifikation dieser Integration ein Auftrag. Die Auswahl eines vorhandenen Bilds aus einem Raster erzeugt keine weitere kostenpflichtige Generierung. Auch der Wechsel in den Bearbeitungseingabeschritt verursacht keine zweite Generierungsgebühr; die abschließende Modal-Aktion ist der kostenpflichtige Schritt. Eine Generierung mit vier Bildern ist nicht automatisch vier getrennt berechneten Aufträgen gleichzusetzen. Der V8.2-Draft-Test am 18. Oktober lieferte 24 Bilder in einem Auftrag; die Bildanzahl ist keine verlässliche Preisformel.

Verwenden Sie den aktuellen Preis für die gewählte Version, Aktion, Geschwindigkeit und den Modus. Aktionen mit übergeordnetem Bild können Einstellungen übernehmen. Ihr Preis sollte deshalb auf der tatsächlich wirksamen Anfrage und nicht auf vermuteten Standardwerten beruhen. Die Modellseite liest die konfigurierten Preise, statt in diesem Tutorial einen dauerhaften Dollarbetrag zu hinterlegen.

Dokumentieren Sie für Ihren Abnahmetest die Anfrage, Task-ID, den Endstatus, die Anzahl der Ausgaben und die tatsächliche Kontobelastung. Eine erfolgreiche Kompilierung oder ein simulierter HTTP-Test kann diese Laufzeitfakten nicht belegen. Fehlgeschlagene Anfragen werden von SeedRouter nicht berechnet.

Häufige Fragen

Kann ich denselben API-Schlüssel im Frontend-JavaScript verwenden?

Bewahren Sie ihn auf Ihrem Server auf. Der Browser sollte einen authentifizierten Anwendungsendpunkt aufrufen, der die Anfrage mit dem serverseitigen Schlüssel übermittelt.

Bedeutet eine Task-ID, dass das Bild fertig ist?

Nein. Fragen Sie den Task ab, bis er abgeschlossen oder fehlgeschlagen ist, und verarbeiten Sie dann das entsprechende Ergebnis. Speichern Sie die ID, bevor Sie diese Polling-Schleife starten.

Sollte ein Timeout eine neue Generierung auslösen?

Nicht automatisch. Bewahren Sie jede bekannte Task-ID auf und prüfen Sie den vorhandenen Task. Ein Verbindungs- oder Client-Wartetimeout belegt nicht, dass die ursprüngliche Übermittlung abgelehnt wurde.

Kann ich die Version für eine Aktion mit übergeordnetem Bild ändern?

Diese Integration verlangt dasselbe Modell wie beim übergeordneten Task. Starten Sie eine separate Generierung, wenn Sie eine andere Version prüfen möchten.

Beginnen Sie Ihre Midjourney V8.2 API-Integration mit einer expliziten Anfrage und einer gespeicherten Task-ID. Prüfen Sie die gelieferte Ausgabe und Belastung, bevor Sie Referenzen oder eine Folge von Bildaktionen hinzufügen.

Quellen

Spezifikation und Ausführungsbelege wurden am 18. Oktober 2026 geprüft. Die gezeigten Bilder stammen aus kostenpflichtigen Integrationstests und sind kein allgemeiner Modellbenchmark.

[1] SeedRouter Midjourney API-Referenz

[2] Versionierte Modelleinstellungen und aktuelle Preise