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.
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 ausoutputentnehmen.
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_ratiobestimmt (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
outputist 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_ratioidentisch mit dem ersten Frame setzen. - Später eigene Musik hinzufügen:
generate_audioauf 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_ratiobestimmt, 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 →-
Tutorial
So rufen Sie hailuo-2.3-fast/image-to-video über die HiAPI API auf: curl und Python in der Praxis
Die erste lauffähige Anfrage für die schnelle, kostengünstige Bild-zu-Video-Stufe – von der Modell-ID bis zum heruntergeladenen MP4
-
Tutorial
So rufen Sie hailuo-2.3/text-to-video über die HiAPI API auf: curl, Python und lauffähige Anfragebeispiele
-
Tutorial
Kandinsky 6.0 Pro Text-zu-Video auf HiAPI: curl- und Python-Tutorial
Eine anfrageorientierte praktische Demonstration: Aufbau des Aufrufs vom Prompt zum Videoclip, Absenden der Anfrage, Abfragen des Fertigstellungsstatus und Herunterladen des Ergebnisses