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
API Pack
125,000 Credits ($0.004/Credit)
~781 Videos à 5 Sek.
API-XL Pack
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-Eingabe | Mit Video-Eingabe | |
|---|---|---|
| sd2.5: 480P | 30 × out | 23 × (out + in) |
| sd2.5: 720P | 60 × out | 45 × (out + in) |
| sd2.5: 1080P (nativ) | 150 × out | 113 × (out + in) |
| sd2.5: 2K | (60 + 30) × out | 45 × (out + in) + 30 × out |
| sd2.5: 4K | (60 + 40) × out | 45 × (out + in) + 40 × out |
| sd2-pro: 480P | 20 × out | 15 × (out + in) |
| sd2-pro: 720P | 40 × out | 30 × (out + in) |
| sd2-pro: 1080P (nativ) | 100 × out | 75 × (out + in) |
| sd2-pro: 2K | (40 + 30) × out | 30 × (out + in) + 30 × out |
| sd2-pro: 4K (nativ) | 200 × out | 150 × (out + in) |
| sd2-fast: 480P | 16 × out | 12 × (out + in) |
| sd2-fast: 720P | 32 × out | 24 × (out + in) |
| sd2-fast: 1080P | (32 + 20) × out | 24 × (out + in) + 20 × out |
| sd2-fast: 2K | (32 + 30) × out | 24 × (out + in) + 30 × out |
| sd2-fast: 4K | (32 + 40) × out | 24 × (out + in) + 40 × out |
| sd2-mini: 480P | 10 × out | 7.5 × (out + in) |
| sd2-mini: 720P | 20 × out | 15 × (out + in) |
| sd2-mini: 1080P | (20 + 20) × out | 15 × (out + in) + 20 × out |
| sd2-mini: 2K | (20 + 30) × out | 15 × (out + in) + 30 × out |
| sd2-mini: 4K | (20 + 40) × out | 15 × (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
| Ausgabe | Credits / Sek. | 5-Sek.-Beispiel |
|---|---|---|
| 720P | 32 | 160 |
| 1080P | 60 | 300 |
| 2K | 32 + 30 | 310 |
| 4K | 32 + 40 | 360 |
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ösung | Mittlere Qualität | Hohe Qualität |
|---|---|---|
| 1k | 1015 | 4770 |
| 2k (Standard) | 2335 | 84125 |
| 4k | 4060 | 154230 |
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ösung | nano-banana-2 | nano-banana-pro |
|---|---|---|
| 1k | 2030 | 4060 |
| 2k (Standard) | 3045 | 4060 |
| 4k | 4770 | 74110 |
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 / Stufe | Credits |
|---|---|
| Lite 2k / 4k (Pauschalpreis) | 710 |
| Pro 1k (Standard) | 1015 |
| Pro 2k | 2030 |
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/creditsWichtig: 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
doneEndpunkte
/api/v1/jobs/createTaskNeuen Video-Generierungs-Task erstellen
/api/v1/jobs/queryTaskTask-Status und -Ergebnis abfragen
/api/v1/account/creditsIhr Credit-Guthaben prüfen
/api/v1/assets/uploadEin Asset (Bild/Video/Audio) zur Prüfung hochladen
/api/v1/assets/statusPrüfstatus eines Assets abfragen
/api/v1/assets/listIhre hochgeladenen Assets auflisten
/api/v1/upscale/createEigenständigen Video-Upscale-Task einreichen (720p / 1080p / 2K / 4K)
/api/v1/upscale/queryStatus 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.
| Modell | T2V | I2V | First–Last | Multi-Ref | R2V | Nativ 1080p | Nativ 4K | Audio | 720p / 5s |
|---|---|---|---|---|---|---|---|---|---|
| sd2.5 | ✓ | ✓ | ✓ | ✓ | — | ✓ | Upscale | ✓ | 300 Credits |
| sd2 | ✓ | ✓ | ✓ | ✓ | — | ✓ | ✓ | ✓ | 200 Credits |
| sd2-fast | ✓ | ✓ | ✓ | ✓ | — | Upscale | Upscale | ✓ | 160 Credits |
| sd2-mini | ✓ | ✓ | ✓ | ✓ | — | Upscale | Upscale | ✓ | 100 Credits |
| happyhorse | ✓ | ✓ | — | — | ✓ | ✓ | Upscale | ✓ | 160 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| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| prompt | string | Ja | Textbeschreibung des zu generierenden Videos. Max. 20000 Zeichen. |
| duration | string | Nein | Videolänge: "4s" bis "15s"; sd2.5 unterstützt bis zu "30s" (Standard: "5s") |
| resolution | string | Nein | Seitenverhältnis über die Auflösung. Optionen: auto (Standard), 720x720, 720x960, 960x720, 1280x720, 720x1280, 1280x540 |
| outputResolution | string | Nein | Stufe 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. |
| seed | int | Nein | Seed für Reproduzierbarkeit: -1 oder weglassen für zufällig; 0–2147483647 für fest. |
| generateAudio | boolean | Nein | Ob 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| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| urls | string[] | Ja | Array mit einer Bild-URL (das Ausgangsbild). Unterstützt sowohl HTTP-URLs als auch Asset-Referenzen (z. B. "asset://asset-20260326-abc123") |
| prompt | string | Nein | Textbeschreibung der gewünschten Bewegung |
| duration | string | Nein | Videolänge: "4s" bis "15s"; sd2.5 unterstützt bis zu "30s" (Standard: "5s") |
| outputResolution | string | Nein | Stufe 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. |
| seed | int | Nein | Seed für Reproduzierbarkeit: -1 oder weglassen für zufällig; 0–2147483647 für fest. |
| generateAudio | boolean | Nein | Ob 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| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| urls | string[] | Ja | Array mit genau 2 Bild-URLs: [first_frame, last_frame]. Unterstützt sowohl HTTP-URLs als auch Asset-Referenzen (z. B. "asset://asset-20260326-abc123") |
| videoInputMode | string | Ja | Muss "keyframe" sein |
| prompt | string | Nein | Textbeschreibung, die den Übergang steuert |
| duration | string | Nein | Videolänge: "4s" bis "15s"; sd2.5 unterstützt bis zu "30s" (Standard: "5s") |
| outputResolution | string | Nein | Stufe 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. |
| seed | int | Nein | Seed für Reproduzierbarkeit: -1 oder weglassen für zufällig; 0–2147483647 für fest. |
| generateAudio | boolean | Nein | Ob 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| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| urls | string[] | Nein | Referenzbild-URLs (max. 9). Unterstützt sowohl HTTP-URLs als auch Asset-Referenzen (z. B. "asset://asset-20260326-abc123") |
| videoUrls | string[] | Nein | Referenzvideo-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. |
| audioUrls | string[] | Nein | Referenz-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. |
| videoInputMode | string | Ja | Muss "reference" sein |
| prompt | string | Nein | Textbeschreibung |
| duration | string | Nein | Videolänge: "4s" bis "15s"; sd2.5 unterstützt bis zu "30s" (Standard: "5s") |
| resolution | string | Ja | Erforderlich für den Reference-Modus. Optionen: 720x720, 720x960, 960x720, 1280x720, 720x1280, 1280x540 |
| outputResolution | string | Nein | Stufe 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. |
| seed | int | Nein | Seed für Reproduzierbarkeit: -1 oder weglassen für zufällig; 0–2147483647 für fest. |
| generateAudio | boolean | Nein | Ob 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| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| mode | string | Nein | "edit" oder "extend". Weglassen für gewöhnliche Reference-Generierung. |
| videoUrls | string[] | Ja | Mindestens 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). |
| urls | string[] | Nein | Optionale Anmerkungs-/Referenzbilder. |
| source_frame_timestamps_ms | number[] | Nein | nur bei mode "edit". Ein nicht negativer Zeitstempel des Quellvideos in Millisekunden pro Bild in urls. |
| outputResolution | string | Nein | Stufe 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.
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| prompt | string | Nein | Textbeschreibung (erforderlich für Text-to-Video, optional für andere Modi). Max. 20000 Zeichen. |
| urls | string[] | Nein | Bild-URLs. Unterstützt sowohl HTTP-URLs als auch Asset-Referenzen (z. B. "asset://asset-20260326-abc123"). Wird intern auf uploadedUrls abgebildet. |
| videoUrls | string[] | Nein | Referenzvideo-URIs asset:// (nur im Reference-Modus). Müssen zuerst über /api/v1/assets/upload hochgeladen werden — externe URLs werden abgelehnt. |
| audioUrls | string[] | Nein | Referenz-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. |
| duration | string | Nein | normalerweise "4s" bis "15s"; sd2.5 unterstützt bis zu "30s". Standard: "5s" |
| resolution | string | Nein | Seitenverhältnis: auto (Standard) | 720x720 | 720x960 | 960x720 | 1280x720 | 720x1280 | 1280x540 |
| outputResolution | string | Nein | Stufe 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. |
| videoInputMode | string | Nein | "keyframe" (Standard) oder "reference" |
| mode | string | Nein | Reference-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_ms | number[] | Nein | nur bei sd2.5 Video Edit: ein nicht negativer Zeitstempel in Millisekunden pro Anmerkungsbild. |
| seed | int | Nein | Zufalls-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. |
| generateAudio | boolean | Nein | Ob 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. |
| bitrateMode | string | Nein | Ausgabe-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. |
| upscaleResolution | string | Nein | (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| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| file | file | Ja | Die lokale Datei (Multipart-Formularfeld). Der Medientyp wird anhand des Inhalts erkannt. |
| name | string | Nein | Asset-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| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| url | string | Ja | Öffentlich zugängliche HTTPS-URL der hochzuladenden Datei |
| type | string | Ja | "IMAGE", "AUDIO" oder "VIDEO" |
| name | string | Nein | Asset-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
PROCESSING— in Prüfung, noch nicht verwendbarACTIVE— Prüfung bestanden, einsatzbereit für TasksFAILED— Prü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"| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| type | string | Nein | Nach Typ filtern: "IMAGE", "AUDIO" oder "VIDEO" |
| status | string | Nein | Nach Status filtern: "NONE", "PROCESSING", "ACTIVE" oder "FAILED" |
| cursor | number | Nein | Cursor für die Paginierung (verwenden Sie nextCursor aus der vorherigen Antwort) |
| limit | number | Nein | Einträ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/createTaskBild 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/createTaskReferenz 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/createTaskHappyHorse-Parameterreferenz
Vollständige Referenz aller inputs-Parameter für das Modell happyhorse.
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| prompt | string | Nein | Textbeschreibung. 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. |
| urls | string[] | Nein | t2v: 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"). |
| videoWorkflowTab | string | Nein | Setzen 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. |
| duration | string | Nein | "3s" bis "15s" (Standard "5s"). |
| outputResolution | string | Nein | "720p" (Standard) oder "1080p". |
| ratio | string | Nein | "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. |
| seed | int | Nein | 0 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.
| Modell | T2I | I2I (Bearbeiten) | Multi-Ref | Max. Auflösung | 2k / medium |
|---|---|---|---|---|---|
| gpt-image-2 | ✓ | ✓ | bis zu 10 | 4k | siehe Preise |
| nano-banana-2 | ✓ | ✓ | bis zu 10 | 4k | siehe Preise |
| nano-banana-pro | ✓ | ✓ | bis zu 10 | 4k | siehe Preise |
| seedream-v5.0-lite | ✓ | ✓ | bis zu 10 | 4k | Pauschalpreis |
| seedream-v5.0-pro | ✓ | ✓ | bis zu 10 | 2k | siehe 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/createTaskBild 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/createTaskGPT Image 2-Parameterreferenz
Vollständige Referenz aller inputs-Parameter für das Modell gpt-image-2.
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| prompt | string | Ja | Textbeschreibung des zu generierenden Bildes oder der anzuwendenden Bearbeitung, wenn urls angegeben ist. |
| urls | string[] | Nein | Referenzbild-URLs für den Image-to-Image-Modus (Bearbeitung) (1–10 Bilder). Weglassen für Text-to-Image. Öffentliche HTTPS-URLs werden akzeptiert. |
| quality | string | Nein | "medium" / "high". Standard: "medium". Die Credits skalieren nach Stufe (siehe Preise). |
| resolution | string | Nein | "1k" / "2k" / "4k". Standard: "2k". Die Credits skalieren nach Stufe (siehe Preise). |
| aspectRatio | string | Nein | "1:1" / "16:9" / "9:16" / "4:3" / "3:4". Standard: "1:1". |
| outputFormat | string | Nein | "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/createTaskBild 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/createTaskNano Banana 2-Parameterreferenz
Vollständige Referenz aller inputs-Parameter für das Modell nano-banana-2.
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| prompt | string | Ja | Textbeschreibung des zu generierenden Bildes oder der anzuwendenden Bearbeitung, wenn urls angegeben ist. |
| urls | string[] | Nein | Referenzbild-URLs für den Image-to-Image-Modus (Bearbeitung) (1–10 Bilder). Weglassen für Text-to-Image. Öffentliche HTTPS-URLs werden akzeptiert. |
| resolution | string | Nein | "1k" / "2k" / "4k". Standard: "2k". Die Credits skalieren nach Stufe (siehe Preise). |
| aspectRatio | string | Nein | "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/createTaskBild 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/createTaskNano Banana Pro-Parameterreferenz
Vollständige Referenz aller inputs-Parameter für das Modell nano-banana-pro.
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| prompt | string | Ja | Textbeschreibung des zu generierenden Bildes oder der anzuwendenden Bearbeitung, wenn urls angegeben ist. |
| urls | string[] | Nein | Referenzbild-URLs für den Image-to-Image-Modus (Bearbeitung) (1–10 Bilder). Weglassen für Text-to-Image. Öffentliche HTTPS-URLs werden akzeptiert. |
| resolution | string | Nein | "1k" / "2k" / "4k". Standard: "2k". Die Credits skalieren nach Stufe (siehe Preise). |
| aspectRatio | string | Nein | "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/createTaskBild 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/createTaskSeedream 5.0 Lite-Parameter
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| prompt | string | Ja | Bildbeschreibung oder Bearbeitungsanweisung. |
| urls | string[] | Nein | 1–10 öffentliche HTTPS-Referenzbild-URLs. Weglassen für Text-to-Image. |
| resolution | string | Nein | "2k" oder "4k". Standard: "2k". |
| aspectRatio | string | Nein | "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/createTaskBild 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/createTaskSeedream 5.0 Pro-Parameter
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| prompt | string | Ja | Bildbeschreibung oder Bearbeitungsanweisung. |
| urls | string[] | Nein | 1–10 öffentliche HTTPS-Referenzbild-URLs. Weglassen für Text-to-Image. |
| resolution | string | Nein | "1k" oder "2k". Standard: "1k". 4k wird nicht unterstützt. |
| aspectRatio | string | Nein | "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| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| source.type | string | Ja | Verwenden Sie "url" für jede Quelle. ("uploadId" ist ein veralteter Alias, der aus Gründen der Abwärtskompatibilität beibehalten wird.) |
| source.url | string | Nein | Mit 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.r2Url | string | Nein | Veraltet — nur mit type="uploadId" (Abwärtskompatibilität). Neue Integrationen sollten type="url" verwenden. |
| targetResolution | string | Ja | "720p", "1080p", "2k" oder "4k". Muss höher als die Quellauflösung sein. |
| callBackUrl | string | Nein | Webhook-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 validating → processing → completed / 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.
| Code | Bedeutung |
|---|---|
| INVALID_URL | URL ist fehlerhaft oder nicht https |
| URL_NOT_REACHABLE | Die URL konnte nicht abgerufen werden — prüfen Sie, ob sie öffentlich und erreichbar ist |
| UNSUPPORTED_MEDIA_TYPE | Die Datei ist kein Video oder nicht im Format MP4 / MOV / WebM |
| FILE_TOO_LARGE | Die Quelle überschreitet 200 MB |
| DURATION_EXCEEDS_LIMIT | Die Quelle ist länger als 600 s |
| SOURCE_RESOLUTION_TOO_HIGH | Die Quelle liegt bereits auf oder über dem Ziel — wählen Sie ein höheres Ziel |
| INSUFFICIENT_CREDITS | Nicht 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/createTaskCallback-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
| Statuscode | Bedeutung | Maßnahme |
|---|---|---|
| 400 | Ungültige Parameter | Prüfen Sie die Fehlermeldung und korrigieren Sie Ihre Anfrage |
| 401 | Ungültiger oder fehlender API-Schlüssel | Prüfen Sie das Format Ihres Authorization-Headers |
| 402 | Nicht genügend Credits | Kaufen Sie weitere Credits auf seegen.ai |
| 403 | Zugriff verweigert | Sie können nur Ihre eigenen Tasks abfragen |
| 404 | Task nicht gefunden | Überprüfen Sie, ob die taskId korrekt ist |
| 429 | Gleichzeitigkeitslimit (3 Tasks) | Warten Sie, bis vorhandene Tasks abgeschlossen sind |
| 500 | Interner Serverfehler | Nach 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.
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| EMPTY_CONTENT | code | Nein | Weder ein Prompt noch ein Referenzbild / -video / -audio. |
| AUDIO_ONLY_NOT_SUPPORTED | code | Nein | Audio 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_RANGE | code | Nein | duration ist keine Ganzzahl innerhalb des Modellbereichs (sd2-Familie "4s"–"15s", sd2.5 "4s"–"30s"). |
| EDIT_SOURCE_VIDEO_REQUIRED / EXTEND_SOURCE_VIDEO_REQUIRED | code | Nein | mode "edit" / "extend" wurde ohne Video in videoUrls angefordert. |
| EDIT_SOURCE_DURATION_INVALID | code | Nein | sd2.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_REFERENCES | code | Nein | Mehr Referenzbilder / -videos / -audioclips, als das Modell akzeptiert (sd2-Familie 9 / 3 / 3, sd2.5 30 / 10 / 10; extend ≤3 Videos). |
| REFERENCE_VIDEO_DURATION_INVALID | code | Nein | Ein 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_FAILED | code | Nein | Ein 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