Open AIavDocsStartseite
Bewahren Sie API-Schlüssel in serverseitigen Umgebungsvariablen oder einer Geheimnisverwaltung auf. Legen Sie sie niemals in Browser-Bundles, Git, Protokolle oder Screenshots.

Schnellstart mit den offiziellen SDKs

Die offiziellen SDKs bündeln den gesamten Ablauf (Erstellen → Abfragen → Herunterladen) mit automatischen Idempotenzschlüsseln und typisierten Fehlern. Das Node-SDK hat keine Abhängigkeiten, das Python-SDK hängt nur von httpx ab. Sie werden vorerst als GitHub-Repositorys bereitgestellt; Veröffentlichungen auf npm und PyPI werden gesondert angekündigt.

Node

npm install github:openaiav/sdk-node   # npm release to be announced

import { OpenAiav } from '@openaiav/sdk'
const client = new OpenAiav({ apiKey: process.env.OPENAIAV_API_KEY })
const task = await client.generations.createAndWait({
  model: 'seedance-2.5-oa', prompt: 'She walks into the sunlight.',
  resolution: '480p', aspectRatio: 'adaptive', durationSeconds: 4,
  generateAudio: false
})
await client.generations.downloadToFile(task.id, './out.mp4')

Python

pip install git+https://github.com/openaiav/sdk-python   # PyPI release to be announced

from openaiav import OpenAiav
client = OpenAiav(os.environ["OPENAIAV_API_KEY"])
task = client.generations.create_and_wait({
    "model": "seedance-2.5-oa", "prompt": "She walks into the sunlight.",
    "resolution": "480p", "aspectRatio": "adaptive", "durationSeconds": 4,
    "generateAudio": False,
})
client.generations.download_to_file(task["id"], "./out.mp4")

In vier Schritten integrieren

  1. Rufen Sie mit der serverseitigen Umgebungsvariable OPENAIAV_API_KEY https://api.openaiav.com/v1/models auf und lesen Sie die aktuellen Modellschlüssel, Preise und reference_modes.
  2. Senden Sie prompt, referenceMode und referenceImages per POST an /v1/generations. Referenzbilder sind öffentliche HTTPS-URLs und müssen nicht vorab registriert werden. Erfolg ist HTTP 201.
  3. Speichern Sie die zurückgegebene id und fragen Sie nach poll_after_ms dieselbe GET /v1/generations/{id} ab. Bei processing, result_pending und submission_unknown warten Sie weiter; erstellen Sie keine neue Aufgabe.
  4. Sobald der Status succeeded ist, laden Sie mit GET /v1/generations/{id}/content herunter. Eine vollständige Antwort ist HTTP 200, ein einzelner Byte-Bereich 206.

Authentifizierung und Idempotenz

export OPENAIAV_API_KEY='oav_...'
# One Idempotency-Key per create intent: every run of this script makes a new one.
# Reuse it only when retrying this same create. No uuidgen? IDEMPOTENCY_KEY=$(python3 -c 'import uuid;print(uuid.uuid4())')
IDEMPOTENCY_KEY=$(uuidgen | tr 'A-Z' 'a-z')
echo "Idempotency-Key: $IDEMPOTENCY_KEY  (reuse this value only when retrying this same create)"

Senden Sie bei jeder Anfrage Authorization: Bearer oav_... und bewahren Sie den Schlüssel serverseitig auf. Das Erstellen erfordert generation:create, Abfragen und Download erfordern generation:read. Generieren Sie für jede Erstellungsabsicht einen neuen Idempotency-Key (eine UUID), sodass jeder Lauf eines Beispiels einen neuen Schlüssel erhält. Verwenden Sie ihn nur erneut, wenn Sie genau diese Erstellung nach einem unklaren Netzwerkergebnis wiederholen; kombinieren Sie einen Schlüssel nie mit unterschiedlichen Inhalten.

Anfrage-Header

ParameterTypPflichtBeschreibung
AuthorizationstringPflichtJede /v1-Anfrage verwendet Bearer oav_...; bewahren Sie den Schlüssel auf Ihrem Server auf.
Idempotency-KeystringPflicht beim Erstellen von AufgabenGenerieren Sie für jede Erstellungsabsicht einen neuen Wert (zum Beispiel eine UUID) und verwenden Sie ihn nur erneut, wenn Sie genau diese Erstellung wiederholen; mit demselben Wert und Inhalt wird nichts doppelt erstellt oder berechnet.
Content-TypestringPflicht bei POSTDas Erstellen von Generierungen verwendet application/json.

Endpunkte

MethodePfadErfolgBerechtigungBeschreibung
GET/v1/models200Jeder gültige API-SchlüsselLiest die aktuell verfügbaren Modelle, Preise, Auflösungen, Dauern und reference_modes. Prüfen Sie die Funktionen vor dem Absenden anhand des Katalogs.
POST/v1/generation-quotes201generation:createZeigt den aktuellen Preis ohne Preisbindung an. Beim Erstellen wird neu berechnet und genau reserved_usd aus der Erstellungsantwort als fester Betrag belastet; fehlgeschlagene Aufgaben werden vollständig erstattet. quoteId bleibt zulässig, expires_at empfiehlt nur eine Aktualisierung.
POST/v1/generations201generation:createErstellt eine asynchrone Aufgabe; senden Sie Referenzbilder und referenceMode in derselben JSON-Anfrage.
GET/v1/generations/{id}200generation:readFragt dieselbe Aufgabe gemäß poll_after_ms ab, bis sie einen Endzustand erreicht.
GET/v1/generations/{id}/content200 / 206generation:readLädt die Ausgabe nach erfolgreichem Abschluss herunter; eine Anfrage mit einem einzelnen Byte-Bereich liefert 206.

Schritt 1: Modellfunktionen abrufen

Legen Sie Modellfunktionen nicht fest im Code fest. Senden Sie nur Modi, die in reference_modes aufgeführt sind, und blenden Sie inkompatible Kombinationen vor dem Absenden aus oder sperren Sie sie. Das minimale Beispiel zeigt eine Anfrage mit 4 Sekunden, 480p und ohne Audio mit seedance-2.5-oa.

curl --fail-with-body 'https://api.openaiav.com/v1/models' \
  --header "Authorization: Bearer $OPENAIAV_API_KEY"

Minimales öffentliches Videobeispiel

Das Beispiel enthält den gesamten Ablauf: Erstellen → dieselbe Aufgabe abfragen → Herunterladen. first_frame verwendet ein Referenzbild und adaptive; generateAudio=false verzichtet auf Audio. Die Erfolgscodes sind 201, 200 und 200/206; prüfen Sie bei Fehlern zuerst HTTP und dann error.code.

# Keep OPENAIAV_API_KEY in an environment variable; do not paste secrets into shell history.
# One Idempotency-Key per create intent: every run of this script makes a new one.
# Reuse it only when retrying this same create. No uuidgen? IDEMPOTENCY_KEY=$(python3 -c 'import uuid;print(uuid.uuid4())')
IDEMPOTENCY_KEY=$(uuidgen | tr 'A-Z' 'a-z')
echo "Idempotency-Key: $IDEMPOTENCY_KEY  (reuse this value only when retrying this same create)"

# 1. Create — success: HTTP 201. On failure, the response body contains error.code.
# Lost response (timeout or dropped connection)? Re-run this same command in this shell:
# the unchanged $IDEMPOTENCY_KEY returns the original task instead of creating a second one.
curl --fail-with-body --request POST 'https://api.openaiav.com/v1/generations' \
  --header "Authorization: Bearer $OPENAIAV_API_KEY" \
  --header "Idempotency-Key: $IDEMPOTENCY_KEY" \
  --header 'Content-Type: application/json' \
  --data '{
  "model": "seedance-2.5-oa",
  "prompt": "A young woman finishes a letter and walks from a stone cottage into the morning sunlight",
  "resolution": "480p",
  "aspectRatio": "adaptive",
  "durationSeconds": 4,
  "referenceMode": "first_frame",
  "referenceImages": [
    "https://developers.openaiav.com/samples/seedance-letter-reference.webp"
  ],
  "generateAudio": false,
  "outputFormat": "mp4"
}'

# 2. Save the returned id as TASK_ID. Poll the same id — success: HTTP 200.
curl --fail-with-body 'https://api.openaiav.com/v1/generations/TASK_ID' \
  --header "Authorization: Bearer $OPENAIAV_API_KEY"

# Repeat step 2 after poll_after_ms until status is succeeded or failed.
# Never recreate a task whose status is submission_unknown.

# 3. After succeeded, download — success: HTTP 200 (or 206 with Range).
curl --fail-with-body --location 'https://api.openaiav.com/v1/generations/TASK_ID/content' \
  --header "Authorization: Bearer $OPENAIAV_API_KEY" \
  --output 'result.mp4'

Anfrageparameter

ParameterTypPflichtBeschreibung
modelstringPflichtVerwenden Sie den model-Wert aus GET /v1/models; das minimale Videobeispiel nutzt seedance-2.5-oa.
promptstringPflicht1–4000 Zeichen. Bei der Omni-Referenz können Sie Bilder in der Reihenfolge des Arrays als @Image1, @Image2 usw. ansprechen.
resolutionstringOptionalMuss in den resolutions des gewählten Modells enthalten sein; das minimale Videobeispiel nutzt 480p.
aspectRatiostringOptionalMuss in den aspect_ratios des gewählten Modells enthalten sein; verwenden Sie adaptive, wenn das Modell es für Startbild-Anfragen verlangt. Bei Bildmodellen mit image_size_options senden Sie resolution und aspectRatio als Paar aus dieser Liste: Nicht jedes Seitenverhältnis gibt es in jeder Auflösung.
durationSecondsintegerOptionalDie Videodauer muss mit durationSeconds als ganze Zahl im Katalogbereich duration_seconds angegeben werden; bei Auslassung gilt die Mindestdauer des Modells. Das Mindestbeispiel verwendet 4 Sekunden.
referenceModefirst_frame | omni_referencePflicht bei Referenzbildern für VideosNur mit Seedance-Videomodellen verwenden, die den Modus in reference_modes ausdrücklich aufführen. Pro Anfrage ist nur ein Modus möglich.
referenceImagesstring[]Zusammen mit referenceMode angebenÖffentliche HTTPS-Bild-URLs. first_frame verlangt genau ein Bild; das Limit für omni_reference steht in reference_images_max.
inputImagesstring[]OptionalEingabebilder (Referenzbilder) für Bild-zu-Bild, nur für Bildmodelle. Jeder Eintrag ist eine öffentliche HTTPS-Bild-URL oder eine Data-URL der Form data:image/png;base64,…, data:image/jpeg;base64,… oder data:image/webp;base64,…. Die Grenzen jedes Modells finden Sie in GET /v1/models: input_images_max, input_image_max_bytes (pro Bild, per URL oder Data-URL) und input_image_mime_types. Referenzbilder können den Betrag erhöhen. Kombinieren Sie sie nicht mit einem Video-Referenzmodus.
generateAudiobooleanOptionalStandardmäßig true bei Videomodellen mit Audiounterstützung. Das günstigste Beispiel sendet ausdrücklich false; der aktuelle Katalog weist keinen separaten Audioaufschlag aus, und für die Abrechnung ist immer GET /v1/models maßgeblich.
outputFormatmp4 | movOptionalNur Werte aus output_formats im Katalog wählen; das minimale Beispiel nutzt mp4.

Referenzmodi

first_frame

first_frame: Das Referenzbild wird zum ersten Bild und bestimmt den Bildaufbau. Senden Sie genau einen Eintrag in referenceImages; aspectRatio stammt aus den aspect_ratios des Modells und ist auf adaptive festgelegt, wenn der Katalog es anbietet (die Ausgabe folgt dem Referenzbild). first_last_frame: Senden Sie genau 2 referenceImages. Die Reihenfolge im Array ist Startbild, dann Endbild, und das Modell ergänzt den Übergang. Die beiden Bilder müssen nicht gleich groß sein. Bildmodi lassen sich nicht mit omni_reference kombinieren.

{
  "model": "seedance-2.5-oa",
  "prompt": "A young woman finishes a letter and walks from a stone cottage into the morning sunlight",
  "resolution": "480p",
  "aspectRatio": "adaptive",
  "durationSeconds": 4,
  "referenceMode": "first_frame",
  "referenceImages": [
    "https://developers.openaiav.com/samples/seedance-letter-reference.webp"
  ],
  "generateAudio": false,
  "outputFormat": "mp4"
}

omni_reference

omni_reference: Referenzmedien halten Motiv, Stil und Szene konsistent, ohne zum ersten Bild zu werden. Neben referenceImages akzeptieren geeignete Modelle auch referenceVideos und referenceAudios; die Limits je Typ stehen in der Tabelle unten, und jeder Typ, den der Katalog nicht deklariert, führt beim Absenden zu 400. Prompts sprechen Elemente in ihrer Reihenfolge innerhalb des Typs an: @Image1, @Video1, @Audio1.

{
  "model": "seedance-2.5-oa",
  "prompt": "Keep the identity and outfit from @Image1; a young woman walks from a stone cottage into the morning sunlight",
  "resolution": "480p",
  "aspectRatio": "16:9",
  "durationSeconds": 4,
  "referenceMode": "omni_reference",
  "referenceImages": [
    "https://developers.openaiav.com/samples/seedance-letter-reference.webp"
  ],
  "generateAudio": false,
  "outputFormat": "mp4"
}

Aktuelle Kompatibilität

Eine Integration für alle Videomodelle: derselbe Endpunkt, dieselben Felder. Um das Modell zu wechseln, ändern Sie nur model. Alle Unterschiede deklariert der Katalog, und die Tabelle unten ist dieser Katalog: pro Modell, welche Referenzmodi es unterstützt und wie viele Medien jedes Typs es akzeptiert. Alles, was der Katalog nicht deklariert, wird beim Absenden ausdrücklich abgelehnt und nie stillschweigend ignoriert.

Der Katalog ist nicht geladen. Rufen Sie zuerst GET /v1/models auf; senden Sie keinen Referenzmodus für ein Modell ohne reference_modes.

Details zum Startbild und Weitergabe des Endbilds

Details zum Startbild: first_frame und omni_reference schließen sich aus; eine Anfrage wählt genau einen Modus. Bei der Omni-Referenz können Sie ein Referenzbild per Prompt in Richtung Eröffnungsbild lenken; wenn es genau dem Startbild entsprechen muss, senden Sie dieses Bild im Modus first_frame. Bei Seedance 2.5 ist das Seitenverhältnis von Startbild-Aufgaben auf adaptive festgelegt (die Ausgabe folgt dem Startbild). Endbild weitergeben: Übergeben Sie beim Erstellen returnLastFrame: true, dann liefert eine erfolgreiche Aufgabe zusätzlich last_frame_url (ein PNG ohne Wasserzeichen in Videogröße, 24 Stunden aufbewahrt). Übergeben Sie diese URL direkt als referenceImages für first_frame der nächsten Anfrage, um mehrere Einstellungen ohne Vorabregistrierung aneinanderzureihen.

Preise für Referenzvideos

  • Referenzvideos mit messbarer Dauer werden zum Festpreis abgerechnet, den Sie vorab in einer Vorschau sehen können. Ist die Dauer nicht messbar, wird die Vorschau ohne Belastung abgelehnt.
  • Rufen Sie POST /v1/generation-quotes für eine Preisvorschau auf. URL-Videos werden beim Erstellen erneut gemessen und bepreist; reserved_usd der Erstellungsantwort ist der tatsächliche Betrag. quoteId bindet den Preis nicht, expires_at empfiehlt nur die Aktualisierung.
  • Der Modellkatalog legt Dauer pro Video und insgesamt, Anzahl und Mindestabrechnungszeit fest. Jedes Referenzvideo muss bei der Seedance-2.0-Reihe 2–15 Sekunden und bei anderen unterstützten Modellen 2–30 Sekunden lang sein. Gemessene Eingaben außerhalb der Grenzen liefern ohne Belastung 422 REFERENCE_DURATION_OUT_OF_RANGE.
  • Verwenden Sie einen öffentlichen HTTPS-Direktlink zu MP4/MOV. Bekannte Dateien über 200 MiB liefern REFERENCE_VIDEO_TOO_LARGE; auch ohne Größenangabe ist ein Angebot möglich. Private URLs liefern REFERENCE_URL_NOT_PUBLIC, ausgelastete Prüfungen 429 REFERENCE_PROBE_BUSY. Für Uploads in der Konsole gilt 32 MiB.
  • Bei jeder Aufgabe wird beim Erstellen ihr Festpreis reserved_usd berechnet; bei Erfolg bleibt es bei genau diesem Betrag, bei Fehlschlag wird er vollständig erstattet. price_usd einer Vorschau entspricht dem, was das Erstellen in diesem Moment kosten würde; geben Sie eine Ausgabedauer statt -1 an.
  • Öffentliche Video-URLs werden für die Vorschau und beim Erstellen geprüft und danach ohne Speicherung oder Asset-Registrierung direkt übergeben. Halten Sie den Inhalt stabil. Uploads nutzen einen separaten Weg; Beschränkungen für echte Gesichter gelten weiter.

Preise für Bildmodelle

  • Bildmodelle werden pro Bild nach resolution und aspectRatio abgerechnet (image_pricing.rates). Bei den Modellen gpt-image-* und nano-banana-* gelten die angezeigten Preise für einen kurzen Prompt ohne Referenzbilder.
  • Bei diesen Modellen erhöhen Referenzbilder und längere Prompts den Betrag. Rufen Sie vor dem Erstellen einer Aufgabe POST /v1/generation-quotes mit demselben Body auf: price_usd ist der Betrag für diese Anfrage zu aktuellen Preisen. Fehlgeschlagene Aufgaben werden vollständig erstattet.

Polling und Download

Nur succeeded und failed sind Endzustände. Bei submission_unknown wird die Annahme noch bestätigt, result_pending wird abgeschlossen: Behalten Sie die ursprüngliche Aufgaben-ID, fragen Sie weiter ab und wiederholen Sie die Erstellung nie. Verwenden Sie nach Erfolg den authentifizierten Pfad /content statt Adressen außerhalb von Open AIav. Ergebnisse werden 24 Stunden aufbewahrt (die Detailantwort enthält output_expires_at; abgelaufene Downloads liefern 410 OUTPUT_EXPIRED, speichern Sie also rechtzeitig).

StatusEndzustandMaßnahme
processingNeinAngenommen; fragen Sie nach poll_after_ms erneut ab.
result_pendingNeinDas Ergebnis wird abgeschlossen. Behalten Sie die Aufgaben-ID und fragen Sie dieselbe Aufgabe weiter ab; erstellen Sie sie nicht neu.
submission_unknownNeinDie Annahme wird noch bestätigt; wiederholen Sie die Erstellung nicht. Behalten Sie die ursprüngliche Aufgaben-ID und fragen Sie sie weiter ab.
succeededJaErfolgreich; laden Sie die Ausgabe über /content herunter.
failedJaEndgültig fehlgeschlagen, der Betrag wurde vollständig erstattet; prüfen Sie error_code.

Migration eingestellter Endpunkte

Die alten Endpunkte /v1/assets, /v1/assets/content, /v1/assets/{id}, /v1/asset-groups und /v1/asset-groups/{id} sind eingestellt; ein gültiger Schlüssel mit dem entsprechenden alten Scope erhält HTTP 410 / ENDPOINT_RETIRED. Neue Integrationen dürfen diese Pfade nicht aufrufen; geben Sie referenceMode und referenceImages in derselben Generierungsanfrage an.

Fehlercodes

Vollständige Übersicht: HTTP-Status, Code, Bedeutung, empfohlene Maßnahme und SDK-Fehlerklasse. Diese Tabelle nutzt dieselbe Datenquelle wie die Fehlerzuordnung der SDKs; unbekannte neue Codes behandelt das SDK nach HTTP-Status.

HTTPCodeBedeutungEmpfohlene MaßnahmeSDK
401UNAUTHENTICATEDAPI-Schlüssel fehlt oder wird nicht erkannt.Senden Sie Authorization: Bearer oav_…; bewahren Sie den Schlüssel serverseitig auf.AuthenticationError
401INVALID_API_KEYDer API-Schlüssel ist ungültig oder widerrufen.Prüfen Sie den Schlüssel in der Konsole; rotieren Sie ihn bei Bedarf, um einen neuen zu erhalten.AuthenticationError
403INSUFFICIENT_SCOPEDem Schlüssel fehlt die für diesen Vorgang nötige Berechtigung (Scope).Das Erstellen erfordert generation:create; Abfragen und Download erfordern generation:read.PermissionError
429RATE_LIMITEDDie Anfragen haben das Ratenlimit des Schlüssels überschritten.Warten Sie gemäß Retry-After / retryAfterSeconds und versuchen Sie es erneut; das SDK erledigt das automatisch.RateLimitError
400IDEMPOTENCY_KEY_REQUIREDDas Erstellen erfordert einen Idempotency-Key-Header.Erstellen Sie pro neuer Anfrage einen eindeutigen Schlüssel und verwenden Sie ihn bei Wiederholungen erneut. Das SDK erstellt ihn automatisch.InvalidRequestError
409IDEMPOTENCY_KEY_CONFLICTDerselbe Idempotenzschlüssel wurde mit einem anderen Inhalt verwendet.Verwenden Sie für andere Parameter einen neuen Schlüssel; halten Sie Schlüssel und Inhalt bei Wiederholungen identisch.InvalidRequestError
400MODEL_NOT_FOUNDUnbekannte Modell-ID.Verwenden Sie IDs aus GET /v1/models (z. B. seedance-2.5-oa).InvalidRequestError
503MODEL_NOT_AVAILABLEDas Modell kann derzeit nicht aufgerufen werden.Es wurde nichts berechnet. Prüfen Sie den status des Modells in GET /v1/models und versuchen Sie es später erneut.ServerError
400INVALID_PROMPTDer Prompt ist leer oder zu lang.Prompts müssen 1–4000 Zeichen lang sein.InvalidRequestError
400INVALID_DURATIONdurationSeconds liegt außerhalb des Modellbereichs.Geben Sie die Videodauer als ganzzahligen Wert durationSeconds im Katalogbereich an.InvalidRequestError
400INVALID_RESOLUTIONDas Modell unterstützt diese Auflösung nicht.Wählen Sie einen Wert aus den resolutions im Katalog.InvalidRequestError
400INVALID_ASPECT_RATIODas Modell unterstützt dieses Seitenverhältnis nicht.Wählen Sie aus aspect_ratios im Katalog; bei first_frame ist oft adaptive festgelegt.InvalidRequestError
400INVALID_REFERENCE_IMAGESreferenceImages muss ein Array öffentlicher HTTPS-URLs sein.Geben Sie https://-Bild-URLs an, die während der gesamten Aufgabe lesbar bleiben.InvalidRequestError
400INVALID_REFERENCE_IMAGEEin Eintrag bei den Referenzbildern ist keine gültige URL.Die Meldung enthält den Index (referenceImages[i]); korrigieren Sie diesen Eintrag.InvalidRequestError
400REFERENCE_IMAGE_URL_NOT_HTTPSEine Referenzbild-URL ist keine öffentliche HTTPS-Adresse.http-, private Netzwerk- und data-URLs werden abgelehnt; stellen Sie das Bild öffentlich per HTTPS bereit.InvalidRequestError
400REFERENCE_MODE_REQUIRES_IMAGESreferenceMode wurde ohne Referenzbilder angegeben.Geben Sie referenceMode und referenceImages zusammen an.InvalidRequestError
400REFERENCE_MODE_NOT_SUPPORTEDDas Modell unterstützt den angefragten Referenzmodus nicht.Wählen Sie first_frame / omni_reference gemäß reference_modes im Katalog.InvalidRequestError
400FIRST_FRAME_REQUIRES_ONE_IMAGEfirst_frame akzeptiert genau ein Referenzbild.Senden Sie genau ein Bild; für mehrere Bilder verwenden Sie omni_reference.InvalidRequestError
400TOO_MANY_REFERENCESDie Anzahl der Referenzbilder überschreitet das Limit im Katalog.Siehe reference_images_max im Katalog.InvalidRequestError
400INVALID_INPUT_IMAGESinputImages muss ein Array sein.Jeder Eintrag ist eine HTTPS-URL oder data:image/*-base64.InvalidRequestError
400INVALID_INPUT_IMAGEEin Eintrag bei den Eingabebildern ist fehlerhaft.Jeder Eintrag muss eine HTTPS-URL oder data:image/*-base64 sein; die Meldung enthält den Index.InvalidRequestError
400INPUT_IMAGE_URL_NOT_HTTPSEine Eingabebild-URL verwendet kein HTTPS.Verwenden Sie eine https://-URL oder eine Data-URL wie data:image/png;base64,….InvalidRequestError
400INPUT_IMAGE_TOO_LARGEEin eingebettetes Bild ist größer als 10 MiB.Komprimieren Sie es auf unter 10 MiB. Modelle mit input_image_max_bytes wenden dieselbe Grenze auf HTTPS-URLs an: Ein zu großes Bild lässt die Aufgabe mit REFERENCE_INPUT_INVALID fehlschlagen, der Betrag wird vollständig erstattet.InvalidRequestError
400IMAGE_INPUT_NOT_SUPPORTEDDas Modell akzeptiert keine Bildeingabe.Nur Bildmodelle mit input_images_max>0 akzeptieren inputImages.InvalidRequestError
400TOO_MANY_INPUT_IMAGESZu viele Eingabebilder.Siehe input_images_max im Katalog.InvalidRequestError
422REFERENCE_DURATION_OUT_OF_RANGEDie gemessene Dauer des Referenzvideos überschreitet die Modellgrenzen.Prüfen Sie im Katalog die Grenzen je Video, für die Gesamtdauer und die Anzahl und zeigen Sie den Preis erneut an; es wurde nichts berechnet.InvalidRequestError
422REFERENCE_DURATION_UNVERIFIEDDie Dauer des Referenzvideos konnte nicht gemessen werden.Verwenden Sie eine normale MP4/MOV-Datei, möglichst mit faststart, von einem Host mit Range-Unterstützung.InvalidRequestError
422REFERENCE_URL_NOT_PUBLICDie URL des Referenzvideos ist keine öffentliche HTTPS-Adresse.Verwenden Sie eine öffentliche HTTPS-Datei-URL auf Port 443 ohne Anmeldung.InvalidRequestError
422CONTENT_TYPE_MISMATCHDie Referenzvideo-URL liefert nicht das erforderliche Videoformat.Stellen Sie sicher, dass die URL MP4/MOV-Bytes statt einer Webseite oder eines Bildes liefert.InvalidRequestError
422REFERENCE_VIDEO_TOO_LARGEDas Referenzvideo überschreitet die Dateigrößenbegrenzung.Öffentliche URLs sind auf 200 MiB begrenzt, Konsolen-Uploads auf 32 MiB. Komprimieren oder kürzen Sie die Datei und zeigen Sie den Preis erneut an.InvalidRequestError
429REFERENCE_PROBE_BUSYZu viele Referenzvideos werden gleichzeitig gemessen.Versuchen Sie es nach retry_after_seconds erneut; es wurde nichts berechnet.RateLimitError
400INSUFFICIENT_BALANCEDas Guthaben reicht für diese Aufgabe nicht aus.Laden Sie Ihre Wallet auf oder lösen Sie einen Code ein und versuchen Sie es dann erneut.InvalidRequestError
400LEGACY_ASSET_REFERENCE_RETIREDVerweise per Asset-ID sind eingestellt.Senden Sie referenceMode + referenceImages (öffentliches HTTPS) in derselben Anfrage.InvalidRequestError
404NOT_FOUNDDie Aufgabe existiert nicht oder gehört zu einem anderen Konto.Prüfen Sie, ob Aufgaben-ID und Schlüssel zum selben Konto gehören.InvalidRequestError
409OUTPUT_NOT_READYDie Ausgabe ist noch nicht bereit.Fragen Sie die Aufgabe gemäß poll_after_ms weiter ab, bis ein Endzustand erreicht ist.InvalidRequestError
410OUTPUT_EXPIREDDer Download-Zeitraum (24 Std. nach Erfolg) ist abgelaufen.Speichern Sie Ausgaben rechtzeitig; nach Ablauf müssen Sie neu generieren. Für Countdowns können Sie output_expires_at verwenden.OutputExpiredError

Fehlercodes fehlgeschlagener Bildaufgaben

Endet eine Bildaufgabe mit status=failed, lesen Sie error_code und gleichen Sie den Code mit der Tabelle ab. Fehlgeschlagene Aufgaben werden vollständig erstattet. Die SDKs lösen GenerationFailedError mit demselben Code aus.

CodeBedeutung
CONTENT_POLICY_REJECTEDDer Inhalt hat die Prüfung nicht bestanden. Überarbeiten Sie ihn, bevor Sie erneut senden.
REFERENCE_INPUT_INVALIDPrüfen Sie Format und Größe der Referenz sowie die Anforderungen des Modells.
REFERENCE_SOURCE_UNREACHABLEDie Referenz-URL kann nicht gelesen werden. Prüfen Sie ihre Gültigkeit oder laden Sie die Datei erneut hoch.
REFERENCE_SERVICE_UNAVAILABLEDie Verarbeitung der Referenzen ist nicht verfügbar. Wenden Sie sich mit der Aufgaben-ID an den Support; ein Austausch des Bildes ist nicht nötig.
GENERATION_INPUT_INVALIDDie Generierungsparameter erfüllen die Anforderungen dieses Modells nicht.
GENERATION_RATE_LIMITEDFür den Generierungsdienst gilt vorübergehend ein Ratenlimit. Bitte versuchen Sie es später erneut.
GENERATION_REJECTEDDie Generierungsanfrage wurde abgelehnt. Wenden Sie sich mit der Aufgaben-ID an den Support, um den Grund zu klären.
GENERATION_SERVICE_UNAVAILABLEDer Generierungsdienst ist vorübergehend nicht verfügbar.
GENERATION_FAILEDDie Aufgabe konnte nicht abgeschlossen werden. Wenden Sie sich mit der Aufgaben-ID an den Support.

Codes, die nur in der Konsole zurückgegeben werden

HTTPCodeBedeutungEmpfohlene Maßnahme
400REFERENCE_UPLOAD_NOT_FOUNDDer Upload-Verweis fehlt, ist abgelaufen oder gehört zu einem anderen Konto.Laden Sie die Datei im Playground erneut hoch und führen Sie die Aufgabe erneut aus (Uploads sind nur kurz gültig).
429UPLOAD_QUOTA_EXCEEDEDZu viele ungenutzte Uploads.Führen Sie eine Aufgabe aus, die Ihre Uploads verwendet, oder warten Sie, bis sie ablaufen.
429WEBHOOK_ENDPOINT_LIMITMaximale Anzahl an Webhook-Endpunkten erreicht.Löschen oder deaktivieren Sie einen nicht genutzten Endpunkt.
400INVALID_WEBHOOK_URLDie Callback-URL ist keine öffentlich erreichbare HTTPS-Adresse.Verwenden Sie eine öffentliche HTTPS-Adresse; private Hosts und Loopback-Adressen werden abgelehnt.