Tutoriel
Comment utiliser l'API LTX 2.5 Fast de génération de vidéo à partir de texte ? Votre première vidéo en 5 minutes
Du texte à une vidéo avec audio de 2 à 20 secondes : exemples curl/Python, tableau des paramètres et points d'attention.
TL;DR
- LTX 2.5 Fast Text to Video (
ltx-2.5-fast/text-to-video) transforme un texte en une vidéo de 2 à 20 secondes, en 720p / 1080p, en paysage ou portrait, avec l'audio natif généré en même temps. Ouvrez la page du modèle pour l'essayer ; les nouveaux utilisateurs reçoivent 200 crédits à l'inscription. - Le prix est calculé à la seconde : 720p à 0,043 $/seconde (0,258 $ pour 6 secondes), 1080p à 0,086 $/seconde ; l'option
generate_audion'a aucune incidence sur le prix. - L'appel passe par l'API
/v1/tasksde HiAPI : soumettez la tâche pour obtenir untaskId, puis interrogez le résultat ; une fois réussi, récupérez l'URL de la vidéo dansoutput(adresse temporaire, à sauvegarder rapidement).
Ce qu'il sait faire
- Une phrase pour une séquence avec son : scène, mouvement, caméra et son s'écrivent dans un même prompt, l'audio est généré en même temps que l'image.
- De 2 à 20 secondes, 12 durées possibles :
durationprend 2, 3, 4, 5, 6, 8, 10, 12, 14, 16, 18, 20, avec 6 secondes par défaut. - Paysage ou portrait et deux résolutions : 16:9 / 9:16, 720p / 1080p ; fréquence d'images fixe à 25 fps, MP4.
- La même série propose aussi la génération de vidéo à partir d'image :
ltx-2.5-fast/image-to-videoprend une première image (avec éventuellement une dernière image) pour animer une image fixe, avec les mêmes règles de prix, voir la page du modèle image-vers-vidéo.
Comment choisir entre les deux API :
ltx-2.5-fast/text-to-video (cette page) |
ltx-2.5-fast/image-to-video |
|
|---|---|---|
| Entrée | Un texte | 1 à 2 images + une phrase décrivant le mouvement |
| Idéal pour | Explorer un plan de zéro, création publicitaire, storyboard | Une image de produit ou une photo existante que l'on veut animer |
| Points de contrôle | Prompt, résolution, durée, format | Première image (+ dernière image), prompt, résolution, durée |
En un mot : si le contenu de l'image n'est pas encore décidé, utilisez texte-vers-vidéo ; si l'image existe déjà, utilisez image-vers-vidéo ; les deux API peuvent s'enchaîner — texte-vers-vidéo produit une première image définitive, puis image-vers-vidéo y ajoute un mouvement de caméra.
Voici une vidéo réelle (720p · 6 secondes, avec audio natif) :
A barista pours steamed milk into a latte, creating a leaf pattern, close-up, soft morning light through a café window, gentle clinking cups and café ambience
(En français : un barista verse du lait mousseux dans un latte, créant un motif en feuille, gros plan, lumière douce du matin à travers la fenêtre d'un café, léger tintement de tasses et ambiance de café. Paramètres par défaut : 720p, 6 secondes, 16:9, audio activé.)

ltx-2.5-fast/text-to-video, 720p, 6 secondes, 16:9, 1280×720, avec son, 0,258 $.Voir la vidéo complète →
Deux parcours pour démarrer
Navigateur en 3 étapes : ouvrez la page du modèle → collez le prompt, choisissez la durée et la résolution → cliquez sur générer, 0,258 $ pour une vidéo 720p de 6 secondes, avec un aperçu en ligne dès la fin de la génération.
API en 3 étapes : POST /v1/tasks pour soumettre → récupérez le taskId → GET /v1/tasks/<taskId> jusqu'au statut success, puis téléchargez.
curl : la première vidéo
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/text-to-video",
"input": {
"prompt": "A barista pours steamed milk into a latte, creating a leaf pattern, close-up, soft morning light through a café window, gentle clinking cups and café ambience",
"resolution": "720p",
"duration": 6,
"aspect_ratio": "16:9",
"generate_audio": true
}
}'
Cette vidéo 720p × 6 secondes coûte 0,258 $.
Python : soumettre, interroger, télécharger
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/text-to-video",
"input": {
"prompt": "A barista pours steamed milk into a latte, creating a leaf pattern, close-up, soft morning light through a café window, gentle clinking cups and café ambience",
"resolution": "720p",
"duration": 6,
"aspect_ratio": "16:9",
"generate_audio": True,
},
}
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")
video_url = video["url"] # adresse temporaire, téléchargez-la dès que possible
mp4 = requests.get(video_url, timeout=120)
with open("output.mp4", "wb") as f:
f.write(mp4.content)
print("saved output.mp4")
Tableau des paramètres
| Champ | Obligatoire | Valeurs | Description |
|---|---|---|---|
prompt |
Oui | 1 à 5000 caractères | Tout en une phrase : scène, mouvement, caméra, son |
resolution |
Non | 720p / 1080p, 720p par défaut | Le prix par seconde en 1080p est environ 2 fois celui de 720p |
duration |
Non | 2/3/4/5/6/8/10/12/14/16/18/20, 6 par défaut | Uniquement ces valeurs énumérées (pas de 7 ni de 9) |
aspect_ratio |
Non | 16:9 / 9:16, 16:9 par défaut | Choisissez 9:16 pour les vidéos courtes verticales |
generate_audio |
Non | true par défaut | Audio natif ; le désactiver ne réduit pas le prix |
Tout champ absent du tableau dans le corps de la requête renvoie directement une erreur 400.
Erreurs que vous rencontrerez
| Code de statut | Signification | Que faire |
|---|---|---|
| 400 INVALID_REQUEST | Corps de requête invalide (prompt manquant, duration avec une valeur hors énumération comme 7, champ hors tableau) |
Corrigez le corps de la requête d'après le tableau des paramètres |
| 402 INSUFFICIENT_QUOTA | Solde insuffisant (aucun débit) | Rechargez puis réessayez |
| 429 RATE_LIMITED | Limitation de débit atteinte | Réduisez la fréquence de soumission |
| 409 / 422 IDEMPOTENCY_KEY_* | Soumission en double avec la même clé d'idempotence | Utilisez un nouveau Idempotency-Key |
L'échec d'une tâche peut aussi renvoyer CONTENT_POLICY_VIOLATION, TASK_FAILED, TASK_TIMEOUT, etc. ; un échec n'est pas facturé.
À vérifier avant la mise en production
- Callback : passez
"callback": {"url": "https://..."}au niveau supérieur du corps de la requête pour être notifié automatiquement de l'état final ; les tâches vidéo étant longues, c'est recommandé. - Sauvegardez rapidement : l'URL de la vidéo dans
outputest temporaire, téléchargez-la dès que vous l'obtenez. - Indiquez explicitement duration et resolution : ces deux champs déterminent la facturation, ne vous fiez pas aux valeurs par défaut ; journalisez ces deux valeurs avant la mise en production pour faciliter la réconciliation.
- Rythme des traitements en lot : une vidéo de 6 secondes demande un certain temps entre la soumission et la sortie ; pour les lots, privilégiez une soumission en file d'attente + récupération des résultats par callback, plutôt qu'une attente synchrone bloquante.
- Pour animer une image fixe : utilisez la page du modèle image-vers-vidéo de la même série, avec une première image en entrée pour plus de contrôle.
Questions fréquentes
- Oui, l'audio est généré avec la vidéo :
generate_audioest activé par défaut ; décrivez le son dans le prompt (vent, tintement de tasses) et l'audio collera mieux à l'image. - Oui, il n'y a que 12 durées possibles : les valeurs énumérées entre 2 et 20 secondes ; 7 ou 9 secondes renvoient une erreur 400.
- Oui, prix = prix par seconde × nombre de secondes : 720p 6 secondes 0,258 $, 1080p 6 secondes 0,516 $ ; désactiver l'audio ne réduit pas le prix.
- Oui, 10 $ permettent environ 38 vidéos : en comptant une vidéo 720p de 6 secondes.
- Oui, pour le format vertical, choisissez 9:16 : sortie en 720×1280 (720p) ou 1080×1920 (1080p), sans recadrage pour les plateformes de vidéos courtes.
- Oui, mieux vaut commencer en basse résolution puis monter : réglez le prompt et la composition en 720p, puis relancez le même prompt en 1080p une fois fixé ; le prix par seconde double mais vous n'avez qu'un seul rendu final.
- Oui, désactiver l'audio ne fait pas économiser : pour un doublage ou une musique en post-production, passez
generate_audio: falsepour obtenir une image propre.
Étape suivante : reprenez le prompt du latte pour générer votre première vidéo sur la page du modèle, et consultez le guide complet des prompts texte-vers-vidéo pour quatre modèles de scènes.
Articles similaires
Voir tous les articles →-
Tutoriel
Comment appeler hailuo-2.3-fast/image-to-video via l'API HiAPI : curl et Python en pratique
La première requête exploitable du palier image-vers-vidéo rapide et économique — de l'ID du modèle au téléchargement du MP4
-
Tutoriel
Comment appeler hailuo-2.3/text-to-video via l'API HiAPI : curl, Python et exemples de requêtes exécutables
-
Tutoriel
Utiliser Kandinsky 6.0 Pro texte-vers-vidéo sur HiAPI : tutoriel curl et Python
Démonstration pratique axée sur la requête : construire l'appel du prompt au clip vidéo, soumettre la requête, interroger l'état d'achèvement et télécharger le résultat