30s-Videos, 50+ Referenzen. Jetzt ausprobieren

SeeGen AI API

Willkommen bei der SeeGen AI API — einer einzigen API für filmreife Videogenerierung und hochauflösende Bildgenerierung über mehrere führende Modelle hinweg.

Überblick

SeeGen AI ist eine einheitliche Generierungs-API: ein konsistenter Satz von Endpunkten, um mehrere führende KI-Video- und Bildmodelle auszuführen. Wählen Sie ein Modell über den Parameter model — Authentifizierung, Task-Einreichung, Status-Abfrage und Webhooks funktionieren bei allen gleich.

Aktuell verfügbare Modelle:

  • Video — Seedance 2.5 (sd2.5), Seedance 2.0 Pro (sd2), Fast (sd2-fast), Mini (sd2-mini), Wan 3.0 Video Prime (wan3.0-video-prime), Wan 3.0 Video (wan3.0-video)
  • Bild — GPT Image 2 (gpt-image-2), Nano Banana 2 (nano-banana-2), Nano Banana Pro (nano-banana-pro), Seedream 5.0 Lite (seedream-v5.0-lite), Seedream 5.0 Pro (seedream-v5.0-pro)

Basis-URL: https://seegen.ai/api/v1

Modell: Übergeben Sie einen der oben genannten Aliase im Feld model (z. B. sd2, gpt-image-2).

Warum SeeGen AI?

Weitere Gründe für SeeGen AI:

  • Mehr als nur Seedance 2.0: Wan 3.0, Nano Banana, ChatGPT Image und mehr.
  • Kein Abonnement erforderlich — Pay-as-you-go
  • Schneller Zugriff auf die neuesten Modelle
  • Kundensupport rund um die Uhr (24/7)
  • Unterstützung bei offiziellen modellbezogenen Anfragen
  • Konsolenzugriff für Entwickler
  • Offen für Unternehmen und Privatnutzer

Preise

40% OFF

API Pack

$500$833

125,000 Credits ($0.004/Credit)

~781 Videos à 5 Sek.

40% OFF

API-XL Pack

$2,000$3,332

500,000 Credits ($0.004/Credit)

~3,125 Videos à 5 Sek.

Seedance 2.0 / Fast / Mini / 2.5 — Kostenberechnung

Sei out = output_seconds und in = die Summe von ⌈duration⌉ jedes Eingabevideos (jeweils aufgerundet, mindestens out × 2/3). Seedance 2.5 verwendet dieselbe Berechnung wie Seedance 2.0. Der Basissatz des jeweiligen Modells wird mit 1.5 multipliziert und gerundet, bevor die Task-Formel angewendet wird (1080P ist nativ bei sd2.5, das 2,5-Fache des 720P-Satzes); die modellunabhängigen Upscale-Aufschläge bleiben bei +30 / +40 Credits pro Ausgabesekunde für 2K / 4K (+20 für 1080P nur bei sd2-fast / sd2-mini).

Ohne Video-EingabeMit Video-Eingabe
sd2.5: 480P30 × out23 × (out + in)
sd2.5: 720P60 × out45 × (out + in)
sd2.5: 1080P (nativ)150 × out113 × (out + in)
sd2.5: 2K(60 + 30) × out45 × (out + in) + 30 × out
sd2.5: 4K(60 + 40) × out45 × (out + in) + 40 × out
sd2-pro: 480P20 × out15 × (out + in)
sd2-pro: 720P40 × out30 × (out + in)
sd2-pro: 1080P (nativ)100 × out75 × (out + in)
sd2-pro: 2K(40 + 30) × out30 × (out + in) + 30 × out
sd2-pro: 4K (nativ)200 × out150 × (out + in)
sd2-fast: 480P16 × out12 × (out + in)
sd2-fast: 720P32 × out24 × (out + in)
sd2-fast: 1080P(32 + 20) × out24 × (out + in) + 20 × out
sd2-fast: 2K(32 + 30) × out24 × (out + in) + 30 × out
sd2-fast: 4K(32 + 40) × out24 × (out + in) + 40 × out
sd2-mini: 480P10 × out7.5 × (out + in)
sd2-mini: 720P20 × out15 × (out + in)
sd2-mini: 1080P(20 + 20) × out15 × (out + in) + 20 × out
sd2-mini: 2K(20 + 30) × out15 × (out + in) + 30 × out
sd2-mini: 4K(20 + 40) × out15 × (out + in) + 40 × out

Hinweis: sd2-pro 1080P und 4K sind native offizielle Ausgabe (4K = das 5-Fache des 720P-Satzes); sd2-pro 2K sowie sämtliche 1080P/2K/4K von sd2-fast / sd2-mini werden von SeeGen AI hochskaliert. sd2.5 generiert nativ in 480P/720P/1080P (1080P = das 2,5-Fache des 720P-Satzes, kein Upscale-Aufschlag) und nutzt automatisches Upscaling für 2K/4K. Fordern Sie jede Stufe über outputResolution: "4k" an (z. B. "2k" / "4k"; das Gateway wählt automatisch zwischen nativ und Upscale — nur Preis und die Native-Kennzeichnung unterscheiden sich). sd2-mini kostet 50% von sd2-pro — die günstigste Stufe. Seedance 2.5 verwendet die Pro-Video-Dauerrundung, den Mindest-Eingabedauer-Schwellenwert und die Upscale-Berechnung von Seedance 2.0. Der Basissatz des jeweiligen Modells wird mit 1.5 multipliziert und gerundet, bevor die Task-Berechnung erfolgt (z. B. 1080P mit Video: 75 × 1.5 → 113). Die modellunabhängigen 2K / 4K-Upscale-Aufschläge bleiben bei +30 / +40 Credits pro Ausgabesekunde. Schlägt das Upscaling fehl, liefert der abgeschlossene Task den 720P-Fallback ohne teilweise Rückerstattung von Credits.

  • sd2.5 480P, 4-Sekunden-Ausgabe ohne Video-Eingabe: 120 Credits
  • sd2.5 720P, 5-Sekunden-Ausgabe ohne Video-Eingabe: 300 Credits
  • sd2.5 720P, 5-Sekunden-Ausgabe + 3-Sekunden-Eingabevideo (Mindest-Eingabedauer 4 Sekunden): 405 Credits
  • sd2.5 1080P nativ, 5-Sekunden-Ausgabe ohne Video-Eingabe: 750 Credits
  • sd2.5 1080P nativ, 5-Sekunden-Ausgabe + 5-Sekunden-Eingabevideo: 1,130 Credits

Wan 3.0 Video / Prime — Kostenberechnung

Es gilt: out = Ausgabesekunden und in = Summe der Referenzvideosekunden, wobei jeder Clip auf volle Sekunden aufgerundet wird. Ohne Referenzvideo: credits = out × rate. Mit Referenzvideo: credits = (out + in) × rate. Verwenden Sie den Tarif für Ihr Modell und Ihre Auflösung aus der folgenden Tabelle.

ModellNative AusgabeCredits / Sek.2-Sek.-Beispiel
wan3.0-video-prime480P2244
720P4590
1080P90180
wan3.0-video480P1632
720P3264
1080P64128

Hinweis: 480P, 720P und 1080P sind native Ausgaben; 2K/4K-Upscaling wird nicht unterstützt. Referenzbilder und Audio erhöhen die berechnete Dauer nicht. Das Abschalten der Audioerzeugung ändert den Preis nicht. Die Gesamtdauer der Referenzvideos und die Ausgabedauer dürfen zusammen 30 Sekunden nicht überschreiten.

  • wan3.0-video 480P, 2 Sekunden Ausgabe ohne Videoeingabe: 2 × 16 = 32 Credits
  • wan3.0-video-prime 480P, 2 Sekunden Ausgabe ohne Videoeingabe: 2 × 22 = 44 Credits
  • wan3.0-video 720P, 5 Sekunden Ausgabe + 3 Sekunden Referenzvideo: (5 + 3) × 32 = 256 Credits
  • wan3.0-video-prime 720P, 5 Sekunden Ausgabe + 2.2 Sekunden Referenzvideo (auf 3 Sekunden aufgerundet): (5 + 3) × 45 = 360 Credits

🎉 Zeitlich begrenztes Angebot: 33% Rabatt auf die gesamte Bildgenerierung — alle Bildpreise unten sind bereits reduziert.

GPT Image 2.5 Flare / Sunburst

AuflösungMittlere QualitätHohe QualitätXHigh-QualitätMax-Qualität
1k35132023355075
2k (Standard)7102335375584125
4k1015406067100154230

Jeder Task erzeugt 1 Bild. Reichen Sie N Tasks für N Varianten ein. Fehlgeschlagene Tasks erstatten Credits automatisch.

gpt-image-2 — Credits pro Bild

AuflösungMittlere QualitätHohe Qualität
1k10154770
2k (Standard)233584125
4k4060154230

Jeder Task erzeugt 1 Bild. Reichen Sie N Tasks für N Varianten ein. Fehlgeschlagene Tasks erstatten Credits automatisch.

nano-banana-2 & nano-banana-pro — Credits pro Bild

Auflösungnano-banana-2nano-banana-pro
1k20304060
2k (Standard)30454060
4k477074110

Jeder Task erzeugt 1 Bild. Reichen Sie N Tasks für N Varianten ein. Fehlgeschlagene Tasks erstatten Credits automatisch.

Seedream 5.0 — Credits pro Bild

Modell / StufeCredits
Lite 2k / 4k (Pauschalpreis)710
Pro 1k (Standard)1015
Pro 2k2030

Jeder Task erzeugt 1 Bild. Reichen Sie N Tasks für N Varianten ein. Fehlgeschlagene Tasks erstatten Credits automatisch. Referenzbilder werden nicht separat berechnet.

Prüfen Sie Ihr Guthaben: GET /api/v1/account/credits

Automatische Aufladung für API-Konten

Ihr API-Schlüssel und das SeeGen-AI-Dashboard verwenden dasselbe kontoweite Guthaben. Die automatische Aufladung hält Guthaben für API-Workloads bereit, muss aber auf der Credits-Seite eingerichtet werden; eine separate Konfigurations-API gibt es derzeit nicht.

Automatische Aufladung in Credits einrichten:

  1. Öffnen Sie Credits, wählen Sie den gewünschten Mindeststand und ein Aufladepaket aus.
  2. Autorisieren Sie Ihre Zahlungsmethode einmalig. Bei diesem Schritt wird die Autorisierung gespeichert und die Karte nicht belastet.
  3. Nach Aktivierung der flexiblen Autorisierung können Sie Mindeststand oder Paket in Credits ohne erneute Autorisierung ändern. Bei Konten mit der früheren Festpreisautorisierung kann ein einmaliges Upgrade erforderlich sein.

Verhalten bei API-Anfragen

  • Wenn eine erfolgreiche API-Aufgabe Guthaben abzieht und der Stand von mindestens dem Schwellenwert auf darunter fällt, stellt SeeGen AI asynchron eine automatische Aufladung in die Warteschlange. Die Aufgabenübermittlung wartet nicht auf die Aufladung.
  • Reicht das Guthaben bereits vor der Übermittlung nicht aus, gibt die API HTTP 402 zurück und erstellt keine Aufgabe. Die abgelehnte Anfrage löst keine automatische Aufladung aus und wird nicht automatisch wiederholt; versuchen Sie es erneut, sobald Guthaben verfügbar ist.
  • Den aktuellen Stand prüfen Sie mit GET /api/v1/account/credits. Fortschritt und Fehler der automatischen Aufladung erscheinen in Credits und Payment History; wichtige Ergebnisse werden an die Abrechnungs-E-Mail-Adresse des Kontos gesendet. Derzeit gibt es keinen kundenorientierten Webhook und keine Status-API für automatische Aufladungen.

Bonusguthaben bei automatischer Aufladung von API-Paketen

  • $500.00 API Pack: 127,500 Credits (125,000 + 2 % Bonus).
  • $2,000.00 API-XL Pack: 525,000 Credits (500,000 + 5 % Bonus).
  • Bei manuellen Käufen dieser Pakete werden weiterhin 125,000 bzw. 500,000 Credits gutgeschrieben.

Authentifizierung

Alle API-Anfragen erfordern ein Bearer-Token im Authorization-Header. Sie können API-Schlüssel in Ihren Kontoeinstellungen erstellen und verwalten.

curl -H "Authorization: Bearer YOUR_API_KEY" \
  https://seegen.ai/api/v1/account/credits

Wichtig: Ihr API-Schlüssel wird nur einmal bei der Erstellung angezeigt. Bewahren Sie ihn sicher auf. Sie können bis zu 10 API-Schlüssel pro Konto erstellen.

Schnellstart

Generieren Sie ein Video in zwei Schritten: Erstellen Sie einen Task und fragen Sie dann das Ergebnis ab.

# 1. Create a text-to-video task
TASK_ID=$(curl -s -X POST \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "sd2",
    "inputs": {
      "prompt": "A golden retriever running on the beach at sunset",
      "duration": "5s",
      "resolution": "1280x720"
    }
  }' \
  https://seegen.ai/api/v1/jobs/createTask | jq -r '.taskId')

echo "Task created: $TASK_ID"

# 2. Poll for result
while true; do
  RESULT=$(curl -s -H "Authorization: Bearer $API_KEY" \
    "https://seegen.ai/api/v1/jobs/queryTask?taskId=$TASK_ID")
  STATUS=$(echo $RESULT | jq -r '.status')
  echo "Status: $STATUS"
  if [ "$STATUS" = "COMPLETED" ] || [ "$STATUS" = "FAILED" ]; then
    echo $RESULT | jq .
    break
  fi
  sleep 5
done

Endpunkte

POST/api/v1/jobs/createTask

Neuen Video-Generierungs-Task erstellen

GET/api/v1/jobs/queryTask

Task-Status und -Ergebnis abfragen

GET/api/v1/account/credits

Ihr Credit-Guthaben prüfen

POST/api/v1/assets/upload

Ein Asset (Bild/Video/Audio) zur Prüfung hochladen

GET/api/v1/assets/status

Prüfstatus eines Assets abfragen

GET/api/v1/assets/list

Ihre hochgeladenen Assets auflisten

POST/api/v1/upscale/create

Eigenständigen Video-Upscale-Task einreichen (720p / 1080p / 2K / 4K)

GET/api/v1/upscale/query

Status und Ergebnis eines eigenständigen Upscale-Tasks abfragen

Modell auswählen (Video)

Wähle ein Videomodell nach Workflow, nativer Auflösung, Geschwindigkeit und Preis aus; kombiniere diese Tabelle mit dem Abschnitt Preise, um die Kosten zu schätzen.

ModellT2VI2VFirst–LastMulti-RefR2VNativ 1080pNativ 4KAudio720p / 5s
sd2.5Upscale300 Credits
sd2200 Credits
sd2-fastUpscaleUpscale160 Credits
sd2-miniUpscaleUpscale100 Credits
wan3.0-video-prime225 Credits
wan3.0-video160 Credits

T2V = Text zu Video · I2V = Bild zu Video (erstes Bild) · First–Last = erstes + letztes Keyframe · Multi-Ref = gemischte Bild- / Video- / Audio-Referenzen · R2V = 1–9 Referenzbilder mit Charaktermarkierungen

Seedance 2.0 / 2.0 Fast / 2.0 Mini / Seedance 2.5

Text zu Video

Generieren Sie ein Video aus einem Text-Prompt. Keine Bilder erforderlich.

curl -X POST \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "sd2",
    "inputs": {
      "prompt": "A futuristic city with flying cars at night, neon lights reflecting on wet streets",
      "duration": "5s",
      "resolution": "1280x720"
    }
  }' \
  https://seegen.ai/api/v1/jobs/createTask
ParameterTypErforderlichBeschreibung
promptstringJaTextbeschreibung des zu generierenden Videos. Max. 20000 Zeichen.
durationstringNeinVideolänge: "4s" bis "15s"; sd2.5 unterstützt bis zu "30s" (Standard: "5s")
resolutionstringNeinSeitenverhältnis über die Auflösung. Optionen: auto (Standard), 720x720, 720x960, 960x720, 1280x720, 720x1280, 1280x540
outputResolutionstringNeinStufe der Ausgabeauflösung: "480p", "720p" (Standard), "1080p", "2k" oder "4k". Native Auflösungen unterscheiden sich je nach Modell: Seedance 2.0 Pro: 480p/720p/1080p/4k; Seedance 2.0 Fast & Mini: 480p/720p; Seedance 2.5: 480p/720p/1080p. Höhere Stufen werden automatisch hochskaliert.
seedintNeinSeed für Reproduzierbarkeit: -1 oder weglassen für zufällig; 0–2147483647 für fest.
generateAudiobooleanNeinOb eine synchronisierte Audiospur synthetisiert werden soll. Standard true; übergeben Sie false für ein stummes Video.

Bild zu Video

Animieren Sie ein statisches Bild zu einem Video. Geben Sie eine Bild-URL als Startbild an.

curl -X POST \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "sd2",
    "inputs": {
      "urls": ["https://example.com/photo.jpg"],  // or "asset://asset-20260326-abc123"
      "prompt": "The woman slowly turns her head and smiles",
      "duration": "5s"
    }
  }' \
  https://seegen.ai/api/v1/jobs/createTask
ParameterTypErforderlichBeschreibung
urlsstring[]JaArray mit einer Bild-URL (das Ausgangsbild). Unterstützt sowohl HTTP-URLs als auch Asset-Referenzen (z. B. "asset://asset-20260326-abc123")
promptstringNeinTextbeschreibung der gewünschten Bewegung
durationstringNeinVideolänge: "4s" bis "15s"; sd2.5 unterstützt bis zu "30s" (Standard: "5s")
outputResolutionstringNeinStufe der Ausgabeauflösung: "480p", "720p" (Standard), "1080p", "2k" oder "4k". Native Auflösungen unterscheiden sich je nach Modell: Seedance 2.0 Pro: 480p/720p/1080p/4k; Seedance 2.0 Fast & Mini: 480p/720p; Seedance 2.5: 480p/720p/1080p. Höhere Stufen werden automatisch hochskaliert.
seedintNeinSeed für Reproduzierbarkeit: -1 oder weglassen für zufällig; 0–2147483647 für fest.
generateAudiobooleanNeinOb eine synchronisierte Audiospur synthetisiert werden soll. Standard true; übergeben Sie false für ein stummes Video.

Erstes & letztes Bild

Definieren Sie das Start- und Endbild, und das Modell generiert den Übergang dazwischen. Verwendet videoInputMode: "keyframe".

curl -X POST \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "sd2",
    "inputs": {
      "urls": [
        "https://example.com/first-frame.jpg",
        "https://example.com/last-frame.jpg"
      ],
      "prompt": "Smooth camera transition from day to night",
      "duration": "5s",
      "videoInputMode": "keyframe"
    }
  }' \
  https://seegen.ai/api/v1/jobs/createTask
ParameterTypErforderlichBeschreibung
urlsstring[]JaArray mit genau 2 Bild-URLs: [first_frame, last_frame]. Unterstützt sowohl HTTP-URLs als auch Asset-Referenzen (z. B. "asset://asset-20260326-abc123")
videoInputModestringJaMuss "keyframe" sein
promptstringNeinTextbeschreibung, die den Übergang steuert
durationstringNeinVideolänge: "4s" bis "15s"; sd2.5 unterstützt bis zu "30s" (Standard: "5s")
outputResolutionstringNeinStufe der Ausgabeauflösung: "480p", "720p" (Standard), "1080p", "2k" oder "4k". Native Auflösungen unterscheiden sich je nach Modell: Seedance 2.0 Pro: 480p/720p/1080p/4k; Seedance 2.0 Fast & Mini: 480p/720p; Seedance 2.5: 480p/720p/1080p. Höhere Stufen werden automatisch hochskaliert.
seedintNeinSeed für Reproduzierbarkeit: -1 oder weglassen für zufällig; 0–2147483647 für fest.
generateAudiobooleanNeinOb eine synchronisierte Audiospur synthetisiert werden soll. Standard true; übergeben Sie false für ein stummes Video.

Multi-Referenz

Verwenden Sie mehrere Referenzbilder, -videos und -audiodateien, um die Generierung zu steuern. Verwendet videoInputMode: "reference". Bei sd2.5 ist dies der Standard-Reference-Subtask; um ein bestehendes Video zu bearbeiten oder fortzusetzen, siehe Video bearbeiten & erweitern weiter unten.

curl -X POST \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "sd2",
    "inputs": {
      "urls": [
        "https://example.com/ref1.jpg",
        "https://example.com/ref2.jpg"
      ],
      "videoUrls": ["asset://asset-motion-video"],
      "audioUrls": ["https://example.com/audio.mp3"],
      "prompt": "Character walks through a garden",
      "duration": "5s",
      "videoInputMode": "reference",
      "resolution": "1280x720"
    }
  }' \
  https://seegen.ai/api/v1/jobs/createTask
ParameterTypErforderlichBeschreibung
urlsstring[]NeinReferenzbild-URLs (max. 9). Unterstützt sowohl HTTP-URLs als auch Asset-Referenzen (z. B. "asset://asset-20260326-abc123")
videoUrlsstring[]NeinReferenzvideo-URIs asset:// — zuerst über /api/v1/assets/upload hochladen; externe URLs werden abgelehnt. sd2: max. 3 Videos, je ≤15s. sd2.5: bis zu 10 Videos, je 2–30s und ≤200MB, Gesamt-Referenzdauer ≤30s, 480p–4K-Eingaben werden unterstützt.
audioUrlsstring[]NeinReferenz-Audioeingaben. sd2 / sd2-fast / sd2-mini: bis zu 3 Audiodateien, je 2–15s, insgesamt ≤15s — Audio kann bei diesen Modellen nicht die einzige Referenz sein (fügen Sie mindestens ein Bild oder Video hinzu). sd2.5: bis zu 10 Dateien, je ≤15MB und 2–30s, insgesamt ≤30s, reine Audio-Eingabe wird unterstützt.
videoInputModestringJaMuss "reference" sein
promptstringNeinTextbeschreibung
durationstringNeinVideolänge: "4s" bis "15s"; sd2.5 unterstützt bis zu "30s" (Standard: "5s")
resolutionstringJaErforderlich für den Reference-Modus. Optionen: 720x720, 720x960, 960x720, 1280x720, 720x1280, 1280x540
outputResolutionstringNeinStufe der Ausgabeauflösung: "480p", "720p" (Standard), "1080p", "2k" oder "4k". Native Auflösungen unterscheiden sich je nach Modell: Seedance 2.0 Pro: 480p/720p/1080p/4k; Seedance 2.0 Fast & Mini: 480p/720p; Seedance 2.5: 480p/720p/1080p. Höhere Stufen werden automatisch hochskaliert.
seedintNeinSeed für Reproduzierbarkeit: -1 oder weglassen für zufällig; 0–2147483647 für fest.
generateAudiobooleanNeinOb eine synchronisierte Audiospur synthetisiert werden soll. Standard true; übergeben Sie false für ein stummes Video.

Referenz-Beschränkungen

  • Max. 9 Bilder, 3 Videos, 3 Audiodateien
  • Max. 12 Dateien insgesamt über alle Typen hinweg
  • Jedes Video/Audio muss ≤ 15 Sekunden sein
  • Bilder müssen auf der kürzeren Seite mindestens 400px haben
  • sd2.5: max. 30 Bilder, 10 Videos, 10 Audiodateien und 50 insgesamt; die Gesamtdauer von Video und Audio beträgt jeweils ≤ 30 Sekunden

Video bearbeiten & erweitern

sd2.5 unterteilt die referenzbasierte Generierung in drei Subtasks. Lassen Sie mode für gewöhnliche Reference-Generierung weg, setzen Sie mode: "edit", um ein bestehendes Video zu bearbeiten, oder mode: "extend", um es fortzusetzen. Beide erfordern mindestens ein Video in videoUrls und geben stets das Seitenverhältnis des Quellvideos aus.

Platzieren Sie das Video, das Sie bearbeiten möchten, zuerst in videoUrls und verweisen Sie in Ihrem Prompt darauf als "Video 1". edit erzwingt, dass die Ausgabelänge diesem ersten (Quell-)Video entspricht, das 4–30s lang sein muss, sodass jeder von Ihnen gesendete duration-Wert ignoriert wird; die Abrechnung verwendet die Dauer des Quellvideos als Ausgabedauer, zuzüglich aller Referenzvideos als Eingabe. extend akzeptiert 1–3 in Reihenfolge zusammengefügte Clips, und der von Ihnen angeforderte duration-Wert ist die Ausgabelänge dieser Generierung (unabhängig von der Quelllänge) — Abrechnung wie bei gewöhnlicher Reference-Generierung.

Die Modelle der 2.0-Familie (sd2 / sd2-fast / sd2-mini) akzeptieren ebenfalls mode: "edit" und mode: "extend": Sie leiten die Operation aus Ihrem Prompt ab (beschreiben Sie die Bearbeitung oder Fortsetzung explizit), das Seitenverhältnis folgt dem Quellvideo, und duration bleibt bei gewöhnlicher Abrechnung unter Ihrer Kontrolle.

curl -X POST \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "sd2.5",
    "inputs": {
      "mode": "edit",
      "videoInputMode": "reference",
      "videoUrls": ["asset://asset-source-video"],
      "urls": ["https://example.com/annotation-at-1.2s.png"],
      "source_frame_timestamps_ms": [1200],
      "prompt": "Replace the marked object with a red umbrella",
      "outputResolution": "720p"
    }
  }' \
  https://seegen.ai/api/v1/jobs/createTask
ParameterTypErforderlichBeschreibung
modestringNein"edit" oder "extend". Weglassen für gewöhnliche Reference-Generierung.
videoUrlsstring[]JaMindestens ein Video; das erste ist die Quelle ("Video 1") — Ausgabelänge und Abrechnung bei edit folgen diesem. Weitere Videos sind zusätzliche Referenzen (edit) oder zusätzliche, der Reihe nach zusammengefügte Clips (extend, max. 3).
urlsstring[]NeinOptionale Anmerkungs-/Referenzbilder.
source_frame_timestamps_msnumber[]Neinnur bei mode "edit". Ein nicht negativer Zeitstempel des Quellvideos in Millisekunden pro Bild in urls.
outputResolutionstringNeinStufe der Ausgabeauflösung: "480p", "720p" (Standard), "1080p", "2k" oder "4k". Native Auflösungen unterscheiden sich je nach Modell: Seedance 2.0 Pro: 480p/720p/1080p/4k; Seedance 2.0 Fast & Mini: 480p/720p; Seedance 2.5: 480p/720p/1080p. Höhere Stufen werden automatisch hochskaliert.

Seedance-Parameterreferenz

Vollständige Referenz aller inputs-Parameter für die Modelle sd2 / sd2-fast / sd2-mini / sd2.5.

ParameterTypErforderlichBeschreibung
promptstringNeinTextbeschreibung (erforderlich für Text-to-Video, optional für andere Modi). Max. 20000 Zeichen.
urlsstring[]NeinBild-URLs. Unterstützt sowohl HTTP-URLs als auch Asset-Referenzen (z. B. "asset://asset-20260326-abc123"). Wird intern auf uploadedUrls abgebildet.
videoUrlsstring[]NeinReferenzvideo-URIs asset:// (nur im Reference-Modus). Müssen zuerst über /api/v1/assets/upload hochgeladen werden — externe URLs werden abgelehnt.
audioUrlsstring[]NeinReferenz-Audio-URLs (nur im Reference-Modus). Reine Audio-Eingabe wird bei sd2.5 unterstützt; sd2 / sd2-fast / sd2-mini erfordern zusätzlich zum Audio mindestens ein Bild oder Video.
durationstringNeinnormalerweise "4s" bis "15s"; sd2.5 unterstützt bis zu "30s". Standard: "5s"
resolutionstringNeinSeitenverhältnis: auto (Standard) | 720x720 | 720x960 | 960x720 | 1280x720 | 720x1280 | 1280x540
outputResolutionstringNeinStufe der Ausgabeauflösung: "480p", "720p" (Standard), "1080p", "2k" oder "4k". Native Auflösungen unterscheiden sich je nach Modell: Seedance 2.0 Pro: 480p/720p/1080p/4k; Seedance 2.0 Fast & Mini: 480p/720p; Seedance 2.5: 480p/720p/1080p. Höhere Stufen werden automatisch hochskaliert.
videoInputModestringNein"keyframe" (Standard) oder "reference"
modestringNeinReference-Modus-Subtask (alle Seedance-Modelle): weglassen für gewöhnliche Reference-Generierung, "edit", um das erste Video in videoUrls zu bearbeiten, "extend", um 1-3 Clips fortzusetzen. Siehe Video bearbeiten & erweitern.
source_frame_timestamps_msnumber[]Neinnur bei sd2.5 Video Edit: ein nicht negativer Zeitstempel in Millisekunden pro Anmerkungsbild.
seedintNeinZufalls-Seed für Reproduzierbarkeit. -1 oder weglassen für serverseitig zufällig. Derselbe Seed + dieselben Eingaben ergeben ein sehr ähnliches Ergebnis (aufgrund von GPU-Nichtdeterminismus nicht bitidentisch). Bereich: -1 bis 2147483647.
generateAudiobooleanNeinOb eine Audiospur (Sprache, SFX, Hintergrundmusik) synchron zum Video synthetisiert werden soll. Standard true. Setzen Sie false, um ein stummes Video zu erzeugen — etwas schneller, nützlich, wenn Sie separat vertonen möchten.
bitrateModestringNeinAusgabe-Bitratenstufe bei gleicher Auflösung: "standard" (Standard) oder "high". "high" bewahrt mehr Details und reduziert Banding/Blockbildung bei etwa der 3-5-fachen Dateigröße — ändert weder Auflösung noch Preis.
upscaleResolutionstringNein(Veraltet) Veraltetes getrenntes Feld, wird weiterhin aus Gründen der Abwärtskompatibilität akzeptiert. Neue Integrationen sollten outputResolution verwenden, das jetzt direkt "2k" / "4k" annimmt. Werden beide gesendet, hat upscaleResolution Vorrang — außer bei Modellen mit nativem 1080p (Seedance2 Pro / Seedance 2.5), wo upscaleResolution:"1080p" zu nativem 1080p aufgelöst wird (Abrechnung zum nativen Satz).

Felder auf oberster Ebene der Anfrage: model (erforderlich), inputs (erforderlich), callBackUrl (optionale Webhook-URL).

Seedance-Assets

Seedance-Assets sind Bilder, Videos und Audiodateien, die den Prüfprozess von ByteDance Volcano durchlaufen, bevor sie in Seedance-Video-Generierungs-Tasks verwendet werden können. Laden Sie ein Asset hoch, warten Sie, bis es ACTIVE wird, und verwenden Sie dann seine asset://-URL im Seedance-Task.

Hinweis: Bild- und Video-Assets mit echten Personen erfordern eine offizielle Prüfung, die in der Regel innerhalb von Sekunden abgeschlossen ist. Nach der Freigabe können sie direkt als Referenzen verwendet werden. Ohne Prüfung kann die Generierung fehlschlagen.

Asset hochladen

Zwei Möglichkeiten zum Hochladen: Senden Sie eine lokale Datei direkt (multipart/form-data), oder geben Sie eine öffentlich zugängliche HTTPS-URL an. In beiden Fällen wird das Asset automatisch verarbeitet und geprüft.

Methode A — direkter Datei-Upload (multipart/form-data)

Senden Sie eine lokale Datei, ohne dass ein Bild-Hosting erforderlich ist. Der Medientyp wird anhand der Datei-Bytes erkannt (der Dateinamenerweiterung wird nicht vertraut). Erlaubt: Bilder (jpg/png/webp/gif/bmp/tiff/heic), Videos (mp4/mov), Audio (wav/mp3). Max. 50MB pro Datei (Bild ≤30MB, Video ≤50MB, Audio ≤15MB).

curl -X POST \
  -H "Authorization: Bearer $API_KEY" \
  -F "file=@/path/to/photo.jpg" \
  -F "name=my-photo" \
  https://seegen.ai/api/v1/assets/upload
ParameterTypErforderlichBeschreibung
filefileJaDie lokale Datei (Multipart-Formularfeld). Der Medientyp wird anhand des Inhalts erkannt.
namestringNeinAsset-Name (max. 64 Zeichen)

Methode B — per URL (application/json)

Falls die Datei bereits unter einer öffentlichen HTTPS-URL gehostet wird.

curl -X POST \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com/photo.jpg",
    "type": "IMAGE",
    "name": "my-photo"
  }' \
  https://seegen.ai/api/v1/assets/upload
ParameterTypErforderlichBeschreibung
urlstringJaÖffentlich zugängliche HTTPS-URL der hochzuladenden Datei
typestringJa"IMAGE", "AUDIO" oder "VIDEO"
namestringNeinAsset-Name (max. 64 Zeichen)

Upload-Antwort

{
  "assetId": 123,
  "volcAssetId": "asset-20260326-abc123",
  "type": "IMAGE",
  "status": "PROCESSING",
  "failReason": null,
  "url": "https://example.com/photo.jpg",
  "name": "my-photo",
  "createdAt": 1711234567890
}

Asset-Status abfragen

Fragen Sie den Prüfstatus eines Assets ab. Wenn der Status PROCESSING ist, prüft der Endpunkt automatisch auf Updates vom Prüfsystem.

# Query by asset ID (numeric)
curl -H "Authorization: Bearer $API_KEY" \
  "https://seegen.ai/api/v1/assets/status?assetId=123"

# Query by volcAssetId (string)
curl -H "Authorization: Bearer $API_KEY" \
  "https://seegen.ai/api/v1/assets/status?assetId=asset-20260326-abc123"

Asset-Statuswerte

  • PROCESSINGin Prüfung, noch nicht verwendbar
  • ACTIVEPrüfung bestanden, einsatzbereit für Tasks
  • FAILEDPrüfung fehlgeschlagen, siehe failReason

Assets auflisten

Listet Ihre hochgeladenen Assets mit optionaler Filterung nach Typ und Status auf. Unterstützt Cursor-basierte Paginierung.

# List all assets
curl -H "Authorization: Bearer $API_KEY" \
  "https://seegen.ai/api/v1/assets/list"

# Filter by type and status
curl -H "Authorization: Bearer $API_KEY" \
  "https://seegen.ai/api/v1/assets/list?type=IMAGE&status=ACTIVE&limit=10"

# Paginate with cursor
curl -H "Authorization: Bearer $API_KEY" \
  "https://seegen.ai/api/v1/assets/list?cursor=100&limit=20"
ParameterTypErforderlichBeschreibung
typestringNeinNach Typ filtern: "IMAGE", "AUDIO" oder "VIDEO"
statusstringNeinNach Status filtern: "NONE", "PROCESSING", "ACTIVE" oder "FAILED"
cursornumberNeinCursor für die Paginierung (verwenden Sie nextCursor aus der vorherigen Antwort)
limitnumberNeinEinträge pro Seite, 1-50 (Standard: 20)

Listen-Antwort

{
  "items": [
    {
      "assetId": 123,
      "volcAssetId": "asset-20260326-abc123",
      "type": "IMAGE",
      "status": "ACTIVE",
      "failReason": null,
      "url": "https://example.com/photo.jpg",
      "name": "my-photo",
      "width": 1920,
      "height": 1080,
      "size": 245000,
      "duration": null,
      "createdAt": 1711234567890
    }
  ],
  "nextCursor": 122
}

Assets in Tasks verwenden

Sobald ein Asset ACTIVE ist, verwenden Sie seine volcAssetId mit dem asset://-Protokoll in den URLs Ihres Tasks:

{
  "model": "sd2",
  "inputs": {
    "urls": ["asset://asset-20260326-abc123"],
    "prompt": "The person slowly looks up and smiles",
    "duration": "5s"
  }
}

Wan 3.0 Video & Wan 3.0 Video Prime

Wan 3.0 unterstützt Text-zu-Video, Video aus einem Startbild, Interpolation zwischen Start- und Endbild, gemischte Bild-/Video-/Audioreferenzen sowie Videobearbeitung und -verlängerung. wan3.0-video-prime akzeptiert dieselben Eingaben wie wan3.0-video und ist für schnellere Generierung optimiert.

Beide Aliase verwenden die asynchrone API von SeeGen: POST /api/v1/jobs/createTask gibt eine taskId zurück; frage GET /api/v1/jobs/queryTask?taskId=... regelmäßig ab oder übergib callBackUrl für das Endergebnis.

Unterstützte Ausgabe: feste Dauer von 2–30 Sekunden in nativen 480p, 720p oder 1080p, ohne Wasserzeichen. Automatische Dauer (duration: -1), 2K/4K-Ausgabe und eine benutzerdefinierte watermark-Einstellung werden nicht unterstützt. Laden Sie Referenzmedien zuerst hoch und verwenden Sie dann die zurückgegebene HTTPS-URL.

Text-zu-Video

curl -X POST \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "wan3.0-video-prime",
    "inputs": {
      "prompt": "A red paper boat glides across a calm pond at sunrise, locked camera, no text.",
      "duration": "5s",
      "outputResolution": "720p",
      "ratio": "16:9",
      "generateAudio": true,
      "promptExtend": true,
      "seed": 12345
    }
  }' \
  https://seegen.ai/api/v1/jobs/createTask

Bild-zu-Video (erstes Bild)

Laden Sie Wan-Medien per multipart POST /api/v1/assets/upload?model=wan3.0-video (oder Prime-Alias) hoch und verwenden Sie die zurückgegebene eigene HTTPS-url als Generierungseingabe. Die zurückgegebene assetId ist nur die ID des SeeGen-Mediendatensatzes und darf nicht als Generierungseingabe gesendet werden.

curl -X POST \
  -H "Authorization: Bearer $API_KEY" \
  -F "file=@/path/to/first-frame.webp" \
  "https://seegen.ai/api/v1/assets/upload?model=wan3.0-video"
{
  "assetId": 123,
  "type": "IMAGE",
  "status": "ACTIVE",
  "url": "https://static.seegen.ai/materials/api/.../first-frame.webp"
}
curl -X POST \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "wan3.0-video",
    "inputs": {
      "urls": ["https://static.seegen.ai/materials/api/.../first-frame.webp"],
      "videoInputMode": "keyframe",
      "prompt": "The subject looks toward the camera as morning mist drifts past.",
      "duration": "5s",
      "outputResolution": "1080p",
      "generateAudio": true
    }
  }' \
  https://seegen.ai/api/v1/jobs/createTask

Erstes und letztes Bild

curl -X POST \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "wan3.0-video",
    "inputs": {
      "urls": [
        "https://static.seegen.ai/materials/api/.../first-frame.webp",
        "https://static.seegen.ai/materials/api/.../last-frame.webp"
      ],
      "videoInputMode": "keyframe",
      "prompt": "A smooth continuous transition from sunrise to night.",
      "duration": "8s",
      "outputResolution": "720p"
    }
  }' \
  https://seegen.ai/api/v1/jobs/createTask

Mehrere Referenzen (Bilder, Videos & Audio)

Setzen Sie videoInputMode: "reference" und übergeben Sie mindestens ein unterstütztes Medium über urls, videoUrls oder audioUrls; der Prompt ist optional. Verweisen Sie der Reihe nach mit Image1, Image2, Video1 oder Audio1 auf die Medien. Laden Sie jede Referenz zuerst über den Wan-Multipart-Endpunkt hoch und verwenden Sie die zurückgegebene eigene HTTPS-URL.

curl -X POST \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "wan3.0-video-prime",
    "inputs": {
      "videoInputMode": "reference",
      "urls": ["https://static.seegen.ai/materials/api/.../reference-image.webp"],
      "videoUrls": ["https://static.seegen.ai/materials/api/.../source-video.mp4"],
      "audioUrls": ["https://static.seegen.ai/materials/api/.../reference-audio.mp3"],
      "prompt": "Use Image1 for identity, Video1 for motion, and Audio1 for timing.",
      "duration": "10s",
      "outputResolution": "720p",
      "ratio": "16:9",
      "generateAudio": true,
      "promptExtend": true
    }
  }' \
  https://seegen.ai/api/v1/jobs/createTask

Videobearbeitung

Lade zuerst das Quellvideo hoch und verwende mode: "edit" mit videoInputMode: "reference". Beschreibe im erforderlichen Prompt die Bearbeitung von Video1, dem ersten Video in videoUrls. Das Seitenverhältnis ist automatisch; die Ausgabedauer wählst du selbst. Die folgenden Referenzlimits und Preise gelten für Bearbeitung und Verlängerung.

curl -X POST \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "wan3.0-video",
    "inputs": {
      "mode": "edit",
      "videoInputMode": "reference",
      "videoUrls": ["https://static.seegen.ai/materials/api/.../source-video.mp4"],
      "prompt": "Transform Video1 into clay animation, keeping the characters and camera movement.",
      "duration": "5s",
      "outputResolution": "720p",
      "ratio": "adaptive"
    }
  }' \
  https://seegen.ai/api/v1/jobs/createTask

Videoverlängerung

Verwende mode: "extend" mit einem Quellvideo und einer Anweisung wie „Setze Video1 nach vorne fort“, gefolgt vom weiteren Geschehen. Setze ratio: "adaptive". Die gewählte duration ist die erzeugte Videolänge, nicht die Summe aus Quelle und Verlängerung. Videoerzeugung aus Dateien oder Webseiten wird nicht unterstützt.

curl -X POST \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "wan3.0-video-prime",
    "inputs": {
      "mode": "extend",
      "videoInputMode": "reference",
      "videoUrls": ["https://static.seegen.ai/materials/api/.../source-video.mp4"],
      "prompt": "Extend Video1 forward, continuing the motion of the character and keeping the scene consistent.",
      "duration": "5s",
      "outputResolution": "720p",
      "ratio": "adaptive"
    }
  }' \
  https://seegen.ai/api/v1/jobs/createTask

Referenz für Wan-3.0-Parameter

Beide Wan-3.0-Modelle akzeptieren dieselben inputs-Felder. Wählen Sie eine Ausgabedauer von 2 bis 30 Sekunden in ganzen Sekundenschritten.

ParameterTypErforderlichBeschreibung
promptstringNeinVideobeschreibung oder Anweisung. Maximal 20,000 Zeichen. Für Text-zu-Video, Bearbeitung und Verlängerung erforderlich; für Bild-zu-Video, Start-/Endbild und Mehrfachreferenzen optional. Bearbeitung und Verlängerung erfordern auch ein Video. Verwende Image1 / Video1 / Audio1 entsprechend der Referenzreihenfolge.
modestringNeinFür normale Generierung weglassen oder "normal" verwenden. "edit" und "extend" erfordern ein Video und einen Anweisungs-Prompt. Beide verwenden den Referenzmodus, automatisches Seitenverhältnis und eine feste Ausgabedauer von 2–30 Sekunden.
urlsstring[]NeinEigene HTTPS-Bild-URLs, die vom Wan-Upload-Endpunkt zurückgegeben wurden. Bei Text-zu-Video weglassen; genau 1 erstes Bild, genau 2 erste/letzte Bilder oder im Referenzmodus bis zu 10 Referenzbilder übergeben. Fremde externe URLs und Referenzen des Seedance-Asset-Protokolls werden abgelehnt.
videoUrlsstring[]NeinBis zu 5 eigene HTTPS-Referenzvideo-URLs, die vom Wan-Upload-Endpunkt zurückgegeben wurden. Jeder Clip muss 1–15 s dauern, alle Referenzvideos zusammen höchstens 15 s und Referenzvideos plus Ausgabe höchstens 30 s. Fremde externe URLs und Referenzen des Seedance-Asset-Protokolls werden abgelehnt.
audioUrlsstring[]NeinBis zu 5 eigene HTTPS-Referenzaudio-URLs, die vom Wan-Upload-Endpunkt zurückgegeben wurden. WAV oder MP3; jeder Clip muss 1–15 s dauern und alle Referenzaudios zusammen höchstens 15 s. Fremde externe URLs und Referenzen des Seedance-Asset-Protokolls werden abgelehnt.
videoInputModestringNeinBei Text-zu-Video weglassen; für ein erstes Bild oder zwei erste/letzte Bilder "keyframe" verwenden; für gemischte Bild-/Video-/Audio-Referenzen "reference" verwenden.
durationstringNeinGanzzahlige Sekundenangabe von "2s" bis "30s". Standard: "5s".
outputResolutionstringNeinNative "480p", "720p" (Standard) oder "1080p". 2K/4K-Ausgabe wird nicht unterstützt.
ratiostringNein"auto" oder "adaptive" (beide wählen automatische Bildanpassung), "16:9", "9:16", "1:1", "4:3" oder "3:4". Gilt für Text-zu-Video und Mehrfachreferenzen. Bearbeitung und Verlängerung verwenden immer Auto; Bild-zu-Video und Start-/Endbild folgen den Schlüsselbildern.
generateAudiobooleanNeinGeneriert synchronisierte Sprache, Soundeffekte und Musik. Standard: true. Für eine stumme Ausgabe false setzen; die Preise bleiben unverändert.
promptExtendbooleanNeinLässt das Modell den Prompt vor der Generierung erweitern. Standard: true.
seedintNein0–2147483647. Verwende denselben Seed und dieselben Eingaben für einen möglichst ähnlichen neuen Versuch.

Anforderungen an Referenzmedien

  • Bilder: bis zu 10; JPEG/JPG/PNG (keine Transparenz)/BMP/WebP; jeweils ≤20 MB; jede Seite 240–8000 px; Seitenverhältnis bis zu 8:1
  • Videos: bis zu 5 MP4-/MOV-Clips; jeweils ≤100 MB; jeweils 1–15 Sek., ≤15 Sek. Gesamteingabe und Eingabe + angeforderte Ausgabe ≤30 Sek.; jede Seite 240–4096 px; Seitenverhältnis bis zu 8:1
  • Audio: bis zu 5 vom Wan-Upload-Endpunkt zurückgegebene WAV-/MP3-HTTPS-URLs; jeweils ≤15 MB; jeweils 1–15 Sek. und insgesamt ≤15 Sek.
  • Der Modus für erstes/letztes Bild kann nicht mit Referenzbild-, Referenzvideo- oder Referenzaudio-Arrays kombiniert werden

Modell auswählen (Bild)

Bildmodelle nehmen einen Prompt (und optional Referenzbilder) entgegen und liefern ein Bild pro Task. Jede Anfrage wird pro Bild anhand der Stufe des gewählten Modells abgerechnet (oder zum Pauschalpreis bei Seedream Lite). Fehlgeschlagene Tasks werden automatisch erstattet. Es gibt keinen Batch-Parameter — um mehrere Varianten zu generieren, rufen Sie createTask einmal pro Bild auf.

ModellT2II2I (Bearbeiten)Multi-RefMax. Auflösung2k / medium
gpt-image-2.5-flarebis zu 104ksiehe Preise
gpt-image-2.5-sunburstbis zu 104ksiehe Preise
gpt-image-2bis zu 104ksiehe Preise
nano-banana-2bis zu 104ksiehe Preise
nano-banana-probis zu 104ksiehe Preise
seedream-v5.0-litebis zu 104kPauschalpreis
seedream-v5.0-probis zu 102ksiehe Preise

GPT Image 2.5 Flare / Sunburst

GPT Image 2.5 Flare ist auf schnelle Bildgenerierung und -bearbeitung ausgerichtet. Sunburst legt den Schwerpunkt auf detaillierte Bilder und präzise Änderungen. Beide arbeiten mit Text-Prompts und Referenzbildern.

Im Arbeitsbereich, Playground und über die API verfügbar. Beide Modelle unterstützen folgende Parameter: medium/high/xhigh/max-Qualität, 1K/2K/4K-Voreinstellungen und PNG/JPEG/WebP-Ausgabe. Die tatsächlichen Abmessungen können von der Voreinstellung abweichen. JPEG und WebP werden ohne Größenänderung aus dem erzeugten PNG konvertiert. Jede API-Aufgabe erzeugt ein Bild.

Text zu Bild

curl -X POST \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2.5-flare",
    "inputs": {
      "prompt": "A neon-lit cyberpunk alley at midnight, photoreal",
      "quality": "medium",
      "resolution": "2k",
      "aspectRatio": "16:9"
    }
  }' \
  https://seegen.ai/api/v1/jobs/createTask

Bild zu Bild (Bearbeitung)

Übergeben Sie 1–10 Referenzbilder über urls. Das Modell verwendet sie als visuellen Kontext für die in prompt beschriebene Bearbeitung.

curl -X POST \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2.5-sunburst",
    "inputs": {
      "urls": ["https://example.com/portrait.jpg"],
      "prompt": "Restyle as oil painting",
      "quality": "medium",
      "resolution": "1k",
      "aspectRatio": "1:1"
    }
  }' \
  https://seegen.ai/api/v1/jobs/createTask

GPT Image 2.5-Parameterreferenz

Vollständige Referenz aller inputs-Parameter für das Modell gpt-image-2.5-flare.

ParameterTypErforderlichBeschreibung
promptstringJaTextbeschreibung des zu generierenden Bildes oder der anzuwendenden Bearbeitung, wenn urls angegeben ist.
urlsstring[]NeinReferenzbild-URLs für den Image-to-Image-Modus (Bearbeitung) (1–10 Bilder). Weglassen für Text-to-Image. Öffentliche HTTPS-URLs werden akzeptiert.
qualitystringNein"medium" / "high" / "xhigh" / "max". Standard: "medium". Die Credits skalieren nach Stufe (siehe Preise).
resolutionstringNein"1k" / "2k" / "4k". Standard: "2k". Die Credits skalieren nach Stufe (siehe Preise).
aspectRatiostringNein"1:1" / "16:9" / "9:16" / "4:3" / "3:4". Standard: "1:1".
outputFormatstringNein"png" / "jpeg" / "webp". Standard: "png".

Anforderungen an Eingabebilder (Image-to-Image-Modus)

  • Bis zu 10 Referenzbilder pro Task
  • Max. Dateigröße 50 MB pro Bild
  • Kürzere Seite ≥ 256px
  • Seitenverhältnis zwischen 1:3 und 3:1
  • Formate: JPEG, JPG, PNG, WEBP

Die Credits pro Bild skalieren nach Auflösung und Qualität — die vollständige Tabelle finden Sie im Abschnitt Preise.

GPT Image 2

Das GPT Image 2-Modell von OpenAI für hochwertiges Text-to-Image und Image-to-Image-Bearbeitung. Ein einziger Workflow deckt beide Modi ab — übergeben Sie urls, um automatisch in den Bearbeitungsmodus zu wechseln. Die Ausgabe wird über R2 im von Ihnen angeforderten Format (PNG / JPEG / WEBP) geliefert. Modellname: gpt-image-2.

Text zu Bild

curl -X POST \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2",
    "inputs": {
      "prompt": "A neon-lit cyberpunk alley at midnight, photoreal",
      "quality": "medium",
      "resolution": "2k",
      "aspectRatio": "16:9"
    }
  }' \
  https://seegen.ai/api/v1/jobs/createTask

Bild zu Bild (Bearbeitung)

Übergeben Sie 1–10 Referenzbilder über urls. Das Modell verwendet sie als visuellen Kontext für die in prompt beschriebene Bearbeitung.

curl -X POST \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2",
    "inputs": {
      "urls": ["https://example.com/portrait.jpg"],
      "prompt": "Restyle as oil painting",
      "quality": "medium",
      "resolution": "1k",
      "aspectRatio": "1:1"
    }
  }' \
  https://seegen.ai/api/v1/jobs/createTask

GPT Image 2-Parameterreferenz

Vollständige Referenz aller inputs-Parameter für das Modell gpt-image-2.

ParameterTypErforderlichBeschreibung
promptstringJaTextbeschreibung des zu generierenden Bildes oder der anzuwendenden Bearbeitung, wenn urls angegeben ist.
urlsstring[]NeinReferenzbild-URLs für den Image-to-Image-Modus (Bearbeitung) (1–10 Bilder). Weglassen für Text-to-Image. Öffentliche HTTPS-URLs werden akzeptiert.
qualitystringNein"medium" / "high". Standard: "medium". Die Credits skalieren nach Stufe (siehe Preise).
resolutionstringNein"1k" / "2k" / "4k". Standard: "2k". Die Credits skalieren nach Stufe (siehe Preise).
aspectRatiostringNein"1:1" / "16:9" / "9:16" / "4:3" / "3:4". Standard: "1:1".
outputFormatstringNein"png" / "jpeg" / "webp". Standard: "png".

Anforderungen an Eingabebilder (Image-to-Image-Modus)

  • Bis zu 10 Referenzbilder pro Task
  • Max. Dateigröße 50 MB pro Bild
  • Kürzere Seite ≥ 256px
  • Seitenverhältnis zwischen 1:3 und 3:1
  • Formate: JPEG, JPG, PNG, WEBP

Die Credits pro Bild skalieren nach Auflösung und Qualität — die vollständige Tabelle finden Sie im Abschnitt Preise.

Nano Banana 2

Nano Banana 2 ist ein hochauflösendes Bildmodell mit breiterer Seitenverhältnis-Abdeckung als gpt-image-2 — fügt Hoch-/Querformat-Voreinstellungen (3:2, 2:3, 4:5, 5:4) und filmisches 21:9 hinzu. Ein einziger Workflow deckt beide Modi ab — übergeben Sie urls, um automatisch in den Bearbeitungsmodus zu wechseln. Modellname: nano-banana-2.

Text zu Bild

curl -X POST \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "nano-banana-2",
    "inputs": {
      "prompt": "A neon-lit cyberpunk alley at midnight, photoreal",
      "resolution": "2k",
      "aspectRatio": "16:9"
    }
  }' \
  https://seegen.ai/api/v1/jobs/createTask

Bild zu Bild (Bearbeitung)

Übergeben Sie 1–10 Referenzbilder über urls. Das Modell verwendet sie als visuellen Kontext für die in prompt beschriebene Bearbeitung.

curl -X POST \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "nano-banana-2",
    "inputs": {
      "urls": ["https://example.com/portrait.jpg"],
      "prompt": "Restyle as oil painting",
      "resolution": "2k",
      "aspectRatio": "1:1"
    }
  }' \
  https://seegen.ai/api/v1/jobs/createTask

Nano Banana 2-Parameterreferenz

Vollständige Referenz aller inputs-Parameter für das Modell nano-banana-2.

ParameterTypErforderlichBeschreibung
promptstringJaTextbeschreibung des zu generierenden Bildes oder der anzuwendenden Bearbeitung, wenn urls angegeben ist.
urlsstring[]NeinReferenzbild-URLs für den Image-to-Image-Modus (Bearbeitung) (1–10 Bilder). Weglassen für Text-to-Image. Öffentliche HTTPS-URLs werden akzeptiert.
resolutionstringNein"1k" / "2k" / "4k". Standard: "2k". Die Credits skalieren nach Stufe (siehe Preise).
aspectRatiostringNein"1:1" / "16:9" / "9:16" / "4:3" / "3:4" / "3:2" / "2:3" / "4:5" / "5:4" / "21:9". Standard: "1:1".

Anforderungen an Eingabebilder (Image-to-Image-Modus)

  • Bis zu 10 Referenzbilder pro Task
  • Max. Dateigröße 50 MB pro Bild
  • Kürzere Seite ≥ 256px
  • Seitenverhältnis zwischen 1:3 und 3:1
  • Formate: JPEG, JPG, PNG, WEBP

Die Credits pro Bild skalieren nach Auflösung — die vollständige Tabelle finden Sie im Abschnitt Preise.

Nano Banana Pro

Nano Banana Pro ist ein hochauflösendes Bildmodell mit breiterer Seitenverhältnis-Abdeckung als gpt-image-2 — fügt Hoch-/Querformat-Voreinstellungen (3:2, 2:3, 4:5, 5:4) und filmisches 21:9 hinzu. Ein einziger Workflow deckt beide Modi ab — übergeben Sie urls, um automatisch in den Bearbeitungsmodus zu wechseln. Modellname: nano-banana-pro.

Text zu Bild

curl -X POST \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "nano-banana-pro",
    "inputs": {
      "prompt": "A neon-lit cyberpunk alley at midnight, photoreal",
      "resolution": "2k",
      "aspectRatio": "16:9"
    }
  }' \
  https://seegen.ai/api/v1/jobs/createTask

Bild zu Bild (Bearbeitung)

Übergeben Sie 1–10 Referenzbilder über urls. Das Modell verwendet sie als visuellen Kontext für die in prompt beschriebene Bearbeitung.

curl -X POST \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "nano-banana-pro",
    "inputs": {
      "urls": ["https://example.com/portrait.jpg"],
      "prompt": "Restyle as oil painting",
      "resolution": "2k",
      "aspectRatio": "1:1"
    }
  }' \
  https://seegen.ai/api/v1/jobs/createTask

Nano Banana Pro-Parameterreferenz

Vollständige Referenz aller inputs-Parameter für das Modell nano-banana-pro.

ParameterTypErforderlichBeschreibung
promptstringJaTextbeschreibung des zu generierenden Bildes oder der anzuwendenden Bearbeitung, wenn urls angegeben ist.
urlsstring[]NeinReferenzbild-URLs für den Image-to-Image-Modus (Bearbeitung) (1–10 Bilder). Weglassen für Text-to-Image. Öffentliche HTTPS-URLs werden akzeptiert.
resolutionstringNein"1k" / "2k" / "4k". Standard: "2k". Die Credits skalieren nach Stufe (siehe Preise).
aspectRatiostringNein"1:1" / "16:9" / "9:16" / "4:3" / "3:4" / "3:2" / "2:3" / "4:5" / "5:4" / "21:9". Standard: "1:1".

Anforderungen an Eingabebilder (Image-to-Image-Modus)

  • Bis zu 10 Referenzbilder pro Task
  • Max. Dateigröße 50 MB pro Bild
  • Kürzere Seite ≥ 256px
  • Seitenverhältnis zwischen 1:3 und 3:1
  • Formate: JPEG, JPG, PNG, WEBP

Die Credits pro Bild skalieren nach Auflösung — die vollständige Tabelle finden Sie im Abschnitt Preise.

Seedream 5.0 Lite

Schnelle Text-to-Image- und Image-to-Image-Generierung bei 2K oder 4K mit 15 Seitenverhältnissen. Modellname: seedream-v5.0-lite.

Text zu Bild

curl -X POST \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedream-v5.0-lite",
    "inputs": {
      "prompt": "A cinematic product photograph, soft studio light",
      "resolution": "2k",
      "aspectRatio": "1:1"
    }
  }' \
  https://seegen.ai/api/v1/jobs/createTask

Bild zu Bild (Bearbeitung)

curl -X POST \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedream-v5.0-lite",
    "inputs": {
      "prompt": "Restyle the references as a premium fashion campaign",
      "urls": ["https://example.com/reference.png"],
      "resolution": "4k",
      "aspectRatio": "3:4"
    }
  }' \
  https://seegen.ai/api/v1/jobs/createTask

Seedream 5.0 Lite-Parameter

ParameterTypErforderlichBeschreibung
promptstringJaBildbeschreibung oder Bearbeitungsanweisung.
urlsstring[]Nein1–10 öffentliche HTTPS-Referenzbild-URLs. Weglassen für Text-to-Image.
resolutionstringNein"2k" oder "4k". Standard: "2k".
aspectRatiostringNein"1:1", "1:2", "2:1", "1:3", "3:1", "2:3", "3:2", "3:4", "4:3", "4:5", "5:4", "9:16", "16:9", "9:21", oder "21:9".

Seedream 5.0 Pro

Generierung und Bearbeitung in hoher Wiedergabetreue bei 1K oder 2K. Modellname: seedream-v5.0-pro.

Text zu Bild

curl -X POST \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedream-v5.0-pro",
    "inputs": {
      "prompt": "Editorial portrait with dramatic rim lighting",
      "resolution": "2k",
      "aspectRatio": "3:4"
    }
  }' \
  https://seegen.ai/api/v1/jobs/createTask

Bild zu Bild (Bearbeitung)

curl -X POST \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedream-v5.0-pro",
    "inputs": {
      "prompt": "Turn the reference into a cinematic poster",
      "urls": ["https://example.com/reference.png"],
      "resolution": "2k",
      "aspectRatio": "1:2"
    }
  }' \
  https://seegen.ai/api/v1/jobs/createTask

Seedream 5.0 Pro-Parameter

ParameterTypErforderlichBeschreibung
promptstringJaBildbeschreibung oder Bearbeitungsanweisung.
urlsstring[]Nein1–10 öffentliche HTTPS-Referenzbild-URLs. Weglassen für Text-to-Image.
resolutionstringNein"1k" oder "2k". Standard: "1k". 4k wird nicht unterstützt.
aspectRatiostringNein"1:1", "1:2", "2:1", "1:3", "3:1", "2:3", "3:2", "3:4", "4:3", "4:5", "5:4", "9:16", "16:9", "9:21", oder "21:9".

Video-Upscaler

Task erstellen

POST /api/v1/upscale/create

# source.url accepts ANY https video URL — your own CDN, OR a file you first
# uploaded to us via /api/v1/assets/upload (pass the r2Url it returns). No need
# to declare which: we detect it. External URLs are validated; our own are trusted.
curl -X POST \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "source": { "type": "url", "url": "https://your-cdn.com/video.mp4" },
    "targetResolution": "2k",
    "callBackUrl": "https://your-server.com/webhook"
  }' \
  https://seegen.ai/api/v1/upscale/create
ParameterTypErforderlichBeschreibung
source.typestringJaVerwenden Sie "url" für jede Quelle. ("uploadId" ist ein veralteter Alias, der aus Gründen der Abwärtskompatibilität beibehalten wird.)
source.urlstringNeinMit type="url". Beliebige https-Video-URL — Ihr eigenes CDN oder die von /api/v1/assets/upload zurückgegebene r2Url. Bei externen URLs werden http sowie private/interne IPs abgelehnt (SSRF-Schutz); URLs auf unserem eigenen Asset-Host überspringen diese Prüfung.
source.r2UrlstringNeinVeraltet — nur mit type="uploadId" (Abwärtskompatibilität). Neue Integrationen sollten type="url" verwenden.
targetResolutionstringJa"720p", "1080p", "2k" oder "4k". Muss höher als die Quellauflösung sein.
callBackUrlstringNeinWebhook-URL, die einmal bei Erreichen des Endzustands aufgerufen wird (completed oder failed).

Antwort auf Erstellung

{
  "taskId": "n770mo4sh6rpi690ff3gwymx",
  "orderId": "ord_2026...",
  "status": "validating"
}

Status abfragen

GET /api/v1/upscale/query?taskId=...

Der Status durchläuft validatingprocessingcompleted / failed.

curl -H "Authorization: Bearer $API_KEY" \
  "https://seegen.ai/api/v1/upscale/query?taskId=n770mo4sh6rpi690ff3gwymx"

Antwort bei Abschluss

{
  "taskId": "n770mo4sh6rpi690ff3gwymx",
  "status": "completed",
  "targetResolution": "2k",
  "creditsConsumed": 900,
  "result": {
    "url": "https://static.seegen.ai/standalone-upscale/results/...mp4",
    "probedDurationSeconds": 30,
    "probedSourceResolution": "1280x720"
  },
  "error": null,
  "createdAt": "2026-04-29T01:23:45.000Z",
  "finishedAt": "2026-04-29T01:35:01.000Z"
}

Antwort bei Fehlschlag

{
  "taskId": "n770mo4sh6rpi690ff3gwymx",
  "status": "failed",
  "creditsConsumed": null,
  "result": null,
  "error": {
    "code": "SOURCE_RESOLUTION_TOO_HIGH",
    "message": "Source 3840x2160 is not below target 4k"
  }
}

Grenzwerte

  • Quelle: https-URL oder Ihre zuvor hochgeladene R2-URL
  • Dauer bis zu 600 s (Clips unter 5 s werden als 5 s abgerechnet)
  • Dateigröße ≤ 200 MB
  • Format: MP4 / MOV / WebM
  • Die Quellauflösung muss niedriger als das Ziel sein

Preise

  • 720P: 17 Credits/Sek. (5s = 85, 30s = 510)
  • 1080P: 25 Credits/Sek. (5s = 125, 30s = 750)
  • 2K: 38 Credits/Sek. (5s = 190, 30s = 1140)
  • 4K: 50 Credits/Sek. (5s = 250, 30s = 1500)
  • Minimum 5 Sekunden; bei Fehlschlägen werden Credits automatisch erstattet

Fehlercodes

Häufige Fehler, auf die Sie reagieren können. Andere Fehlschläge liefern ein selbsterklärendes Feld message — lesen Sie dieses, bevor Sie annehmen, dass der Code einer dieser hier ist.

CodeBedeutung
INVALID_URLURL ist fehlerhaft oder nicht https
URL_NOT_REACHABLEDie URL konnte nicht abgerufen werden — prüfen Sie, ob sie öffentlich und erreichbar ist
UNSUPPORTED_MEDIA_TYPEDie Datei ist kein Video oder nicht im Format MP4 / MOV / WebM
FILE_TOO_LARGEDie Quelle überschreitet 200 MB
DURATION_EXCEEDS_LIMITDie Quelle ist länger als 600 s
SOURCE_RESOLUTION_TOO_HIGHDie Quelle liegt bereits auf oder über dem Ziel — wählen Sie ein höheres Ziel
INSUFFICIENT_CREDITSNicht genügend Credits — aufladen und erneut versuchen
ACCOUNT_FROZENKonto darf möglicherweise keine Credits ausgeben – bitte den Support kontaktieren

Webhook-Callback

Statt zu pollen, können Sie eine callBackUrl angeben, um Ergebnisse automatisch zu erhalten, wenn ein Task abgeschlossen wird oder fehlschlägt.

curl -X POST \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "sd2",
    "callBackUrl": "https://your-server.com/webhook/callback",
    "inputs": {
      "prompt": "A cat playing piano",
      "duration": "5s"
    }
  }' \
  https://seegen.ai/api/v1/jobs/createTask

Callback-Payload

Wenn der Task abgeschlossen ist, senden wir eine POST-Anfrage an Ihre URL im selben Format wie die queryTask-Antwort:

// POST to your callBackUrl
{
  "taskId": "task_abc123",
  "model": "sd2",
  "status": "COMPLETED",
  "creditsUsed": 200,
  "output": [
    {
      "url": "https://static.seegen.ai/videos/result.mp4",
      "width": 1280,
      "height": 720
    }
  ],
  "error": null,
  "createTime": 1711234567890,
  "completeTime": 1711234612345
}

Wiederholungsrichtlinie: Wenn Ihr Endpunkt einen Status außerhalb von 2xx zurückgibt, wiederholen wir bis zu 3 Mal mit zunehmenden Verzögerungen (1s, 5s, 30s).

Antwortformat

createTask-Antwort

// 200 OK
{ "taskId": "task_abc123" }

queryTask-Antwort

{
  "taskId": "task_abc123",
  "model": "sd2",
  "status": "COMPLETED",     // "PENDING" | "PROCESSING" | "COMPLETED" | "FAILED"
  "creditsUsed": 200,
  "output": [                // null when status is not "COMPLETED"
    {
      "url": "https://static.seegen.ai/videos/result.mp4",
      "width": 1280,
      "height": 720
    }
  ],
  "error": null,             // error message when status is "FAILED"
  "createTime": 1711234567890,
  "completeTime": 1711234612345
}

credits-Antwort

{
  "credits": 5000,
  "availableCredits": 4800
}

Fehlerbehandlung

StatuscodeBedeutungMaßnahme
400Ungültige ParameterPrüfen Sie die Fehlermeldung und korrigieren Sie Ihre Anfrage
401Ungültiger oder fehlender API-SchlüsselPrüfen Sie das Format Ihres Authorization-Headers
402Nicht genügend CreditsÖffnen Sie Credits, um Guthaben zu kaufen oder die automatische Aufladung zu aktivieren, und wiederholen Sie dann die Anfrage
403Zugriff verweigertSie können nur Ihre eigenen Tasks abfragen
404Task nicht gefundenÜberprüfen Sie, ob die taskId korrekt ist
500Interner ServerfehlerNach ein paar Sekunden erneut versuchen

Vorab-Validierung (400 mit Code)

Seedance- und Wan-3.0-Anfragen werden vor der Belastung von Credits anhand der SeeGen-Produktregeln geprüft. Bei einem Fehler gibt createTask HTTP 400 mit { "message": "...", "code": "..." } zurück; Wan-Fehler können zusätzlich einen path enthalten. Es wird kein Task erstellt oder berechnet.

ParameterTypErforderlichBeschreibung
EMPTY_CONTENTcodeNeinWeder ein Prompt noch ein Referenzbild / -video / -audio.
AUDIO_ONLY_NOT_SUPPORTEDcodeNeinAudio ist die einzige Referenz bei sd2 / sd2-fast / sd2-mini. Fügen Sie ein Bild oder Video hinzu, oder verwenden Sie sd2.5 (reine Audio-Eingabe wird unterstützt).
UNSUPPORTED_MODELcodeNeinDer Modellalias wird nicht unterstützt. Für Wan 3.0 verwende genau "wan3.0-video-prime" oder "wan3.0-video".
UNSUPPORTED_RESOLUTIONcodeNeinDie ausgewählte Ausgabestufe ist nicht verfügbar. Der Start von Wan 3.0 unterstützt nativ nur 480p / 720p / 1080p; 2K/4K und upscaleResolution werden abgelehnt.
DURATION_OUT_OF_RANGEcodeNeinduration ist keine Ganzzahl innerhalb des Modellbereichs (Wan 3.0 „2s“–„30s“, sd2-Familie „4s“–„15s“, sd2.5 „4s“–„30s“). Die intelligente Dauer von Wan (-1) wird nicht bereitgestellt.
INVALID_MEDIA_COMBINATIONcodeNeinDie Medien entsprechen nicht dem ausgewählten Modus (z. B. falsche Anzahl an Keyframes, Medien bei Text-zu-Video, keine Medien bei mehreren Referenzen oder eine Mischung aus Keyframe- und Referenzeingaben).
EDIT_SOURCE_VIDEO_REQUIRED / EXTEND_SOURCE_VIDEO_REQUIREDcodeNeinmode "edit" / "extend" wurde ohne Video in videoUrls angefordert.
EDIT_SOURCE_DURATION_INVALIDcodeNeinsd2.5 Video Edit: Ein Video in der Anfrage ist kürzer als 4s oder länger als 30s (ARK wendet 4–30s auf jedes Video eines Edit-Tasks an).
TOO_MANY_REFERENCEScodeNeinMehr Referenzbilder / -videos / Audioclips als vom Modell akzeptiert (Wan 3.0 10 / 5 / 5, sd2-Familie 9 / 3 / 3, sd2.5 30 / 10 / 10; höchstens 3 Videos).
REFERENCE_VIDEO_DURATION_INVALIDcodeNeinEin Referenzvideo überschreitet die Begrenzung pro Clip, die kombinierte Referenzvideoeingabe überschreitet die Modellbegrenzung oder die Kombination aus Eingabe und Ausgabe ist ungültig. Für Wan 3.0 gilt: jeder Clip 1–15s, gesamte Eingabe ≤15s und Eingabe + angeforderte Ausgabe ≤30s (15+15 ist gültig; 15+16 wird abgelehnt).
REFERENCE_AUDIO_DURATION_INVALIDcodeNeinEine bekannte Dauer eines Wan-3.0-Referenzaudios liegt außerhalb von 1–15 s oder lässt die gesamte Referenzaudio-Eingabe 15 s überschreiten.
REFERENCE_IMAGE_INVALIDcodeNeinEin Wan-3.0-Bild fehlt, gehört einem anderen Benutzer, hat den falschen Medientyp oder verletzt eine bekannte Anforderung an Größe, Format, Abmessungen, Seitenverhältnis oder fehlende Transparenz.
REFERENCE_VIDEO_INVALIDcodeNeinEin für Wan 3.0 hochgeladenes Video verletzt die Anforderungen an Größe, MP4/MOV-Format, Abmessungen oder Seitenverhältnis.
REFERENCE_AUDIO_INVALIDcodeNeinEine für Wan 3.0 hochgeladene Audiodatei verletzt die Anforderungen an Größe oder WAV/MP3-Format.
ASSET_NOT_FOUND / EXTERNAL_URL / READ_TIMEOUT / READ_FAILEDcodeNeinEin videoUrls-Eintrag konnte keinem Ihrer hochgeladenen Assets zugeordnet werden, oder seine Dauer konnte nicht gelesen werden.

Vollständige Beispiele

Vollständiger Workflow: Laden Sie ein Asset hoch, warten Sie auf die Prüfung, erstellen Sie einen Task mit dem freigegebenen Asset und fragen Sie das Ergebnis ab.

const API_KEY = process.env.API_KEY;
const BASE = "https://seegen.ai/api/v1";
const headers = {
  "Authorization": `Bearer ${API_KEY}`,
  "Content-Type": "application/json",
};

// 1. Upload asset and wait for review
// (To upload a LOCAL file instead of a URL, POST multipart/form-data with a "file"
//  field — no Content-Type header, no "type" — see the Upload Asset section above.)
async function uploadAndWaitForAsset(url, type = "IMAGE") {
  const res = await fetch(`${BASE}/assets/upload`, {
    method: "POST",
    headers,
    body: JSON.stringify({ url, type }),
  });
  if (!res.ok) throw new Error(`Upload failed: ${(await res.json()).message}`);
  const asset = await res.json();
  console.log(`Asset uploaded: ${asset.assetId}, status: ${asset.status}`);

  // Poll until review completes
  while (true) {
    const statusRes = await fetch(
      `${BASE}/assets/status?assetId=${asset.assetId}`,
      { headers }
    );
    const status = await statusRes.json();
    if (status.status === "ACTIVE") {
      console.log(`Asset approved: asset://${status.volcAssetId}`);
      return status.volcAssetId;
    }
    if (status.status === "FAILED") {
      throw new Error(`Asset review failed: ${status.failReason}`);
    }
    await new Promise((r) => setTimeout(r, 3000));
  }
}

// 2. Create a task
async function createTask(inputs, callBackUrl) {
  const res = await fetch(`${BASE}/jobs/createTask`, {
    method: "POST",
    headers,
    body: JSON.stringify({
      model: "sd2",
      inputs,
      ...(callBackUrl && { callBackUrl }),
    }),
  });
  if (!res.ok) throw new Error(`[${res.status}] ${(await res.json()).message}`);
  return res.json();
}

// 3. Poll until done
async function waitForResult(taskId, timeoutMs = 300000) {
  const start = Date.now();
  while (Date.now() - start < timeoutMs) {
    const res = await fetch(
      `${BASE}/jobs/queryTask?taskId=${taskId}`,
      { headers }
    );
    const result = await res.json();
    if (result.status === "COMPLETED") return result;
    if (result.status === "FAILED") throw new Error(result.error);
    await new Promise((r) => setTimeout(r, 5000));
  }
  throw new Error("Timeout waiting for task");
}

// Full workflow: upload → review → generate → result
async function main() {
  // Upload image and wait for review
  const volcAssetId = await uploadAndWaitForAsset(
    "https://example.com/photo.jpg", "IMAGE"
  );

  // Create task with approved asset
  const { taskId } = await createTask({
    urls: [`asset://${volcAssetId}`],
    prompt: "The person slowly looks up and smiles",
    duration: "5s",
  });
  console.log(`Task: ${taskId}`);

  // Wait for video
  const result = await waitForResult(taskId);
  console.log(`Video: ${result.output[0].url}`);
}

main().catch(console.error);

Benötigen Sie Hilfe? Treten Sie unserem Discord bei oder kontaktieren Sie uns