Benutzerhandbuch
Kurzvideos mit seedance-2.0-mini erstellen: ein End-to-End-Workflow mit der hiapi API
TL;DR
- Was das ist: Ein End-to-End-Workflow zur Erstellung vertikaler Kurzvideos im TikTok/Reels-Stil mit seedance-2.0-mini über die hiapi API – vom ersten curl-Aufruf bis zum Skript, das eine ganze Woche an Inhalten in einem Batch rendert. Der auf dieser Seite eingebettete Demo-Clip wurde genau mit der hier gezeigten Anfrage erzeugt.
- Warum dieses Modell für Kurzvideos: Natives
9:16, integriertes synchrones Audio (keine separate Sound-Nachbearbeitung nötig), flexible Dauer zwischen 4 und 15 Sekunden und ein 480p-Entwurf für nur $0.0272 pro Sekunde – ein 4-sekündiger vertikaler Entwurf kostet etwa $0.11 (Preise). - Verifizierte API-Fakten:
prompt,duration(Ganzzahl von 4–15) undresolution(480p|720p) sind Pflichtfelder;aspect_ratioakzeptiert1:1,4:3,3:4,16:9,9:16,21:9,adaptive. Für Image-to-Video werdenfirst_frame_url/last_frame_urlverwendet. Das Schema ist strikt – unbekannte Felder wieseedwerden mit 400 abgelehnt. - Workflow: Generiere in 480p, um Prompts zu iterieren, rendere die behaltenen Clips in 720p neu und reiche Aufgaben parallel im Batch ein – die asynchrone Warteschlange von
/v1/tasksübernimmt das Fan-out für dich.
Warum seedance-2.0-mini zum Loop für Kurzvideos passt
Kurzvideoproduktion ist quantitativ: Du entwirfst viele Clips, behältst wenige und veröffentlichst täglich. Dieser Workflow verlangt von einer Video-API drei Dinge – günstige Iteration, vertikale Ausgabe und Ton – und seedance-2.0-mini erfüllt genau alle drei:
- Ein Entwurf ist billig genug, um ihn wiederholt zu überarbeiten. Bei 480p rechnet das Modell mit $0.0272 pro Ausgabesekunde ab, sodass ein 4-Sekunden-Entwurf etwa $0.11 kostet und selbst ein vollständiger 15-Sekunden-Clip nur etwa $0.41. Die 720p-Stufe liegt bei $0.0586/Sekunde. (Preise wurden gegen die aktuelle Preisseite geprüft; Videos werden sekundengenau abgerechnet, daher ist
durationdein Kostenhebel.) - Natives 9:16. Wird direkt vertikal gerendert, statt einen Querformat-Clip zuzuschneiden und dabei die Komposition zu verlieren.
- Natives synchrones Audio. Das ausgegebene MP4 enthält eine AAC-Tonspur, die mit der Szene erzeugt wird – Umgebungsgeräusche, Foley, Raumrauschen. Für Feed-Inhalte, die automatisch mit Ton abgespielt werden, entfällt damit ein kompletter Schnittschritt.
Wenn du für Hauptinhalte ein größeres Modell derselben Familie möchtest, funktioniert derselbe Workflow mit seedance-2-0 – nur zu einer anderen Preisstufe.
Einrichtung
Du brauchst nur einen hiapi-API-Schlüssel, sonst nichts – kein SDK. Speichere den Schlüssel in einer Umgebungsvariablen:
export HIAPI_API_KEY="sk-..."
Alle Videomodelle auf hiapi laufen über einen einheitlichen asynchronen Task-Endpunkt: POST https://api.hiapi.ai/v1/tasks gibt sofort eine taskId zurück, danach pollst du GET /v1/tasks/{taskId}, bis der Task abgeschlossen ist. Details findest du in der Dokumentation.
Dein erster vertikaler Clip (T2V)
Eine minimal gültige Anfrage benötigt prompt, duration und resolution. Für Kurzvideos fügst du aspect_ratio: "9:16" hinzu:
curl -X POST https://api.hiapi.ai/v1/tasks \
-H "Authorization: Bearer $HIAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2.0-mini",
"input": {
"prompt": "Vertikales Kurzvideo. Auf einer sonnendurchfluteten Cafetheke wird ein frischer Matcha Latte langsam in ein klares Glas gegossen, grüne Wirbel entfalten sich in der Milch, weiches Fensterlicht, geringe Schärfentiefe. Natives Audio: sanfte Café-Atmosphäre, Geräusch des eingegossenen Getränks. Knackig, appetitanregend, fotorealistisch.",
"duration": 4,
"resolution": "480p",
"aspect_ratio": "9:16"
}
}'
Die Antwort kommt sofort zurück:
{"code": 200, "data": {"taskId": "tk-hiapi-01KWTTFDPHSDWZ0FP1QAS5J79Q"}, "message": "success"}
Poll den Task, bis status success ist, und lade dann sofort output[0].url herunter – Ausgabe-URLs sind temporär und laufen ab. Hier ist genau der Clip, den diese Anfrage erzeugt hat (4 Sekunden, 480p, 9:16, mit nativem Einfüll- und Umgebungsaudio – zum Hören den Ton einschalten):
Zwei praktische Hinweise aus diesem Rendering: Die vertikale Ausgabe bei „480p“ hat gemessene 496×864 Pixel, und das Audio landet als Standard-AAC-Tonspur im MP4 – keine separate Datei zum Zusammenführen nötig.
Eingabeschema, gegen die Live-API geprüft
Das Schema ist strikt. Hier sind echte Validierungsantworten, wortgetreu wiedergegeben, damit du sie in deinen Logs erkennst:
| Feld | Typ | Pflicht | Wert |
|---|---|---|---|
prompt |
string | ✅ (Mindestlänge 3) | deine Szenenbeschreibung |
duration |
integer | ✅ | 4–15 (Sekunden) |
resolution |
string | ✅ | 480p, 720p |
aspect_ratio |
string | optional | 1:1, 4:3, 3:4, 16:9, 9:16, 21:9, adaptive |
first_frame_url |
string | optional | Bild-URL für das Startbild bei I2V |
last_frame_url |
string | optional | Bild-URL für die Kontrolle des Endbilds |
image_input |
array | optional | Multimodale Bildreferenz |
reference_video_urls |
array | optional | Referenzvideos für Stil/Bewegung (niedrigerer Sekundensatz) |
Lässt du ein Pflichtfeld weg, wird der Task vor der Erstellung abgelehnt (keine Kosten):
{"code": 400, "error_code": "INVALID_REQUEST", "message": "invalid input: resolution: missing required field \"resolution\"; duration: missing required field \"duration\""}
Werte außerhalb des Bereichs nennen die exakten Grenzen – duration: maximum: got 16, want 15 – und unbekannte Felder werden abgelehnt statt ignoriert:
{"code": 400, "error_code": "INVALID_REQUEST", "message": "invalid input: <root>: additional properties 'seed' not allowed"}
Besonders dieses letzte Verhalten solltest du verinnerlichen: Wenn du eine Anfragestruktur von anderen Modellen übernimmst (ein seed, ein size, ein audio-Flag), gibt seedance-2.0-mini einen 400 zurück, statt das Feld stillschweigend zu verwerfen.
Wiederverwendbare Python-Funktion
Alles, was du für die Produktion brauchst, sind rund 40 Zeilen – einreichen, pollen, herunterladen:
import os, time, requests
API = "https://api.hiapi.ai/v1/tasks"
HEADERS = {"Authorization": f"Bearer {os.environ['HIAPI_API_KEY']}"}
def submit(prompt: str, duration: int = 4, resolution: str = "480p",
aspect_ratio: str = "9:16", **extra) -> str:
r = requests.post(API, headers=HEADERS, json={
"model": "seedance-2.0-mini",
"input": {"prompt": prompt, "duration": duration,
"resolution": resolution, "aspect_ratio": aspect_ratio, **extra},
}, timeout=60)
data = r.json()
task_id = (data.get("data") or {}).get("taskId")
if not task_id:
raise RuntimeError(f"submit failed: {data}")
return task_id
def wait(task_id: str, timeout_s: int = 900) -> dict:
deadline = time.time() + timeout_s
while time.time() < deadline:
task = requests.get(f"{API}/{task_id}", headers=HEADERS, timeout=30).json()["data"]
if task["status"] == "success":
return task
if task["status"] == "fail":
raise RuntimeError(f"task failed: {task.get('error')}")
time.sleep(8)
raise TimeoutError(task_id)
def make_clip(prompt: str, out_path: str, **kw):
task = wait(submit(prompt, **kw))
url = task["output"][0]["url"] # temporäre URL – bitte sofort herunterladen
with open(out_path, "wb") as f:
f.write(requests.get(url, timeout=120).content)
Ein 4-sekündiger 480p-Clip ist in der Regel in wenigen Minuten fertig; rechne zu Stoßzeiten mit bis zu etwa 10 Minuten, bevor du einen Timeout feststellst.
Image-to-Video: das erste Bild fixieren
Bei produktorientierten Kurzclips ist Prompt-Drift der Feind – du willst dein Produkt im Bild, nicht die Vorstellung des Modells davon. Die Lösung ist I2V mit first_frame_url: Erzeuge (oder fotografiere) ein Standbild und animiere es dann. Ein vertikales Referenz-Standbild wie dieses, erstellt mit gpt-image-2 über denselben /v1/tasks-Endpunkt, eignet sich gut als Startbild:

Die Anfrage fügt nur ein Feld hinzu:
task_id = submit(
"Heißes Wasser wird von oben langsam kreisend eingegossen, der Pour-over-Filter beginnt zu dampfen, "
"Tropfen fallen in die Glas-Servierkanne darunter, Sonnenlicht fängt den Dampf ein. Langsame, sanfte Kamerafahrt nach vorn. "
"Natives Audio: leises Wassergeräusch, ruhiges Raumrauschen am Morgen.",
duration=4, resolution="480p", aspect_ratio="9:16",
first_frame_url="https://your-cdn.example/pourover-ref.jpg",
)
Hier ist die tatsächliche Wirkung der Animation des ersten Bilds – ein Standbild aus unserer seedance-2.0-mini-Rezeptsammlung und der daraus erzeugte Clip, gleiches Modell und gleiche Anfragestruktur (in diesem Fall 16:9):

Komposition, Farbton und Motiv bleiben an deinem Standbild fixiert; der Prompt beschreibt nur noch die Bewegung. Wenn der Clip an einem bestimmten Endbild enden soll, gibt es außerdem last_frame_url – nützlich für Loops, die zur Produktkarte zurückschneiden.
Eine Woche Inhalte im Batch produzieren
Da /v1/tasks asynchron ist, besteht die Batch-Produktion einfach darin, alle Aufgaben einzureichen und dann zu pollen. Keine clientseitige Warteschlange nötig.
briefs = [
("mon-hook", "Vertikaler Clip. Espresso wird langsam extrahiert, ..."),
("tue-loop", "Nahtloser vertikaler Loop-Clip. Dampf ringelt sich aus der Tasse, ..."),
("wed-recipe","Vertikaler Clip. Aufsicht auf eine Pour-over-Brühsequenz, ..."),
# ... für jeden Veröffentlichungstag eines
]
tasks = {name: submit(p, duration=6) for name, p in briefs} # Fan-out
for name, tid in tasks.items(): # Einsammeln
make = wait(tid)
url = make["output"][0]["url"]
open(f"{name}.mp4", "wb").write(requests.get(url, timeout=120).content)
Die Kostenrechnung bleibt vorhersagbar, weil sekundengenau nach Ausgabe abgerechnet wird:
| Szenario | Spezifikation | Kosten |
|---|---|---|
| 1 Entwurfsiteration | 4 Sekunden · 480p | ca. $0.11 |
| 1 sofort veröffentlichbarer Clip | 6 Sekunden · 480p | ca. $0.16 |
| 7 Clips (eine Woche, täglich einer) | 7 × 6 Sekunden · 480p | ca. $1.14 |
| Neu-Rendering für Hauptinhalte | 6 Sekunden · 720p | ca. $0.35 |
Ein bewährter Workflow: Jede Idee zuerst in 480p entwerfen, die Gewinner behalten und nur diese in 720p neu rendern. Weitere Hebel (Auflösungsstufen, Längenbeschnitt, Batch-Planung) findest du in unserem Leitfaden Kosten von KI-Bild- und Video-APIs steuern.
Prompt-Tipps für den Feed
Was in unseren Testrenderings funktioniert hat und speziell auf Kurzvideos abgestimmt ist:
- Schreibe „vertikal“ und komponiere dafür. Beginne mit „Vertikales Kurzvideo.“ plus
aspect_ratio: "9:16", damit das Motiv im hohen Bild zentriert ist, statt eine Querformat-Szene zu rahmen, die beschnitten würde. - Setze den Hook in die erste Sekunde. Der Feed entscheidet in der ersten Sekunde – lass die anfängliche Bewegung den Lohn sein (der Guss läuft bereits, der Dampf steigt bereits auf), nicht eine langsame Einstellungsaufnahme.
- Schreibe das Audio vor. Eine Zeile „Natives Audio: …“ mit 2–3 konkreten Geräuschen (einschließendes Getränk, Café-Atmosphäre) formt die Tonspur zuverlässig. Ohne Prompt bekommst du nur generisches Raumrauschen.
- Minimiere für Loop-Clips die Veränderung zwischen Anfang und Ende. Treibende Partikel, pulsierendes Leuchten, geringelter Dampf – beschreibe eine stationäre Bewegung, dann liegen Start- und Endbild nah genug beieinander, um zu loopen.
Zusammenfassung
Kurzvideos mit seedance-2.0-mini zu produzieren läuft auf einen asynchronen Endpunkt, drei Pflichtfelder und eine sekundengenaue Abrechnung hinaus, die Iteration günstig macht: Vertikale Clips in 480p entwerfen kostet etwa 25 Cent pro Stück, Produktaufnahmen werden mit first_frame_url fixiert, dein Veröffentlichungskalender wird im Batch eingereicht und die Behaltenen werden in 720p neu gerendert. Hole dir einen API-Schlüssel und beginne mit der 4-Sekunden-curl-Anfrage oben – die Modellseite von seedance-2.0-mini bietet eine Parameterreferenz und Live-Preise, um von dort weiterzumachen.
Ähnliche Artikel
Alle Artikel ansehen →-
Benutzerhandbuch
seedream-5.0-pro/image-to-image Erste-Schritte-Leitfaden: Fähigkeiten, Preise und Integrationspunkte
Fähigkeitsgrenzen, Abrechnungsmodell und Engineering-Integration des Bildbearbeitungsmodells von ByteDance
-
Benutzerhandbuch
seedream-5.0-pro Text-zu-Bild Einstiegsleitfaden: Fähigkeitsgrenzen, API-Integration und Kostenkontrolle
Praxisorientierte Perspektive für Entwickler: von den wichtigsten Parametern bis zur Kostenschätzung von $0,05 pro Bild
-
Benutzerhandbuch
Hailuo 2.3 Fast Bild-zu-Video-Anleitung: Grenzen der Leistungsfähigkeit, Preisgestaltung und Integration in die Praxis
MiniMax Bild-zu-Video-Modell für Entwickler: Auswahlkriterien und Integrationspunkte