Tutoriel
API vidéo Grok Imagine : génération vidéo à partir d'images et de texte, versions 1.0 et 1.5
Quel endpoint vidéo Grok Imagine appeler, combien coûte un clip, des exemples de sorties réelles avec prompts, ainsi que du code curl et Python directement exécutable.
TL;DR
- L'API vidéo Grok Imagine sur HiAPI propose trois endpoints : 1.0 texte-vers-vidéo, 1.0 image-vers-vidéo et 1.5 image-vers-vidéo. Les trois ont le même prix : 0,015 $ par seconde en 480p, 0,0282 $ par seconde en 720p, et chaque clip inclut une bande-son générée, sans frais supplémentaires.
- La version 1.0 dure de 6 à 30 secondes et accepte jusqu'à 7 images de référence. La version 1.5 dure de 1 à 15 secondes, n'accepte qu'une seule image et permet, via
aspect_ratio: "auto", d'aligner la sortie sur la forme de cette image. - Un clip brouillon de 6 secondes en 480p coûte 0,09 $. Ouvrez la page du modèle image-vers-vidéo pour l'essayer ; les nouveaux comptes reçoivent 200 crédits gratuits.
Quel endpoint utiliser
| ID du modèle | Entrée | Durée | Format d'image | Options |
|---|---|---|---|---|
grok-imagine/text-to-video |
prompt | 6–30 s (6 par défaut) | 2:3 (par défaut), 3:2, 1:1, 16:9, 9:16 |
mode : normal ou fun |
grok-imagine/image-to-video |
1–7 images + prompt facultatif | 6–30 s (6 par défaut) | idem | mode ; référencer les images avec @image1, @image2 |
grok-imagine-1.5/image-to-video |
exactement 1 image + prompt facultatif | 1–15 s (8 par défaut) | auto (par défaut), 1:1, 16:9, 9:16, 3:2, 2:3 |
pas de mode |
Les trois endpoints sont facturés à la seconde : 0,015 $ (480p, par défaut) ou 0,0282 $ (720p). Tarifs HiAPI en temps réel, consultés le 19 octobre 2026. Les tâches échouées ne sont pas facturées.
Comment choisir :
- Durée supérieure à 15 secondes, ou besoin de plusieurs images produit en référence : 1.0 image-vers-vidéo.
- Une seule image fixe, besoin d'un clip court et sortie devant conserver la forme de l'image fixe : 1.5 image-vers-vidéo. C'est aussi le seul endpoint capable de descendre sous 6 secondes, donc un clip en boucle de 4 secondes coûte moins cher.
- Aucune image : 1.0 texte-vers-vidéo.
| Clip | 480p | 720p |
|---|---|---|
| 4 s (1.5 uniquement) | 0,06 $ | 0,11 $ |
| 6 s | 0,09 $ | 0,17 $ |
| 15 s | 0,23 $ | 0,42 $ |
| 30 s (1.0 uniquement) | 0,45 $ | 0,85 $ |
Sorties réelles
1.0 image-vers-vidéo, une image de référence. Une image fixe de catalogue produit d'un sac de week-end :

Slow cinematic orbit around the burnt-orange canvas weekender bag, camera circling smoothly from front to three-quarter view, studio lighting glinting off the brass zippers, seamless white background stays clean and shadowless, product perfectly sharp and unchanged, subtle premium e-commerce energy.
grok-imagine/image-to-video, 6 s, 720p, une image de référence, 0,17 $. Nous avions demandé du 9:16, mais une image source carrée renvoie toujours du carré (960×960).
1.0 image-vers-vidéo, deux images de référence. En fournissant à la fois une photo de mise en situation et une photo produit, le sac conserve son apparence dans la nouvelle scène :
grok-imagine/image-to-video, 6 s, 720p, 9:16, deux images de référence, 0,17 $.
1.5 image-vers-vidéo, la même image fixe, deux mouvements de caméra. Le mouvement de caméra est décrit dans le prompt. Changez de verbe et vous obtenez un autre plan :

Slow steady dolly push-in down the rain-soaked market street toward the glowing noodle stall, steam rising and curling from the pots, rain falling in thin streaks, neon sign reflections shimmering on the wet pavement, pedestrians walking slowly away under umbrellas, smooth constant camera speed, one continuous shot, no cuts, cinematic pacing
Ouvrir la page du modèle avec ce prompt (téléchargez d'abord votre image fixe) →
grok-imagine-1.5/image-to-video, 6 s, 720p, 16:9, 0,17 $.
Camera glides slowly to the left in a smooth lateral tracking move, strong parallax between the near market stalls and the far end of the street, rain keeps falling, neon reflections slide across the wet ground, the cook keeps stirring behind the counter, steam drifts sideways, one continuous move, no cuts, no zoom
grok-imagine-1.5/image-to-video, 6 s, 720p, 16:9, 0,17 $.
1.5, une boucle d'ambiance de 4 secondes. Avec une caméra fixe, tout le mouvement vient de la scène elle-même :
grok-imagine-1.5/image-to-video, 4 s, 720p, 16:9, 0,11 $.
curl
1.0 image-vers-vidéo :
curl -s -X POST https://api.hiapi.ai/v1/tasks \
-H "Authorization: Bearer $HIAPI_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "grok-imagine/image-to-video",
"input": {
"image_urls": ["https://your-cdn.example.com/product.jpg"],
"prompt": "Slow orbit around the product, studio light, background stays clean",
"duration": 6,
"resolution": "480p",
"aspect_ratio": "9:16"
}
}'
Vous recevez un taskId. Interrogez GET https://api.hiapi.ai/v1/tasks/{taskId} jusqu'à ce que data.status vaille success, puis téléchargez data.output[0].url. Les liens expirent, enregistrez le fichier immédiatement.
Pour le texte-vers-vidéo, remplacez le modèle par grok-imagine/text-to-video et retirez image_urls. Pour la version 1.5, remplacez le modèle par grok-imagine-1.5/image-to-video, conservez une seule image et retirez mode.
Python : soumettre, interroger, télécharger
# pip install requests; export HIAPI_KEY=your-key first
import os, time, uuid, requests
API = "https://api.hiapi.ai/v1/tasks"
H = {"Authorization": f"Bearer {os.environ['HIAPI_KEY']}"}
def generate(model, timeout_s=900, **inp):
body = {"model": model, "input": inp}
# Reuse the same Idempotency-Key if you retry a submit, so a retry never bills twice
r = requests.post(API, json=body, headers={**H, "Idempotency-Key": str(uuid.uuid4())}, timeout=30)
res = r.json()
if res.get("code") != 200:
raise RuntimeError(res) # 400s list every invalid field
task_id = res["data"]["taskId"]
deadline = time.time() + timeout_s
while time.time() < deadline:
d = requests.get(f"{API}/{task_id}", headers=H, timeout=30).json()["data"]
if d["status"] == "success":
return d["output"][0]["url"]
if d["status"] == "fail":
raise RuntimeError(d)
time.sleep(10)
raise TimeoutError(task_id)
still = "https://your-cdn.example.com/still.jpg"
# Draft cheaply on 1.5 at 480p, then re-render the keeper at 720p
draft = generate("grok-imagine-1.5/image-to-video", image_urls=[still],
prompt="slow push-in, steam rising, camera steady", duration=4, resolution="480p")
final = generate("grok-imagine-1.5/image-to-video", image_urls=[still],
prompt="slow push-in, steam rising, camera steady", duration=6, resolution="720p")
# A 20-second clip needs 1.0
long_clip = generate("grok-imagine/image-to-video", image_urls=[still],
prompt="slow push-in, steam rising, camera steady", duration=20, resolution="480p")
with open("clip.mp4", "wb") as f:
f.write(requests.get(final).content)
Paramètres
| Champ | 1.0 texte-vers-vidéo | 1.0 image-vers-vidéo | 1.5 image-vers-vidéo |
|---|---|---|---|
prompt |
obligatoire, 5 000 caractères max | facultatif | facultatif, 4 096 caractères max |
image_urls |
non accepté | 1–7 images, jpeg/png/webp, 10 Mo max par image | exactement 1 image, jpeg/png/webp, 20 Mo max |
duration |
6–30 | 6–30 | 1–15 |
resolution |
480p (par défaut) / 720p |
idem | idem |
aspect_ratio |
2:3 par défaut |
2:3 par défaut |
auto par défaut (suit l'image) |
mode |
normal (par défaut) / fun |
idem | non accepté |
Erreurs que vous rencontrerez
Toutes ces erreurs renvoient un HTTP 400 à la soumission : aucune tâche n'est donc créée et aucun frais n'est facturé :
duration: minimum: got 4, want 6: la version 1.0 commence à 6 secondes. Pour un clip plus court, utilisez 1.5.duration: maximum: got 20, want 15: la version 1.5 est limitée à 15 secondes. Pour un clip plus long, utilisez 1.0.image_urls: maxItems: got 2, want 1: la version 1.5 n'accepte qu'une seule image.additional properties 'mode' not allowed: la version 1.5 n'a pas demode.resolution: value must be one of '480p', '720p': pas de 1080p, et la valeur doit être en minuscules.
FAQ
Choisir 1.0 ou 1.5 ?
Le prix à la seconde est identique. Choisissez selon l'entrée et la durée : plusieurs images de référence ou plus de 15 secondes, prenez 1.0 ; une seule image fixe et un clip court, prenez 1.5. En cas de doute, générez la même image fixe 6 secondes en 480p sur les deux endpoints : cela coûte 0,18 $ au total.
Y a-t-il du son ?
Oui. Chaque clip ci-dessus a renvoyé une piste audio générée ; sur le clip en boucle du phare, on entend clairement les vagues. Il n'existe pas d'option pour désactiver le son (generate_audio et audio sont rejetés comme champs inconnus), et le son n'affecte pas le prix. Si vous n'en voulez pas, retirez la piste audio au montage.
Peut-on obtenir du 1080p ?
Non. La résolution maximale des trois endpoints est 720p.
À quoi sert mode: "fun" ?
C'est une option de la version 1.0 qui rend le mouvement plus vivant et plus exagéré. normal est la valeur par défaut et le choix le plus sûr pour les clips produit.
Plus d'exemples : Grok Imagine 1.5 pour les vidéos courtes. Pour consulter les tarifs de toute la gamme, voir Tarification de l'API Grok Imagine. Pour générer des images fixes, voir le guide de l'API d'images Grok Imagine.
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