HiAPI
Blog

Tutorial

Wie verwende ich die LTX 2.5 Fast Image-to-Video API? Statische Bilder in Bewegung bringen

Erstes Frame (optional plus letztes Frame) wird zu einem 2–20-Sekunden-Video: curl/Python-Beispiele, Verwendung von erstem und letztem Frame und Parametertabelle.

Oct 23, 2026
Wie verwende ich die LTX 2.5 Fast Image-to-Video API? Statische Bilder in Bewegung bringen

TL;DR

  • LTX 2.5 Fast Image to Video (ltx-2.5-fast/image-to-video) bringt statische Bilder in Bewegung: Lade 1 Bild als erstes Frame hoch (optional zusätzlich 1 Bild als letztes Frame), erzeuge ein 2–20-Sekunden-Video in 720p / 1080p mit nativem Audio. Modelseite öffnen, ein Bild hochladen und ausprobieren – neue Nutzer erhalten bei der Registrierung 200 Credits.
  • Preis nach denselben Regeln wie Text-to-Video: 720p $0.043 pro Sekunde, 1080p $0.086 pro Sekunde, Abrechnung nach der Sekundenzahl von duration; der Audio-Schalter beeinflusst den Preis nicht.
  • Aufruf über die HiAPI-/v1/tasks-Schnittstelle: image_urls übergibt 1–2 Bilder (erstes Frame / erstes + letztes Frame); nach Erfolg das Video aus output entnehmen.

Was es kann

  • Erstes Frame in Bewegung bringen: ein statisches Foto + eine Bewegungsbeschreibung; das Motiv bleibt erhalten, Bewegung, Kamera und Ton kommen hinzu.
  • Erstes + letztes Frame: zwei Bilder übergeben, das Modell ergänzt den Übergang vom ersten zum letzten Frame (z. B. von der Hütte am Tag zur Hütte in der Sternennacht).
  • Hochformat folgt: Das Ausgabeformat wird durch aspect_ratio bestimmt (16:9 / 9:16); es wird empfohlen, es mit dem ersten Frame abzustimmen, um Zuschnitt oder Ränder zu vermeiden.
  • Text-to-Video derselben Serie: Für die Generierung von Grund auf siehe Integrationsleitfaden für Text-to-Video; die Preisregeln beider Schnittstellen sind völlig identisch.

Hier ist ein echtes Ergebnis (statisches Leuchtturm-Foto → 6-Sekunden-Clip mit Ton):

Waves crash against the rocks below the lighthouse, seagulls glide across the golden sky, the camera slowly pushes in, sound of surf and gulls

(Chinesische Bedeutung: Wellen schlagen gegen die Felsen unter dem Leuchtturm, Möwen gleiten über den goldenen Himmel, die Kamera fährt langsam heran, Geräusche von Brandung und Möwen. Als erstes Frame dient das Leuchtturm-Foto aus dem Material, Parameter: 720p, 6 Sekunden, 16:9.)

→

ltx-2.5-fast/image-to-video, 720p, 6 Sekunden, 16:9, 1280×720, mit Ton, $0.258.Kompletten Clip ansehen →

Mit diesem Prompt generieren →

Wie man erstes Frame / erstes + letztes Frame übergibt

Eingabe image_urls Wirkung
1 Bild ["Erstes-Frame-Bild"] Bewegung beginnt bei diesem Bild, Motiv bleibt erhalten
2 Bilder ["Erstes-Frame-Bild", "Letztes-Frame-Bild"] Übergang vom ersten zum letzten Frame, das Modell ergänzt den Zwischenverlauf

Bilder werden als öffentliche JPG-/PNG-/WebP-URLs unterstützt; das Format beider Bilder sollte übereinstimmen, und aspect_ratio sollte wie beim ersten Frame gesetzt werden.

Zwei Einstiegswege

Browser in 3 Schritten: Modelseite öffnen → erstes Frame hochladen, Bewegungsbeschreibung verfassen → Generieren klicken; nach Fertigstellung direkt in der Vorschau ansehen.

API in 3 Schritten: POST /v1/tasks absenden → taskId erhalten → mit GET /v1/tasks/<taskId> abfragen und nach success herunterladen.

curl: erster Aufruf (einzelnes erstes Frame)

curl -X POST https://api.hiapi.ai/v1/tasks \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: your-unique-key-001" \
  -d '{
  "model": "ltx-2.5-fast/image-to-video",
  "input": {
    "prompt": "Waves crash against the rocks below the lighthouse, seagulls glide across the golden sky, the camera slowly pushes in, sound of surf and gulls",
    "image_urls": ["https://static.hiapi.ai/gallery/2026/10/0ca26560398eae72.jpg"],
    "resolution": "720p",
    "duration": 6,
    "aspect_ratio": "16:9"
  }
}'

Erstes + letztes Frame (Hütte am Tag → Hütte in der Sternennacht): nur image_urls ändern:

curl -X POST https://api.hiapi.ai/v1/tasks \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "ltx-2.5-fast/image-to-video",
  "input": {
    "prompt": "Time passes from bright winter day to starry night, the sky darkens, the cabin windows light up warmly and smoke rises from the chimney, an aurora appears, fixed camera",
    "image_urls": [
      "https://static.hiapi.ai/gallery/2026/10/7756ea1a228b0b88.jpg",
      "https://static.hiapi.ai/gallery/2026/10/16e267619aa1b003.jpg"
    ],
    "resolution": "720p",
    "duration": 5,
    "aspect_ratio": "16:9"
  }
}'

Python: absenden, abfragen, herunterladen

import time, uuid, requests

BASE = "https://api.hiapi.ai/v1/tasks"
HEADERS = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Content-Type": "application/json",
}

payload = {
    "model": "ltx-2.5-fast/image-to-video",
    "input": {
        "prompt": "Waves crash against the rocks below the lighthouse, seagulls glide across the golden sky, the camera slowly pushes in, sound of surf and gulls",
        "image_urls": ["https://example.com/your-first-frame.jpg"],
        "resolution": "720p",
        "duration": 6,
        "aspect_ratio": "16:9",
    },
}

resp = requests.post(
    BASE,
    headers={**HEADERS, "Idempotency-Key": str(uuid.uuid4())},
    json=payload,
    timeout=30,
)
resp.raise_for_status()
task_id = resp.json()["taskId"]

while True:
    task = requests.get(f"{BASE}/{task_id}", headers=HEADERS, timeout=30).json()
    print(task["status"])
    if task["status"] in ("success", "fail"):
        break
    time.sleep(5)

if task["status"] == "success":
    video = next(o for o in task["output"] if o.get("type") == "video")
    mp4 = requests.get(video["url"], timeout=120)   # temporäre Adresse, schnellstmöglich speichern
    with open("output.mp4", "wb") as f:
        f.write(mp4.content)
    print("saved output.mp4")

Parametertabelle

Feld Erforderlich Werte Beschreibung
image_urls Ja 1–2 öffentliche URLs 1. Bild = erstes Frame; 2. Bild = letztes Frame (JPG/PNG/WebP)
prompt Ja 1–5000 Zeichen Beschreibt Bewegung, Kamera und Ton; bereits im Bild vorhandene Dinge nicht wiederholen
resolution Nein 720p / 1080p, Standard 720p 1080p kostet pro Sekunde etwa das Doppelte von 720p
duration Nein 2/3/4/5/6/8/10/12/14/16/18/20, Standard 6 Enum-Werte
aspect_ratio Nein 16:9 / 9:16, Standard 16:9 Empfohlen identisch mit dem ersten Frame, um Zuschnitt oder Ränder zu vermeiden
generate_audio Nein Standard true Natives Audio; ausschalten, wenn man später eigene Musik hinzufügen möchte

Felder außerhalb der Tabelle im Request-Body führen direkt zu 400.

Fehler, die dir begegnen werden

Statuscode Bedeutung Behandlung
400 INVALID_REQUEST Ungültiger Request-Body (image_urls oder prompt fehlt, 3 Bilder übergeben, duration kein Enum-Wert) Request-Body anhand der Parametertabelle korrigieren
402 INSUFFICIENT_QUOTA Guthaben unzureichend (keine Abbuchung) Nach Aufladen erneut versuchen
429 RATE_LIMITED Rate-Limit ausgelöst Übermittlungsfrequenz reduzieren
409 / 422 IDEMPOTENCY_KEY_* Doppelte Übermittlung mit demselben Idempotenzschlüssel Neuen Idempotency-Key verwenden

Bei endgültigem Fehlschlag eines Tasks gibt es außerdem CONTENT_POLICY_VIOLATION, TASK_FAILED, TASK_TIMEOUT usw.; bei Fehlschlag wird nicht abgebucht.

Vor dem Go-live beachten

  • Callback: Video-Tasks dauern lange; übergib auf oberster Ebene des Request-Bodys "callback": {"url": "https://..."}, um Polling zu sparen.
  • Rechtzeitig speichern: Die Video-URL in output ist temporär; sofort nach Erhalt herunterladen.
  • Erstes und letztes Frame im gleichen Format: Bei zu großem Seitenverhältnis-Unterschied der beiden Bilder verzerrt der Übergang leicht; aspect_ratio identisch mit dem ersten Frame setzen.
  • Später eigene Musik hinzufügen: generate_audio auf false setzen, um ein sauberes Bild zu erhalten; der Preis bleibt gleich.
  • Qualität des ersten Frames bestimmt die Qualität des Ergebnisses: Ein unscharfes oder zu niedrig aufgelöstes erstes Frame wird auch in Bewegung nicht klarer; zuerst ein scharfes, großes Bild verwenden und dann dem Modell die Dynamik überlassen.

Häufige Fragen

  • Ja, maximal 2 Bilder: 1 Bild als erstes Frame oder erstes + letztes Frame; ein drittes Bild führt zu 400.
  • Ja, das Format folgt nicht dem Bild: Es wird durch aspect_ratio bestimmt, daher empfiehlt es sich, es manuell identisch mit dem ersten Frame zu setzen.
  • Ja, der Preis ist wie bei Text-to-Video: 720p $0.043 pro Sekunde, ein 6-Sekunden-Clip kostet $0.258.
  • Ja, der Übergang zwischen erstem und letztem Frame eignet sich für „Zeitverlauf“: Tag zu Nacht, leere Szene zu mit Produkten gefüllter Szene – zwei Bilder und ein Prompt genügen.
  • Ja, Produktbilder in Bewegung zu bringen ist seine Stärke: Das Produkthauptbild als erstes Frame, im Prompt Kamerabewegung (orbit, push in) und Deko-Elemente beschreiben – schon entsteht ein Präsentationsvideo.
  • Ja, Hochformatfotos mit 9:16: Ausgabe 720×1280, direkt für Kurzvideo-Plattformen geeignet; bei Querformatfotos 16:9 beibehalten.

Nächster Schritt: Nimm ein Produktbild von dir und bringe es auf der Modelseite in Bewegung; vier Image-to-Video-Szenarien findest du in der Prompt-Sammlung.

Ä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