HiAPI
Blog

Benutzerhandbuch

Kurzvideo-Erstellung mit Seedance-2.0-Fast über die hiapi API

Sep 15, 2026
Kurzvideo-Erstellung mit Seedance-2.0-Fast über die hiapi API

TL;DR

  • Worum geht es: Ein vollständiger Workflow, der dir zeigt, wie du über die hiapi API mit seedance-2.0-fast vertikale Kurzvideos im TikTok/Reels-Stil erstellst – vom ersten Aufruf eines asynchronen Tasks bis hin zum Rendern einer ganzen Woche an Posts mit einem Batch-Skript. Der unten eingebettete Kurzclip wurde mit exakt den Anfragen generiert, die in dieser Anleitung gezeigt werden.
  • Warum dieses Modell für Kurzvideos: Native 9:16-Ausgabe, Dauer 4–15 Sekunden, 720p-Rendering zum Preis von $0.1772 pro Sekunde – ein 5-sekündiger vertikaler Clip kostet etwa $0.89 (Live-Preise). Die 480p-Entwurfsstufe kostet $0.0843 pro Sekunde, sodass du den Hook kostengünstig mehrfach verfeinern kannst, bevor du dich für das finale Rendering entscheidest.
  • Verifizierte API-Fakten: prompt, resolution (480p | 720p) und duration (Ganzzahl, 4–15) sind Pflichtfelder. aspect_ratio akzeptiert 1:1, 4:3, 3:4, 16:9, 9:16, 21:9, adaptive. Image-to-Video übergeben ein statisches Bild via image_urls. Alles läuft über den einheitlichen asynchronen /v1/tasks-Endpoint – es gibt keine separate, videospezifische API, die man lernen müsste.
  • Workflow: Erstelle zunächst einen 480p-Entwurf, um das Konzept festzulegen, rendere dann die finalen Versionen in 720p erneut – und da Task-Übermittlungen nicht blockieren, kannst du mehrere Prompts parallel verteilen.

Warum seedance-2.0-fast sich für den Kurzvideo-Loop eignet

Kurzvideo-Content ist ein Spiel der Masse – du veröffentlichst selten nur einen einzigen Clip, sondern eine ganze Warteschlange und behältst die, die gut funktionieren. Das verändert, was du von einem Videomodell wirklich brauchst: schnelle, günstige, native vertikale Ausgabe ist wichtiger als rohe Bildqualität. seedance-2.0-fast ist genau um diesen Kompromiss herum gebaut:

  • Sekundenbasierte Abrechnung macht Iterationen bezahlbar. Bei 480p kostet ein 4-Sekunden-Entwurf etwa $0.34; ein 5-Sekunden-Clip wie der unten kostet bei 480p $0.42 und bei 720p $0.89. Da die Abrechnung exakt duration × rate folgt, ist duration dein einziger Kostenhebel – es gibt keinen separaten „Qualitäts“-Aufschlag, den du in deinem Budget berücksichtigen musst (verifiziert anhand der aktuellen Preisseite).
  • Natives 9:16. Du renderst vertikal direkt über aspect_ratio, statt einen 16:9-Clip zuzuschneiden und dabei die im Prompt beschriebene Komposition zu verlieren.
  • Referenzvideo-Modus ist günstiger, nicht teurer. Wenn du einen reference_video_urls-Clip zur Steuerung von Stil/Bewegung übergibst, sinkt der Tarif auf $0.1072 pro Sekunde bei 720p und $0.0486 pro Sekunde bei 480p – nützlich, wenn du einen Stil gefunden hast, den du über einen ganzen Batch hinweg wiederholen möchtest.

Wenn du eher Highlight-Videos statt täglicher Batch-Inhalte veröffentlichst, gilt der folgende Workflow trotzdem – für eine breitere Modelleinführung lies unseren Begleitartikel seedance-2.0-fast für die API-Integration.

Vorbereitung

Du benötigst einen hiapi API-Schlüssel – kein SDK nötig:

export HIAPI_API_KEY="sk-..."

Jedes Videomodell auf hiapi läuft über denselben asynchronen Task-Endpoint: POST https://api.hiapi.ai/v1/tasks gibt sofort eine taskId zurück, und dann pollst du GET /v1/tasks/{taskId}, bis der Task abgeschlossen ist. Die vollständige Referenz findest du in der Dokumentation.

Dein erster vertikaler Clip

Die minimale gültige Anfrage benötigt prompt, resolution und duration. Füge aspect_ratio: "9:16" hinzu, um das Kurzvideo-Format zu erhalten:

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-fast",
    "input": {
      "prompt": "Nahaufnahme im vertikalen Format: Hände stapeln einen goldbraunen Pfannkuchen oben auf einen hohen Stapel Pfannkuchen, die auf einem Glasteller auf einem rustikalen Holztisch in einer sonnendurchfluteten, ländlich gestalteten Küche liegen, Dampf steigt auf. Warmes Morgenlicht fällt von links ein. Anschließend wird langsam Honig über den obersten Pfannkuchen gegossen, der im Licht glänzt, während der Dampf weiter aufsteigt. Gemütlich, natürlich, handgeführte Kamera, geringe Schärfentiefe, warme Farbtöne. Keine Text-Overlays.",
      "resolution": "720p",
      "aspect_ratio": "9:16",
      "duration": 5
    }
  }'

Die Antwort gibt sofort eine Task-ID zurück:

{"code": 200, "data": {"taskId": "tk-hiapi-..."}, "message": "success"}

Pollst du, bis status gleich success ist, und lädst dann sofort output[0].url herunter – diese URL ist zeitlich begrenzt gültig. Hier ist der Clip, den diese Anfrage tatsächlich generiert hat:

Das Rendering ist 720×1280 (sauberes 9:16), etwas über 5 Sekunden lang und wurde mit $0.886 abgerechnet – genau 5 × $0.1772, was die sekundenbasierte Abrechnung in der Praxis bestätigt, nicht nur auf der Preisseite.

Eingabeschema, verifiziert anhand der Live-API

Das Schema von seedance-2.0-fast ist strikt – das Senden nicht unterstützter Felder führt zu einem 400, statt dass Parameter stillschweigend ignoriert werden:

Feld Typ Erforderlich Werte
prompt string ✅ Deine Beschreibung der Aufnahme
resolution string ✅ 480p, 720p
duration integer ✅ 4–15 (Sekunden)
aspect_ratio string optional 1:1, 4:3, 3:4, 16:9, 9:16, 21:9, adaptive
image_urls array optional Quellstatisches Bild für Image-to-Video

Lässt du ein Pflichtfeld weg, wird der Task abgelehnt, bevor irgendetwas erstellt wird – für fehlerhafte Anfragen wird nichts berechnet. Halte dich strikt an die Feldnamen in dieser Tabelle; Kurzvideo-Skripte, die für andere Videomodelle geschrieben wurden (mit motion_strength, seed, first_frame_url), erhalten hier einen 400 statt ignoriert zu werden.

Wiederverwendbare Python-Funktion

Übermitteln, pollen, herunterladen – etwa 30 Codezeilen decken einen Produktions-Loop ab:

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 = 5, resolution: str = "720p",
           aspect_ratio: str = "9:16", **extra) -> str:
    r = requests.post(API, headers=HEADERS, json={
        "model": "seedance-2.0-fast",
        "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"]          # zeitlich begrenzt gültig – sofort herunterladen
    with open(out_path, "wb") as f:
        f.write(requests.get(url, timeout=120).content)

Ein 5-Sekunden-720p-Rendering ist normalerweise in ein bis zwei Minuten fertig; bei hoher Last rechne mit bis zu etwa 10 Minuten, bevor du es als Timeout betrachtest.

Image-to-Video: von einem festen Bild ausgehen

Bei produkt- oder markengetriebenen Kurzclips ist Prompt-Drift das eigentliche Risiko – du willst dein Produkt oder deinen Teller im Bild, nicht die Interpretation des Modells. image_urls löst das: Erzeuge oder fotografiere ein statisches Bild und lass es dann animieren.

task_id = submit(
    "Der Pfannkuchenstapel kommt sanft zur Ruhe, der Dampf steigt weiter nach oben auf, dann beginnt der Honig von außerhalb des Bildes einzugießen, die ersten Tropfen landen auf dem obersten Pfannkuchen. Langsame, stabile handgeführte Bewegung, warmes Morgenlicht.",
    duration=5, resolution="720p", aspect_ratio="9:16",
    image_urls=["https://your-cdn.example/pancake-still.jpg"],
)

Komposition, Beleuchtung und Position des Motivs werden auf dein Referenzstatikbild fixiert – der Prompt beschreibt nur noch die Bewegung, die als Nächstes passiert. Ideal für jeden Clip, bei dem das Anfangsbild wichtiger ist als die Intuition des Modells (ein Gericht, ein Produktbild, ein Markensetup).

Einen Tagesvorrat an Kurzclips im Batch generieren

Da /v1/tasks asynchron ist, besteht die Batch-Produktion aus: alles übermitteln, dann einsammeln.

briefs = [
    ("hook-pancakes", "Nahaufnahme im vertikalen Format: Hände stapeln einen goldbraunen Pfannkuchen …"),
    ("hook-latte",    "Vertikale Aufnahme: Dampf steigt aus einem frisch zubereiteten Latte auf, während Milch eingegossen wird …"),
    ("hook-citrus",   "Vertikale Makroaufnahme: Ein Messer schneidet eine Zitrusfrucht auf …"),
]

tasks = {name: submit(p, duration=5) for name, p in briefs}   # parallel verteilen
for name, tid in tasks.items():                                # Ergebnisse einsammeln
    result = wait(tid)
    url = result["output"][0]["url"]
    open(f"{name}.mp4", "wb").write(requests.get(url, timeout=120).content)

Die Kosten bleiben vorhersehbar, weil die Abrechnung strikt nach duration × rate erfolgt:

Szenario Spezifikation Kosten
1 Entwurfsiteration 4 Sekunden · 480p ca. $0.34
1 veröffentlichungsfertiger Clip 5 Sekunden · 720p ca. $0.89
5 Clips (Tagesbatch) 5 × 5 Sekunden · 720p ca. $4.43
Stil-passender Batch 5 Sekunden · 720p mit reference_video_urls ca. $0.54 pro Clip

Ein Workflow, der sich in der Praxis bewährt: Entwirf jede Idee in 480p, behalte die, die es wert sind veröffentlicht zu werden, und rendere nur diese erneut in 720p. Sobald du einen Stil gefunden hast, der sich zu wiederholen lohnt, fixiert reference_video_urls den Stil zu einem niedrigeren Sekundentarif als bei einem komplett neuen 720p-Rendering.

Prompt-Tipps für den Feed

Was die Ausgabe in Test-Renderings wirklich geprägt hat, speziell für Kurzvideos:

  • Beschreibe das Bild als vertikal und setze passend aspect_ratio: "9:16". Prompts, die für eine 16:9-Szene geschrieben wurden, werden bei erzwungenem 9:16 mittig zugeschnitten; beschreibe von vornherein eine nahe vertikale Komposition (wie im Pfannkuchen-Clip oben), damit das Motiv das Bild füllt.
  • Beginne mit der Bewegung, nicht mit dem Setting. Der erste Moment eines Feed-Clips muss bereits etwas tun – eine Hand stapelt schon, Honig fließt schon – statt erst eine langsame Establishing-Shot zu zeigen, bevor die Belohnung kommt.
  • Halte pro Clip eine klare Aktion. Das obige 5-Sekunden-Rendering macht der Reihe nach genau zwei Dinge (Stapeln, dann Begießen) und liest sich klar; drei unzusammenhängende Aktionen in einen Clip zu stopfen macht oft alle drei unscharf.
  • Benenne Licht und Materialien explizit. „Warmes Morgenlicht“, „aufsteigender Dampf“, „glänzend“ – konkrete sinnliche Details sind der Schlüssel, der ein konkretes, appetitliches Rendering von einem generischen unterscheidet.

Häufig gestellte Fragen

Eignet sich seedance-2.0-fast besonders für TikTok und Reels? Ja – die native 9:16-Unterstützung und die sekundenbasierte Abrechnung (statt einer festen Gebühr pro Clip) machen es ideal für einen Veröffentlichungsrhythmus, bei dem du mehrere kurze Optionen renderst und die stärkste behältst.

Was kostet ein einzelnes Kurzvideo? Bei 720p betragen die Kosten Dauer (Sekunden) × $0.1772. Ein 5-Sekunden-Clip kostet $0.886; ein 10-Sekunden-Clip $1.772. Bei 480p sinkt der Tarif auf $0.0843 pro Sekunde. Bevor du einen ganzen Batch budgetierst, prüfe die aktuellen Tarife unbedingt auf der Preisseite.

Kann ich ein statisches Bild animieren, statt nur aus Text zu generieren? Ja, über image_urls in der Anfrage – siehe den Image-to-Video-Abschnitt oben. Das ist der zuverlässigere Weg, wenn ein bestimmtes Produkt, ein Teller oder ein Set exakt so erscheinen muss, wie es fotografiert wurde.

Wie kurz und wie lang kann der Clip sein, den ich generieren kann? duration akzeptiert Ganzzahlen von 4 bis 15 Sekunden. Dezimale Sekundenanteile werden nicht unterstützt.

Beeinflusst die Auflösung außer Pixelmaßen und Preis noch etwas? Im Schema selbst nicht – resolution steuert nur die Ausgabegröße und den Sekundentarif. Komposition und Bewegung werden vollständig von Prompt und aspect_ratio gesteuert.

Zusammenfassung

Kurzvideos mit seedance-2.0-fast laufen auf einen asynchronen Endpoint, drei Pflichtfelder und eine sekundenbasierte Abrechnung hinaus, die dich ermutigt, erst zu iterieren und dich dann festzulegen: Entwirf vertikale Konzepte in 480p, fixiere das Anfangsbild deiner Gewinner mit image_urls, falls ein bestimmtes Produkt oder Motiv exakt korrekt erscheinen muss, und rendere dann die final behaltenen Versionen erneut in 720p. Hol dir einen API-Schlüssel und starte mit der Anfrage am Anfang dieser Anleitung – die seedance-2.0-fast-Modellseite bietet vollständige Parameterreferenz und aktuelle Preise für deinen weiteren Weg.

Ähnliche Artikel

Alle Artikel ansehen →

Starte mit persistenten KI-Artefakten

Hol dir deinen API-Key und rufe Bild-, Video- und Audiomodelle über eine einzige task-basierte API auf.

API-Dokumentation lesen