Benutzerhandbuch
seedance-2-0 Leitfaden für Kurzvideos: Praxisrezepte mit der hiapi API
Erstelle vertikale TikTok-/Reels-/Shorts-Videos mit der seedance-2-0 Task-API auf hiapi – Text-zu-Video und Bild-zu-Video, verifizierte Preisgestaltung und direkt kopierbare Skripte zum Einreichen, Abfragen und Herunterladen.
Schnellüberblick
- Was ist das: Ein direkt ausführbares, reproduzierbares Rezept, das dir zeigt, wie du mit
seedance-2.0auf hiapi vertikale Kurzvideos (TikTok / Reels / Shorts) erstellst. Das unten eingebettete Kurzvideo wurde exakt mit dem darüber abgedruckten Prompt generiert – keine fremde Demo. - Zwei Modi, ein Modell:
seedance-2.0unterstützt unter demselben Endpunkt sowohl Text-zu-Video als auch Bild-zu-Video – du kannst mit einem Prompt beginnen oder ein vorhandenes Standbild in Bewegung setzen. - API-Fakten (auf der Plattform verifiziert):
seedance-2.0läuft auf dem asynchronen Task-Endpunkt (/v1/tasks). Dasinput-Objekt benötigtprompt,aspect_ratio(erforderlich – für Kurzvideos9:16verwenden),resolution(480p/720p/1080p) sowiedurationin Sekunden. Das Ergebnis wird als MP4 unteroutput[0].urlzurückgegeben. - Preisgestaltung (pro Ausgabesekunde):
480pkostet $0.136/Sekunde,720p$0.293/Sekunde,1080p$0.729/Sekunde. Ein 4-sekündiges 480p-Kurzvideo kostet $0.54. Aktuelle Preise findest du auf der Preisseite. - So führst du es aus: Sende ein POST an die Task-API, frage ab, bis der Status
successlautet, und lade dann das MP4 vonoutput[0].urlherunter – diese URL ist temporär und läuft ab, speichere die Bytes daher sofort. Die vollständigen kopierbaren Skripte (beide Modi + Batch-Schleife) findest du am Ende.
Warum seedance-2.0 für Kurzvideos
Kurzvideo-Plattformen haben eine feste Grammatik: vertikal 9:16, wenige Sekunden Länge, ein klarer Bewegungsmoment. Genau dafür ist seedance-2.0 gemacht. Es rendert filmische Bewegung mit nur einem Seitenverhältnis-Flag, sodass du nicht mit dem Modell kämpfen musst, um ein vertikales Format zu erhalten – fordere einfach 9:16 an, und es komponiert entsprechend.
Ein weiterer Grund ist der Workflow: Jedes Kurzvideo ist ein einzelner asynchroner Task. Du reichst den Job ein, fragst die Task-ID ab und erhältst ein fertiges MP4. Kein Streaming-Socket, um den du dich kümmern musst, keine 100-Sekunden-Timeouts, die du umgehen musst – exakt dasselbe Task-Protokoll wie bei allen anderen Generierungsmodellen von hiapi. Wenn du also bereits die Bildmodelle aufgerufen hast, ist der Kontrollfluss hier identisch.
Modus 1 – Text-zu-Video
Das ist der schnellste Weg zu einem Kurzvideo: Beschreibe die Einstellung, wähle Format und Dauer, reiche ein.
Der folgende Prompt ist der, den ich tatsächlich ausgeführt habe. Schreibe wie ein Regisseur – Motiv, Beleuchtung, Kamerabewegung – und nicht wie eine Keyword-Liste.
Prompt: Ein Barista zieht in einem sonnendurchfluteten Café einen Espresso, Nahaufnahme, wie die Crema in die Tasse wirbelt, warmes Morgenlicht, sanfter aufsteigender Dampf, geringe Schärfentiefe, ruhige Handkamera-Push-in-Bewegung.
Einstellungen:
aspect_ratio: 9:16,resolution: 480p,duration: 4
Das Kurzvideo ist nativ im 9:16-Format und passt direkt in eine Reels-/Shorts-Timeline. Das Rendern dauerte etwa zwei Minuten und kostete zum aktuellen 480p-Tarif geschätzt rund $0.54 – günstig genug, um mehrere Varianten zu erzeugen und die beste zu behalten.
Der Request-Body ist klein. Ein Feld, das oft übersehen wird, ist aspect_ratio: Es ist erforderlich, und wenn es fehlt, lehnt die API den Task mit missing required field "aspect_ratio" ab.
import os, json, requests
TOKEN = os.environ["HIAPI_TOKEN"]
BASE = "https://api.hiapi.ai/v1/tasks"
HEADERS = {"Authorization": f"Bearer {TOKEN}", "Content-Type": "application/json"}
payload = {
"model": "seedance-2.0",
"input": {
"prompt": (
"A barista pulls a shot of espresso in a sunlit cafe, close-up on the "
"crema swirling into the cup, warm morning light, gentle steam rising, "
"shallow depth of field, smooth handheld camera push-in."
),
"aspect_ratio": "9:16", # required — 9:16 for short-form
"resolution": "480p", # 480p | 720p | 1080p
"duration": 4, # seconds
},
}
r = requests.post(BASE, headers=HEADERS, data=json.dumps(payload), timeout=60)
task_id = r.json()["data"]["taskId"]
print("submitted:", task_id)
Modus 2 – Bild-zu-Video
Der zweite Modus versetzt ein von dir bereitgestelltes Standbild in Bewegung, statt eine Szene von Grund auf zu erschaffen. Genau das braucht Markenarbeit: Nimm ein sauberes Produkt-Standbild auf (oder generiere es) und lass dann seedance-2.0 einen Bewegungsmoment hinzufügen, sodass Komposition und Produkt markenkonform bleiben.
Die Aufrufform ist dieselbe wie beim Task-Aufruf – behalte aspect_ratio, resolution und duration bei, und dein Prompt beschreibt jetzt die Bewegung, die auf das Bild angewendet werden soll („langsames Heranfahren“, „Modell dreht sich zur Kamera“, „Dampf beginnt aufzusteigen“), statt der gesamten Szene. Kombiniere es mit einem Standbild aus den Bildmodellen, und du hast eine zweistufige Pipeline: Key Visual generieren, dann in Bewegung setzen.
Tipp: Halte Bild-zu-Video-Kurzvideos kurz (4 Sekunden) und die Bewegung subtil. Kurzvideos belohnen einen sauberen Moment, nicht eine überladene Einstellung.
Kostenberechnung für Kurzvideo-Chargen
Da die Abrechnung pro Ausgabesekunde erfolgt, sind deine Kosten leicht vorhersehbar – wähle die Auflösung, multipliziere mit der Länge des Kurzvideos:
| Auflösung | Preis / Sekunde | 4-Sekunden-Kurzvideo | 8-Sekunden-Kurzvideo |
|---|---|---|---|
| 480p | $0.136 | $0.54 | $1.09 |
| 720p | $0.293 | $1.17 | $2.34 |
| 1080p | $0.729 | $2.92 | $5.83 |
Um einen Hook iterativ zu verbessern, entwirf zunächst in 480p – das kostet ein Viertel von 720p und reicht aus, um Komposition und Bewegung zu beurteilen. Nur die Gewinner-Version renderst du für die finale Veröffentlichung erneut in 720p oder 1080p. Die aktuellen Tarife aller Modelle findest du auf der Preisseite.
Vollständiges Skript – Einreichen, Abfragen, Herunterladen
Dies ist die End-to-End-Version: einen Text-zu-Video-Job einreichen, den Task abfragen, bis er abgeschlossen ist, und dann das MP4 speichern. Der Download-Schritt ist wichtig – output[0].url ist ein temporärer Link, der abläuft. Schreibe die Bytes daher sofort auf die Festplatte, sobald der Task erfolgreich ist.
import os, json, time, requests
TOKEN = os.environ["HIAPI_TOKEN"]
BASE = "https://api.hiapi.ai/v1/tasks"
HEADERS = {"Authorization": f"Bearer {TOKEN}", "Content-Type": "application/json"}
def submit(prompt, aspect_ratio="9:16", resolution="480p", duration=4):
payload = {
"model": "seedance-2.0",
"input": {
"prompt": prompt,
"aspect_ratio": aspect_ratio, # required
"resolution": resolution, # 480p | 720p | 1080p
"duration": duration, # seconds
},
}
r = requests.post(BASE, headers=HEADERS, data=json.dumps(payload), timeout=60)
r.raise_for_status()
return r.json()["data"]["taskId"]
def wait(task_id, timeout_s=600, poll=8):
deadline = time.time() + timeout_s
while time.time() < deadline:
r = requests.get(f"{BASE}/{task_id}", headers=HEADERS, timeout=30)
data = r.json().get("data", {})
status = data.get("status")
if status == "success":
return data
if status == "fail":
raise RuntimeError(f"task failed: {data.get('error')}")
time.sleep(poll)
raise TimeoutError(f"task {task_id} did not finish in {timeout_s}s")
def download(task, path):
out = task["output"][0]
assert out["type"] == "video", f"unexpected output type: {out['type']}"
# output[0].url is temporary (see expireAt) — save immediately.
resp = requests.get(out["url"], timeout=120)
resp.raise_for_status()
with open(path, "wb") as f:
f.write(resp.content)
return path
if __name__ == "__main__":
prompt = (
"A barista pulls a shot of espresso in a sunlit cafe, close-up on the crema "
"swirling into the cup, warm morning light, gentle steam rising, shallow "
"depth of field, smooth handheld camera push-in."
)
tid = submit(prompt, aspect_ratio="9:16", resolution="480p", duration=4)
print("submitted:", tid)
task = wait(tid)
print("saved:", download(task, "espresso_9x16.mp4"))
Um aus einem Hook eine ganze Charge zu machen, wickle submit / wait / download in eine Schleife über die Prompts:
HOOKS = {
"espresso": "A barista pulls a shot of espresso in a sunlit cafe, close-up on the crema, gentle steam, handheld push-in.",
"matcha": "A whisk froths bright green matcha in a ceramic bowl, top-down light, slow spiral motion, calm morning mood.",
"pour-over": "Hot water spirals over fresh coffee grounds in a dripper, close macro, steam rising, warm backlight.",
}
for name, prompt in HOOKS.items():
tid = submit(prompt, aspect_ratio="9:16", resolution="480p", duration=4)
task = wait(tid)
download(task, f"{name}_9x16.mp4")
print("done:", name)
Entwirf diese Charge in 480p, wähle die Gewinner aus, rendere sie in 1080p erneut und veröffentliche. Das ist der vollständige Kurzvideo-Zyklus mit einem Modell und einem Endpunkt.
Wichtigste Erkenntnisse
seedance-2.0ist ein einzelner asynchroner Task auf/v1/tasks, der ein MP4 zurückgibt – derselbe Kontrollfluss wie bei den Bildmodellen von hiapi.aspect_ratioist erforderlich; für TikTok / Reels / Shorts9:16verwenden.- Die Abrechnung erfolgt pro Ausgabesekunde: 480p $0.136/Sekunde, 720p $0.293/Sekunde, 1080p $0.729/Sekunde – entwirf also günstig in 480p und rendere nur die Gewinner in hoher Auflösung.
- Ausgabe-URLs sind temporär – lade die Bytes sofort herunter, sobald der Task
successmeldet. - Derselbe Aufruf erledigt sowohl Text-zu-Video als auch Bild-zu-Video; kombiniere Bild-zu-Video mit generierten Standbildern, um markenkonforme Produktbewegung zu erhalten.
Ä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