SpaceXAI: Grok Imagine Video 1.5
Grok Imagine Video 1.5 crée de courtes vidéos avec du son synchronisé à partir de texte, d’une image de départ ou de références visuelles. Il propose une génération native en 1080p à partir de texte ou d’images, jusqu’à 14 images de référence et trois voix prédéfinies, ainsi que des contrôles des images initiales, finales et intermédiaires pour guider les scènes de personnages et de produits.
À propos du modèle
Cette description présente les capacités du modèle. Les entrées, sorties et options disponibles dans Ailoot pour la méthode sélectionnée figurent ci-dessous.
Grok Imagine Video 1.5 est l’édition complète de génération de la famille vidéo Grok Imagine. Le producteur met l’accent sur le mouvement, la continuité physique et les effets sonores, l’ambiance et la parole générés avec l’image. La génération de vidéo à partir de texte ou d’une image s’effectue nativement en 1080p, tandis que la génération guidée par des références offre davantage de contrôle sur les personnes ou les objets présents dans une scène. Le résultat utile est une courte vidéo avec son audio, par exemple une présentation de produit, un échange entre personnages ou une transition mise en scène avec précision entre des repères visuels.
Pour la génération de vidéo à partir de texte, décrivez le sujet du plan, le décor, l’action, le mouvement de caméra, l’éclairage et le son. Le producteur explique que la version 1.5 génère une image de départ en interne, puis l’anime ; cette image fixe intermédiaire n’est pas renvoyée. Pour la génération à partir d’une image, celle fournie devient la première image du clip et le prompt décrit la suite. Préparez-la avec le cadrage souhaité et les détails visibles déjà présents. Le clip issu de cette image suit son rapport largeur/hauteur : une livraison verticale nécessite donc un recadrage initial adapté.
La génération de vidéo à partir de références donne un autre rôle aux images : elles guident les personnes, objets, vêtements ou lieux sans fixer automatiquement l’image d’ouverture. La limite documentée est de 14 images de référence, avec une sortie de 15 secondes au maximum en 720p. Attribuez à chaque image un rôle clair dans la scène et identifiez-la par sa position dans la liste de références. Dans la syntaxe de prompt du producteur, la première référence est <IMAGE_0>, suivie de <IMAGE_1>, et ainsi de suite. Lorsqu’une image d’ouverture est également imposée, elle prend le premier indice et les références distinctes commencent à l’indice suivant. Cet ordre compte lorsqu’un brief distingue une personne, un produit et un décor.
Un brief de références peut placer un personnage à côté de la chaise fournie dans une image, dans la pièce fournie dans une autre, avec un lent rapprochement vers un détail du matériau de la chaise. Faites en sorte que le sujet et le produit principal soient faciles à distinguer dans les références. Le producteur conseille de donner à chaque référence un rôle et une place fixes, de limiter le nombre de personnages et de garder les accessoires immobiles lorsque de nombreux éléments sont fournis. Vérifiez que la forme et les inscriptions de l’objet prévu se retrouvent dans la scène, ainsi que la manière dont la caméra révèle le détail demandé dans le brief.
La génération à partir de références peut aussi attribuer jusqu’à trois voix prédéfinies. Identifiez séparément le personnage qui parle et sa voix dans le prompt, à l’aide des références vocales positionnelles documentées, et fournissez le dialogue exact qu’il doit prononcer. Le modèle prend en charge la parole avec synchronisation labiale. Pour un bref échange, écrivez des répliques qui laissent de la place à la réponse et vérifiez à la fois l’attribution des voix et les mouvements de bouche dans le clip obtenu. Une référence vocale choisit l’identité de la voix ; les consignes de caméra et de scène doivent toujours décrire comment les personnages sont montrés.
Les contrôles de première et de dernière image fixent les extrémités d’un plan, et jusqu’à quatre images clés peuvent imposer des images à des moments intermédiaires. Le guide du producteur place ces instants strictement à l’intérieur du clip, sur une grille d’un tiers de seconde ; deux repères qui aboutissent au même créneau temporel sont rejetés. Préparez des repères qui appartiennent à la même scène et décrivez le mouvement entre eux. Pour révéler un produit, l’ouverture peut montrer le présentoir fermé et l’image finale l’objet dévoilé. Pour une boucle, la même image peut servir de première et de dernière image. Écoutez et regardez toute la transition au lieu de juger uniquement les images imposées.
La génération habituelle à partir de texte ou d’une image prend en charge des clips de 1 à 15 secondes et des sorties 480p, 720p ou 1080p natives. La génération à partir de références est limitée à la 720p. Les cadrages à partir de texte comprennent 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 21:9 et 5:2. Choisissez la durée et le format en fonction de l’action et de l’usage prévu. Le producteur génère du son par défaut et documente une option de vidéo muette. Un brief peut préciser la réplique, les effets proches et l’ambiance lointaine afin que le son contribue à la même scène au lieu de devenir un fond indéfini.
Le processus de génération documenté est asynchrone : il renvoie un identifiant de requête, puis un résultat terminé contenant l’adresse du clip et sa durée. L’exemple de résultat pointe vers une vidéo MP4, dont l’adresse hébergée est temporaire. Conservez le clip terminé et le brief d’entrée lorsque vous préparez un montage. Vérifiez la continuité, la persistance des objets, le mouvement, le cadrage et le son par rapport au plan prévu. Un enregistrement intermédiaire de traitement sert à suivre le travail, tandis que la vidéo lisible constitue le livrable à examiner.
Les différences entre versions influencent la préparation. Lite gère les animations simples à partir de texte ou d’une seule image, avec une option 1080p obtenue par agrandissement de la 720p. La version 1.5 complète ajoute les images de référence, les voix prédéfinies et les images imposées. L’édition classique de Grok Imagine Video fournit la modification et le prolongement des vidéos existantes. Les chiffres de vitesse publiés séparément pour Video 1.5 Fast concernent cette variante nommée et ne définissent donc pas de délai fixe d’achèvement pour ce modèle. Pour une séquence plus longue, préparez de courts plans cohérents et vérifiez la continuité des personnages, des produits et du son lorsque vous assemblez les clips.
Ailoot Ultra · Vidéo POST /v1/videos x-ai/grok-imagine-video-1.5
x-ai/grok-imagine-video-1.5Premiers pas
Grok Imagine Video 1.5 crée de courtes vidéos avec du son synchronisé à partir de texte, d’une image de départ ou de références visuelles. Il propose une génération native en 1080p à partir de texte ou d’images, jusqu’à 14 images de référence et trois voix prédéfinies, ainsi que des contrôles des images initiales, finales et intermédiaires pour guider les scènes de personnages et de produits.
- Entrées acceptées
- Texte · Images
- Résultats
- Vidéo
Disponible dans Ailoot · entrées et méthodes
Ailoot Ultra · Vidéo POST /v1/videos
- Types d’entrée
text,image- Types de sortie
video- Format de sortie
- Octets MP4 d’origine ; sans normalisation ni transcodage
| Champ | Type | Exigence | Valeurs et limites | Par défaut |
|---|---|---|---|---|
Champmodel | Typestring | ExigenceObligatoire | Valeurs et limites x-ai/grok-imagine-video-1.5 | Par défaut— |
Champprompt | Typestring | ExigenceObligatoire | Valeurs et limites | Par défaut— |
Champduration | Typeinteger | ExigenceObligatoire | Valeurs et limites 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 Minimum: 1 Maximum: 600 | Par défaut— |
Champresolution | Typestring | ExigenceFacultatif | Valeurs et limites 480p, 720p, 1080p | Par défaut— |
Champaspect_ratio | Typestring | ExigenceFacultatif | Valeurs et limites 16:9, 9:16, 1:1, 4:3, 3:4, 3:2, 2:3 | Par défaut— |
Champgenerate_audio | Typeboolean | ExigenceFacultatif | Valeurs et limites false | Par défaut— |
Champframe_images | Typearray | ExigenceFacultatif | Valeurs et limites Nombre minimal d’éléments: 1 Nombre maximal d’éléments: 1 Contenu en entrée: Tableau d’objets d’image. Chaque objet comporte type=image_url, image_url contenant url et frame_type. Utilisez une URL HTTPS pour l’image et définissez frame_type sur first_frame. Chaque rôle d’image apparaît au plus une fois. Clés exactes: type, image_url, frame_type Conditions: Ces clés décrivent chaque objet d’image ; image_url contient uniquement url. Omettez frame_images pour une requête contenant uniquement du texte. | Par défaut— |
Champinput_references | Typearray | ExigenceFacultatif | Valeurs et limites | Par défaut— |
Champcallback_url | Typestring | ExigenceFacultatif | Valeurs et limites Motif: ^https:// | Par défaut— |
Champsession_id | Typestring | ExigenceFacultatif | Valeurs et limites | Par défaut— |
Champtrace | Typeobject | ExigenceFacultatif | Valeurs et limites | Par défaut— |
Champuser | Typestring | ExigenceFacultatif | Valeurs et limites | Par défaut— |
Combinaisons d’éléments d’entrée
Texte vers vidéo · Une consigne écrite. · Obligatoire : model, prompt, duration
Fournissez prompt sous forme de texte et duration en secondes entières. Choisissez une résolution prise en charge et, si nécessaire, un rapport d’image.
model: Type : string · x-ai/grok-imagine-video-1.5
prompt: Type : string · Nombre maximal d’octets UTF-8: 10 000 · Caractères autres que des espaces requis: Oui
Image vers vidéo · Une consigne écrite et une image initiale. · Obligatoire : model, prompt, duration, frame_images
frame_images est un tableau. Chaque objet d’image contient type, image_url et frame_type ; image_url contient url. Définissez type sur image_url. Utilisez first_frame. Chaque rôle d’image apparaît au plus une fois. Fournissez une URL HTTPS publique pour chaque image. Choisissez une résolution prise en charge et, si nécessaire, un rapport d’image.
Clés exactes : type, image_url, frame_type
model: Type : string · x-ai/grok-imagine-video-1.5
prompt: Type : string · Nombre maximal d’octets UTF-8: 10 000 · Caractères autres que des espaces requis: Oui
Paramètres et cycle de vie de la méthode
| Paramètre | Contrat |
|---|---|
Paramètrecontent_type | Contratapplication/json |
Paramètrerequired | Contratmodel, prompt, duration |
Paramètrematerial_types | Contrattext, image |
Paramètreadditional_properties | Contratfalse |
Paramètreoptional_controls | Contratresolution, aspect_ratio, generate_audio, frame_images, input_references, callback_url, session_id, trace, user |
Cycle de vie : submit_once_poll_original
GET /v1/videos/{public_id}
GET /v1/videos/{public_id}/content
Tarifs
Calcul du coût final
Les tarifs affichés servent à estimer le coût avant la génération. Le montant final est calculé à partir du coût enregistré pour la génération d’origine. La durée mesurée du résultat et les quantités prévisionnelles ne constituent pas la quantité finale facturable.
Les tarifs n’ajoutent pas d’options de requête. Les paramètres pris en charge figurent dans la méthode sélectionnée.
- Mode rapide
- Non précisé Lorsque le mode rapide est sélectionné
- Mode Flex
- Non précisé Lorsque le mode flex est sélectionné
- Effort de raisonnement maximal
- Non précisé Lorsque l’effort de raisonnement maximal utilise l’ajustement par défaut (default)
Tarifs estimés à des fins de comparaison
Prix par configuration
Associez chaque coût aux conditions indiquées. Utilisez un seul tarif pour chaque ensemble de configurations alternatives.
| Configuration | Barème tarifaire | Quantité prévisionnelle | Unité de facturation | Conditions de facturation | Coût |
|---|---|---|---|---|---|
| ConfigurationTarifs de base par jeton | Barème tarifaireTarif de base | Quantité prévisionnelle— | Unité de facturation— | Conditions de facturation— | Coût Entrée · Tokens en entrée · Estimation à des fins de comparaison uniquement — / 1K tokens Sortie · Tokens en sortie · Estimation à des fins de comparaison uniquement — / 1K tokens Entrée · Lecture du cache · Estimation à des fins de comparaison uniquement — / 1K tokens Entrée · Écriture dans le cache · Estimation à des fins de comparaison uniquement — / 1K tokens Entrée · Écriture dans le cache, 1 h · Estimation à des fins de comparaison uniquement — / 1K tokens |
| ConfigurationImage en entrée | Barème tarifaire— | Quantité prévisionnelle— | Unité de facturationpar image | Conditions de facturationCette clé de tarification ne déclare aucune condition supplémentaire. | Coût Entrée · Image en entrée · Estimation à des fins de comparaison uniquement $0.02 par image |
| ConfigurationTarif vidéo | Barème tarifaire— | Quantité prévisionnelle— | Unité de facturationpar seconde de vidéo | Conditions de facturationresolution: 1080p | Coût Sortie · Tarif vidéo · Estimation à des fins de comparaison uniquement $0.5 par seconde de vidéo |
| ConfigurationTarif vidéo | Barème tarifaire— | Quantité prévisionnelle— | Unité de facturationpar seconde de vidéo | Conditions de facturationresolution: 480p | Coût Sortie · Tarif vidéo · Estimation à des fins de comparaison uniquement $0.16 par seconde de vidéo |
| ConfigurationTarif vidéo | Barème tarifaire— | Quantité prévisionnelle— | Unité de facturationpar seconde de vidéo | Conditions de facturationresolution: 720p | Coût Sortie · Tarif vidéo · Estimation à des fins de comparaison uniquement $0.28 par seconde de vidéo |
| ConfigurationCoût de génération estimé | Barème tarifaire— | Quantité prévisionnelleEstimation pour une génération | Unité de facturation— | Conditions de facturation— | Coût Sortie · Coût estimé de génération · Estimation à des fins de comparaison uniquement $0.16 estimation avant génération Cette estimation ne constitue ni des frais supplémentaires ni un tarif fixe pour la génération terminée. |
Ailoot réserve un montant estimé avant une requête. Après le résultat, le montant final est débité selon l’utilisation mesurée. Pour le streaming, le montant final à débiter est calculé à partir du relevé final d’utilisation. Fonctionnement de la réservation et du débit →
Détails du tarif de référence
Les barèmes de référence du modèle ne modifient ni la sélection de méthode, ni les devis, ni les coûts. Les frais actifs utilisent les tarifs de la méthode Ailoot sélectionnée.
Références tarifaires des configurations vidéo
Prix par configuration
Associez chaque coût aux conditions indiquées. Utilisez un seul tarif pour chaque ensemble de configurations alternatives.
| Configuration | Conditions de facturation | Coût |
|---|---|---|
| ConfigurationImage en entrée | Conditions de facturationCette clé de tarification ne déclare aucune condition supplémentaire. | Coût Entrée · Image en entrée $0.02 par image Tarif publié de référence pour la configuration affichée. Les frais définitifs correspondent à la configuration réellement facturée. |
| ConfigurationTarif vidéo | Conditions de facturationresolution: 480p | Coût Sortie · Tarif vidéo $0.16 par seconde de vidéo Tarif publié de référence pour la configuration affichée. Les frais définitifs correspondent à la configuration réellement facturée. |
| ConfigurationTarif vidéo | Conditions de facturationresolution: 720p | Coût Sortie · Tarif vidéo $0.28 par seconde de vidéo Tarif publié de référence pour la configuration affichée. Les frais définitifs correspondent à la configuration réellement facturée. |
| ConfigurationTarif vidéo | Conditions de facturationresolution: 1080p | Coût Sortie · Tarif vidéo $0.5 par seconde de vidéo Tarif publié de référence pour la configuration affichée. Les frais définitifs correspondent à la configuration réellement facturée. |
Exemples de requêtes
Ailoot Ultra · Vidéo
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
from pathlib import Path
Path('request.json').write_text('{"aspect_ratio":"16:9","duration":8,"model":"x-ai/grok-imagine-video-1.5","prompt":"A serene mountain landscape at sunset","resolution":"720p"}', encoding='utf-8')
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path('result.json').read_text())
print(json.dumps(r,ensure_ascii=False,indent=2))
print('Keep the complete JSON and response headers; do not resubmit an unknown creation.')
PY_RESULT
Recevoir et enregistrer les résultats
Ailoot Ultra · Vidéo
URL signées de contenu vous appartenant
GET /v1/videos/{public_id}GET /v1/videos/{public_id}/content
Vérifier l’état de la tâche
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_STATUS_URL'
import json
from pathlib import Path
from urllib.parse import quote
r=json.loads(Path('result.json').read_text())
if not isinstance(r.get('id'),str) or not r['id']:raise SystemExit('Keep the original response and headers for reconciliation; no returned ID')
Path('status-url.txt').write_text('https://api.ailoot.ai/v1/videos/'+quote(r['id'],safe=''))
PY_STATUS_URL
curl --fail-with-body --silent --show-error "$(cat status-url.txt)" \
-H "Authorization: Bearer $AILOOT_API_KEY" -D status-headers.txt -o status.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path('status.json').read_text())
print(json.dumps(r,ensure_ascii=False,indent=2))
print('Keep the complete JSON and response headers; do not resubmit an unknown creation.')
PY_RESULT
Autres lectures de contenu
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
export AILOOT_API_KEY
python3 - <<'PY_ASSETS'
import json,os,subprocess
from pathlib import Path
from urllib.parse import urljoin,urlsplit
r=json.loads(Path('status.json').read_text())
if r.get('status')!='completed':raise SystemExit('Keep the original ID and read its status; never recreate an unknown job')
if not isinstance(r.get('data'),list) or not r['data']:raise SystemExit('Keep the complete original status; no completed outputs supplied')
urls=[]
for i,u in enumerate(r.get('data',[])):
if not isinstance(u,str):raise SystemExit('Keep the original response; unexpected asset shape')
urls.append((str(i),u))
for label,path in urls:
u=urljoin('https://api.ailoot.ai',path);z=urlsplit(u)
if z.scheme!='https' or z.netloc!='api.ailoot.ai' or z.username or z.password:raise SystemExit('Use the actual returned Ailoot owned content URL')
target=Path('owned-'+label+'.bin')
subprocess.run(['curl','--fail-with-body','--silent','--show-error',u,'-H','Authorization: Bearer '+os.environ['AILOOT_API_KEY'],'-D',str(target)+'.headers','-o',str(target)],check=True)
print('All returned owned URLs saved; complete metadata, timing and usage remain in the JSON.')
PY_ASSETS
Conserver tous les résultats terminés
Enregistrez chaque vidéo terminée ou fichier renvoyé ; récupérez chaque URL de ressource effectivement renvoyée.
Conservez toutes les sorties réelles vous appartenant et les métadonnées mesurées renvoyées pour chacune.
Si la réponse d’origine doit être vérifiée
503 result_pending_check + originalid + X-Should-Retry:false ; ne rejouez jamais la demande d’origine
Champs de la réponse
| Champ | Type | Signification |
|---|---|---|
Champindex | Typeinteger | SignificationPosition de cette vidéo dans la liste des sorties, en commençant à zéro. |
Champcontent_url | Typestring | SignificationURL HTTPS signée pour télécharger cette vidéo terminée. |
Champsha256 | Typestring | null | SignificationEmpreinte SHA-256 des octets vidéo d’origine ; null si indisponible. |
Champsize_bytes | Typeinteger | null | SignificationTaille du fichier vidéo d’origine en octets ; null si indisponible. |
Champduration_ms | Typeinteger | null | SignificationDurée vidéo mesurée en millisecondes ; null si indisponible. |
Champwidth | Typeinteger | null | SignificationLargeur de la vidéo en pixels ; null si indisponible. |
Champheight | Typeinteger | null | SignificationHauteur de la vidéo en pixels ; null si indisponible. |
Champvideo_codec | Typestring | null | SignificationIdentifiant du codec vidéo ; null s’il n’est pas enregistré. |
Champhas_audio | Typeboolean | null | SignificationIndique si la vidéo contient une piste audio ; null si cela n’a pas été mesuré. |
Champaudio_codec | Typestring | null | SignificationIdentifiant du codec audio ; null lorsqu’aucun identifiant n’est enregistré. |
Erreurs et étapes suivantes
| Réponse | Condition | Étape suivante |
|---|---|---|
Réponse404 · not_found_error | ConditionL’accès vidéo n’est pas disponible, ou cet identifiant vidéo est introuvable. | Étape suivanteVérifiez l’accès vidéo. Pour une vidéo existante, utilisez son identifiant public d’origine et la même clé API. |
Réponse401 · authentication_error | ConditionLa clé API ne correspond pas au compte authentifié. | Étape suivanteVérifiez votre clé API et l’accès à votre compte avant de soumettre la demande. |
Réponse400 · invalid_request_error | ConditionLa requête n’a pas pu être lue ou l’index de téléchargement n’est pas valide. | Étape suivanteCorrigez le corps de la requête. Pour un téléchargement, choisissez un index de sortie renvoyé par la tâche d’origine. |
Réponse422 · price_unavailable | ConditionLa configuration vidéo sélectionnée ne peut pas être tarifée. | Étape suivanteChoisissez une configuration vidéo prise en charge et renseignez ses options obligatoires avant de soumettre une demande corrigée. |
Réponse422 · invalid_request_error | ConditionUne entrée vidéo ou une tâche de continuation d’origine n’est pas valide. | Étape suivanteUtilisez des entrées HTTPS valides. Pour une continuation, utilisez l’identifiant vidéo public de votre original terminé avec la même clé API. |
Réponse402 · billing_error | ConditionLe solde disponible ou les limites ne permettent pas de réserver les fonds nécessaires. | Étape suivanteVérifiez votre solde disponible et vos limites avant d’envoyer une nouvelle demande. |
Réponse503 · server_error | ConditionLa vérification vidéo, le stockage ou l’accès au service est temporairement indisponible. | Étape suivanteAttendez que le service soit disponible. Si vous possédez déjà un identifiant vidéo, consultez cette tâche d’origine au lieu de créer une autre génération. |
Réponse503 · result_pending_check | ConditionLe résultat vidéo d’origine et sa facturation nécessitent une vérification. | Étape suivanteConservez l’identifiant vidéo renvoyé et consultez cette tâche. N’envoyez pas de demande de génération de remplacement tant que sa vérification est en cours. |
Réponse503 · owned_result_unavailable | ConditionLe téléchargement de la vidéo existante est temporairement indisponible. | Étape suivanteConsultez cette même tâche vidéo ultérieurement et téléchargez sa sortie existante. Une nouvelle génération crée une opération distincte. |
Réponse409 · video_not_ready | ConditionLe contenu vidéo n’a pas été publié. | Étape suivanteVérifiez le statut de la tâche d’origine. Téléchargez après l’apparition de completed ; si elle indique failed, suivez son avis de vérification de la facturation. |
Alias
Alias du modèle
Ailoot Ultra x-ai/grok-imagine-video-1.5
Alias des chemins de méthode
Utilisez les chemins de méthode indiqués ci-dessus.
ID d’appel associés
FAQ · SpaceXAI: Grok Imagine Video 1.5
- Quelles entrées et quels résultats sont disponibles ?
POST /v1/videos·x-ai/grok-imagine-video-1.5:text,image→video- Quels champs la requête utilise-t-elle ?
POST /v1/videos·x-ai/grok-imagine-video-1.5:model,prompt,duration,resolution,aspect_ratio,generate_audio,frame_images,input_references,callback_url,session_id,trace,user- Quelles limites s’appliquent ?
POST /v1/videos·x-ai/grok-imagine-video-1.5:duration.minimum:1;duration.maximum:600;frame_images.max_items:1;frame_images.min_items:1