Tutoriel
Comment utiliser l'API image-vers-vidéo Grok Imagine 1.5 Lite ? Faites bouger vos photos
Une image devient une vidéo de 1 à 15 secondes avec effets sonores : le prix inclut les frais d'image d'entrée, le format suit l'image, exemples curl/Python.
TL;DR
- Grok Imagine 1.5 Lite Image to Video (
grok-imagine-1.5-lite/image-to-video) : téléversez 1 image pour la faire bouger : 1 à 15 secondes, effets sonores intégrés, format qui suit l'image d'entrée. Ouvrez la page du modèle et téléversez une image pour essayer ; les nouveaux utilisateurs reçoivent 200 crédits à l'inscription. - Prix = prix par seconde × nombre de secondes + 0,015 $ de frais d'image d'entrée par vidéo : 720P 6 secondes = 0,273 $ ; 480P = 0,189 $ ; 1080P = 1,215 $.
- Appel via l'interface HiAPI
/v1/tasks:image_urlest une chaîne (pas un tableau), exactement 1 adresse publique.
Ce qu'il sait faire
- Une photo devient un plan sonore : animation, mouvements de caméra et effets sonores sont décrits par le prompt, le sujet de l'image reste celui de l'original.
- Le format suit l'image d'entrée : image paysage → 16:9 (1264×720), portrait → 9:16 (720×1264), carrée → 1:1 (960×960), 4:3 → 1104×816 — les pixels sont arrondis aux dimensions prises en charge, le ratio reste inchangé.
- De 1 à 15 secondes, n'importe quel nombre entier de secondes, trois niveaux de résolution.
- Texte-vers-vidéo de la même série : pour générer à partir de zéro, voir le guide d'intégration texte-vers-vidéo ; les deux interfaces ont le même prix (l'image-vers-vidéo ajoute 0,015 $ de frais d'image d'entrée), le même /v1/tasks, le code ne diffère que par model et image_url.
Comment lire la grille tarifaire :
- « prix par seconde × nombre de secondes » correspond au coût de la vidéo elle-même, identique au texte-vers-vidéo ;
- 0,015 $ est le supplément pour l'image d'entrée, facturé une fois par vidéo, indépendamment de la résolution et de la durée ;
- donc à paramètres égaux, l'image-vers-vidéo coûte 0,015 $ de plus que le texte-vers-vidéo : 720P 6 secondes = 0,258 $ + 0,015 $ = 0,273 $. Pour mille vidéos, cet écart représente 15 $, à prévoir dans le budget.
Voici une vraie vidéo finale (photo de surf → plan de suivi de 6 secondes, avec son des vagues) :
The wave curls and breaks behind the surfer as he carves down its face, white spray bursts and sparkles in the golden backlight, water rushes past. Smooth tracking camera following the surfer. Loud ocean surf and rushing water. Keep the photo realistic. No text, no logos.
(En français : la vague se replie et se brise derrière le surfeur tandis qu'il descend sa face, des embruns blancs jaillissent et scintillent dans le contre-jour doré. Caméra en suivi fluide derrière le surfeur. Bruit fort de l'océan et de l'eau qui file. Gardez le rendu photo réaliste. Pas de texte, pas de logos.)
· 
grok-imagine-1.5-lite/image-to-video, 720P, 6 secondes, 16:9, 1264×720, effets sonores intégrés, 0,273 $ (dont 0,015 $ de frais d'image d'entrée).Voir la vidéo complète →
Prix : prix par seconde + frais d'image d'entrée
| Niveau | Par seconde | 6 secondes (dont 0,015 $ de frais d'image d'entrée) |
|---|---|---|
| 480P | 0,029 $ | 0,189 $ |
| 720P (par défaut) | 0,043 $ | 0,273 $ |
| 1080P | 0,20 $ | 1,215 $ |
Tarifs HiAPI actuels, vérifiés le 23 octobre 2026. image_url étant obligatoire, chaque vidéo inclut ces 0,015 $ ; le 1080P coûte 0,2 $ par seconde (environ 4,65 fois le 720P) ; pour l'exploration en lot, utilisez le 480P. Aucun frais en cas d'échec.
Deux parcours pour démarrer
Navigateur en 3 étapes : ouvrez la page du modèle → téléversez une image, écrivez la description du mouvement → cliquez sur générer.
API en 3 étapes : POST /v1/tasks pour soumettre → récupérez taskId → GET /v1/tasks/<taskId> jusqu'à success puis téléchargez.
curl : la première
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": "grok-imagine-1.5-lite/image-to-video",
"input": {
"prompt": "The wave curls and breaks behind the surfer as he carves down its face, white spray bursts and sparkles in the golden backlight, water rushes past. Smooth tracking camera following the surfer. Loud ocean surf and rushing water. Keep the photo realistic. No text, no logos.",
"image_url": "https://static.hiapi.ai/gallery/2026/10/3f75ff28db9e0070.png",
"duration": 6,
"resolution": "720p"
}
}'
Attention : image_url est une chaîne, ne transmettez qu'une seule image — un tableau renvoie une erreur 400.
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": "grok-imagine-1.5-lite/image-to-video",
"input": {
"prompt": "The wave curls and breaks behind the surfer as he carves down its face, white spray bursts and sparkles in the golden backlight, water rushes past. Smooth tracking camera following the surfer. Loud ocean surf and rushing water. Keep the photo realistic. No text, no logos.",
"image_url": "https://example.com/your-image.png",
"duration": 6,
"resolution": "720p",
},
}
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) # 临时地址,尽快保存
with open("output.mp4", "wb") as f:
f.write(mp4.content)
print("saved output.mp4")
Tableau des paramètres
| Champ | Obligatoire | Valeurs | Description |
|---|---|---|---|
image_url |
Oui | Chaîne, exactement 1 adresse publique | Le ratio de sortie suit cette image |
prompt |
Oui | 1 à 4096 caractères | Décrivez le mouvement ou le changement souhaité, y compris les effets sonores |
duration |
Non | 1 à 15, n'importe quel entier, 6 par défaut | |
resolution |
Non | 480p / 720p / 1080p, 720p par défaut |
Tout champ hors tableau dans le corps de la requête renvoie directement une erreur 400.
Les erreurs que vous rencontrerez
| Code de statut | Signification | Que faire |
|---|---|---|
| 400 INVALID_REQUEST | Corps de requête invalide (image_url manquant, image_url transmis sous forme de tableau, champ hors tableau) |
Utilisez une chaîne pour image_url |
| 402 INSUFFICIENT_QUOTA | Solde insuffisant (aucun frais prélevé) | Rechargez puis réessayez |
| 429 RATE_LIMITED | Limitation de débit déclenchée | 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 |
Un échec en état final peut aussi renvoyer CONTENT_POLICY_VIOLATION, TASK_FAILED, TASK_TIMEOUT, etc. ; aucun frais en cas d'échec.
À vérifier avant la mise en production
- Callback : les tâches vidéo étant longues, transmettez au niveau supérieur
"callback": {"url": "https://..."}pour éviter l'interrogation répétée. - Copiez rapidement : l'adresse de la vidéo dans
outputest temporaire ; téléchargez-la dès réception et stockez-la dans votre propre stockage, n'utilisez pas un lien temporaire comme bibliothèque d'actifs. - Une même image peut être réutilisée : changer le prompt crée une nouvelle vidéo (nouvelle facturation), idéal pour produire rapidement toute une série de visuels de présentation multi-angles à partir d'une même image produit.
- N'oubliez pas les 0,015 $ dans les calculs : pour un budget en lot, calculez « prix par seconde × nombre de secondes + 0,015 $ × nombre de vidéos ».
- Le son ne peut pas être désactivé : pour un média silencieux, coupez le son en post-production ; le prix ne change pas.
Questions fréquentes
- Oui, chaque vidéo inclut des effets sonores : les effets sonores décrits dans le prompt (vagues, bruit de pas dans la neige) sont générés avec, sans interrupteur pour les désactiver.
- Oui, le format suit l'image d'entrée : une image 16:9 donne 1264×720, une image carrée donne 960×960, les pixels sont arrondis, le ratio reste inchangé.
- Oui,
image_urlest une chaîne, une seule image autorisée ; un tableau ou plusieurs images renvoient une erreur 400. - Oui, la durée est de 1 à 15 secondes, n'importe quel entier : 5 à 6 secondes pour une action, plus de 10 secondes pour une action continue.
- Oui, la qualité de l'image d'entrée détermine le plafond du résultat : une petite image floue ne deviendra pas nette en bougeant ; fournissez si possible une image nette d'au moins 720p.
- Oui, il existe une formule pour les calculs en lot : prix par seconde × nombre de secondes + 0,015 $ × nombre de vidéos ; 720P 6 secondes pour cent vidéos = 27,30 $, mille vidéos = 273,00 $.
Étape suivante : prenez une de vos photos et animez-la depuis la page du modèle ; pour quatre scénarios, voir le recueil de prompts image-vers-vidéo.
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