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.0 Pro (sd2), Seedance 2.0 Fast (sd2-fast), Seedance 2.0 Mini (sd2-mini), Seedance 2.5 (sd2.5), HappyHorse 1.1 (happyhorse)
  • 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: HappyHorse 1.1, 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

happyhorse — Credits pro Sekunde

AusgabeCredits / Sek.5-Sek.-Beispiel
720P32160
1080P60300
2K32 + 30310
4K32 + 40360

Hinweis: Der 2K / 4K-Upscale wird auf die 720P-Basis aufgeschlagen (nicht kumulativ mit nativem 1080P). t2v / i2v / r2v nutzen denselben Satz pro Sekunde — Referenzbilder werden nicht berechnet.

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

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

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)

Zwei Modellfamilien generieren Video. Wählen Sie nach Modus + Preis; kombinieren Sie dies 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
happyhorseUpscale160 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",
      "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).

Assets

Assets sind Bilder, Videos und Audiodateien, die einen Prüfprozess durchlaufen, bevor sie in 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 in Ihren Tasks.

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"
  }
}

HappyHorse 1.1 (Alibaba)

Ein alternatives Videogenerierungsmodell von Alibaba DashScope. Unterstützt drei Modi: Text-to-Video, Image-to-Video mit erstem Bild und Reference-to-Video (1–9 Referenzbilder werden pro Prompt zusammengeführt; verweisen Sie im Prompt mit character1, character2, … auf die Subjekte). HappyHorse 1.1 unterstützt kein letztes Bild, Referenzvideo oder Referenzaudio. Modellname: happyhorse.

Keine Asset-Prüfung erforderlich — Sie können öffentliche HTTPS-Bild-URLs direkt verwenden oder asset://-Referenzen aus der Asset-Bibliothek übergeben (werden automatisch wieder in die ursprüngliche R2-URL aufgelöst).

Text zu Video

curl -X POST \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "happyhorse",
    "inputs": {
      "prompt": "A panda DJ at a beach party, smoky sunset",
      "duration": "5s",
      "outputResolution": "720p",
      "ratio": "16:9"
    }
  }' \
  https://seegen.ai/api/v1/jobs/createTask

Bild zu Video (erstes Bild)

curl -X POST \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "happyhorse",
    "inputs": {
      "urls": ["https://example.com/panda.jpg"],
      "prompt": "The panda blinks and smiles",
      "duration": "5s",
      "outputResolution": "1080p"
    }
  }' \
  https://seegen.ai/api/v1/jobs/createTask

Referenz zu Video (1–9 Referenzbilder)

Übergeben Sie videoWorkflowTab: "multi-reference" mit 1–9 Referenzbild-URLs, um mehrere Subjekte zu einer einzigen Ausgabe zusammenzuführen. Verweisen Sie im Prompt mit character1, character2, … auf jedes Bild (in der Reihenfolge von urls). Das Seitenverhältnis wird über das Feld ratio gesteuert (es gibt kein erstes Bild, aus dem es abgeleitet werden könnte).

curl -X POST \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "happyhorse",
    "inputs": {
      "videoWorkflowTab": "multi-reference",
      "urls": [
        "https://example.com/character.jpg",
        "https://example.com/folding-fan.jpg",
        "https://example.com/earrings.jpg"
      ],
      "prompt": "A woman in red character1 opening folding fan character2, with tassel earrings character3 swinging",
      "duration": "5s",
      "outputResolution": "720p",
      "ratio": "16:9"
    }
  }' \
  https://seegen.ai/api/v1/jobs/createTask

HappyHorse-Parameterreferenz

Vollständige Referenz aller inputs-Parameter für das Modell happyhorse.

ParameterTypErforderlichBeschreibung
promptstringNeinTextbeschreibung. Erforderlich für Text-to-Video und Reference-to-Video; optional für Image-to-Video. Max. 5000 Nicht-CJK-Zeichen oder 2500 CJK-Zeichen (darüber hinaus kürzt das Upstream-System automatisch). Verwenden Sie in r2v character1/character2/…, um auf das N-te Referenzbild zu verweisen.
urlsstring[]Neint2v: weglassen. i2v: genau 1 URL (wird als erstes Bild verwendet). r2v: 1–9 URLs. Unterstützt öffentliche HTTPS-URLs und Asset-Referenzen (z. B. "asset://asset-20260326-abc123").
videoWorkflowTabstringNeinSetzen Sie "multi-reference", um den Reference-to-Video-Modus zu aktivieren (muss mit 1+ urls kombiniert werden). Weglassen für Text-to-Video / Image-to-Video.
durationstringNein"3s" bis "15s" (Standard "5s").
outputResolutionstringNein"720p" (Standard) oder "1080p".
ratiostringNein"16:9" / "9:16" / "1:1" / "4:3" / "3:4". Wird für Text-to-Video und Reference-to-Video verwendet — das Seitenverhältnis bei Image-to-Video wird aus dem ersten Bild abgeleitet.
seedintNein0 bis 2147483647. Leer lassen für einen zufälligen Seed.

Bildanforderungen (i2v / r2v)

  • Kürzere Seite ≥ 300px
  • Seitenverhältnis zwischen 1:2.5 und 2.5:1
  • Formate: JPEG, JPG, PNG, BMP, WEBP
  • Max. Dateigröße 10MB pro Bild (r2v: für jeden der 1–9 Eingänge)

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-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

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

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 CreditsKaufen Sie weitere Credits auf seegen.ai
403Zugriff verweigertSie können nur Ihre eigenen Tasks abfragen
404Task nicht gefundenÜberprüfen Sie, ob die taskId korrekt ist
429Gleichzeitigkeitslimit (3 Tasks)Warten Sie, bis vorhandene Tasks abgeschlossen sind
500Interner ServerfehlerNach ein paar Sekunden erneut versuchen

Vorab-Validierung (400 mit Code)

Seedance-Anfragen werden vor jeglicher Belastung von Credits gegen den Upstream-Vertrag geprüft. Schlägt eine Prüfung fehl, gibt createTask { "message": "...", "code": "..." } mit HTTP 400 zurück, und es wird kein Task erstellt. Die Meldung gibt genau an, welches Limit überschritten wurde und wie es zu beheben ist.

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).
DURATION_OUT_OF_RANGEcodeNeinduration ist keine Ganzzahl innerhalb des Modellbereichs (sd2-Familie "4s"–"15s", sd2.5 "4s"–"30s").
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 das Modell akzeptiert (sd2-Familie 9 / 3 / 3, sd2.5 30 / 10 / 10; extend ≤3 Videos).
REFERENCE_VIDEO_DURATION_INVALIDcodeNeinEin Referenzvideo überschreitet das Maximum pro Clip (sd2-Familie 15s, sd2.5 30s), oder die gesamte Referenzdauer überschreitet die Obergrenze (15s / 30s).
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