SpaceXAI: Grok Imagine Video
Grok Imagine Video génère de courts clips à partir de texte, d’une image de départ ou d’un maximum de sept références visuelles. Son édition classique modifie aussi des clips MP4 existants et ajoute 2 à 10 secondes de prolongement. La génération atteint la 720p avec du son ; la modification et le prolongement conservent le cadrage source dans leurs limites respectives.
À 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 est l’édition classique de la famille vidéo Grok Imagine. La documentation actuelle du producteur couvre la génération d’un nouveau clip à partir d’un prompt, l’animation d’une image de départ, l’utilisation de références visuelles et la modification ou le prolongement d’une vidéo existante. Ces fonctions produisent des livrables différents : une nouvelle scène, une version modifiée du film fourni ou une vidéo contenant le film original suivi de nouveaux éléments. Choisissez la fonction en fonction du matériau déjà disponible et de la partie du plan à modifier.
Pour un nouveau plan généré à partir de texte, décrivez le sujet, l’environnement, l’action visible, la caméra et le son. La génération standard prend en charge des clips de 1 à 15 secondes, avec des sorties 480p ou 720p et du son généré. Des rapports carrés, paysage, portrait et plus larges sont documentés, notamment 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 21:9 et 5:2. Un brief peut demander une lanterne en papier qui bouge doucement au-dessus d’une cour calme pendant un travelling latéral. La revue utile vérifie que le mouvement, le cadrage et le son ambiant servent ce plan unique.
Pour la génération de vidéo à partir d’une image, l’image fixe fournie constitue la première image du clip. Préparez-la avec le recadrage, le sujet et les détails visibles souhaités, puis décrivez l’action qui suit. La sortie respecte le rapport largeur/hauteur de l’image. Une image fixe de départ fournit une composition d’ouverture exacte, tandis que la génération à partir de références utilise les images pour guider les personnes, produits ou décors d’une scène nouvellement composée. Distinguer ces deux rôles permet d’éviter une ouverture involontaire lorsque le but est de placer un objet connu dans un autre environnement.
Le modèle classique accepte jusqu’à sept images de référence par requête guidée par des références. Ce mode est limité à dix secondes et à la 720p. Donnez un rôle clair à chaque référence et identifiez-la par sa position dans la liste, en commençant par <IMAGE_0>. Pour une courte scène de produit, une référence peut identifier l’objet et une autre le lieu souhaité. Concentrez le brief sur l’emplacement de l’objet et l’action principale du plan. Le mode de références classique utilise sa propre configuration ; la version 1.5 complète fournit les contrôles supplémentaires de voix sélectionnées et d’images imposées.
La modification vidéo utilise un clip existant et un prompt décrivant le changement. Le producteur accepte les sources MP4 avec des codecs pris en charge tels que H.264, H.265 ou AV1, jusqu’à 8,7 secondes. Le résultat modifié conserve la durée et le rapport largeur/hauteur de la source et suit sa résolution dans la limite de 720p. Les contrôles personnalisés de durée, de rapport largeur/hauteur et de résolution ne s’appliquent pas à cette fonction. Préparez une source dont la composition et les temps conviennent déjà à l’usage final, afin que le prompt puisse se concentrer sur la modification visuelle souhaitée.
Un brief de modification peut changer la couleur d’une écharpe tout en conservant le visage de la personne, son mouvement, l’arrière-plan et la caméra. Énoncez explicitement ces éléments à préserver, en plus du changement. Le producteur décrit une conservation aussi proche que possible du reste de la source : c’est un objectif utile pour la revue, et non une garantie que chaque pixel reste identique. Comparez le résultat sur toute la durée du clip, surtout lorsque l’objet bouge, croise un autre objet ou se trouve partiellement masqué. Le livrable final est le clip modifié, et pas simplement une image fixe montrant la nouvelle couleur.
Le prolongement vidéo reprend à partir de la dernière image d’un MP4 existant. La durée source documentée va de 2 à 15 secondes ; la partie ajoutée dure de 2 à 10 secondes, avec six secondes par défaut. La durée du prolongement concerne uniquement la nouvelle partie. Une source de dix secondes suivie de cinq secondes de prolongement produit une vidéo de quinze secondes contenant les deux parties. Le résultat conserve le rapport largeur/hauteur et la résolution de la source dans la limite de 720p. Préparez le dernier instant de la source et décrivez la suite, par exemple le sujet qui se tourne vers un objet en approche pendant que la caméra poursuit son mouvement actuel.
Examinez le prolongement autour de la limite entre la source et le nouveau contenu. Vérifiez l’identité du sujet, la direction du mouvement, le rythme de la caméra, la lumière et le son pour que la suite s’accorde avec l’action précédente. Si un clip se termine sur un moment visuellement peu commode, traitez explicitement ce raccord dans la préparation du plan suivant. L’assemblage de scènes plus longues relève du montage : les limites de durée de la génération, des références, de la modification et du prolongement sont distinctes, et le résultat total d’un prolongement peut dépasser la durée d’un nouveau clip de génération standard.
Le processus vidéo du producteur est asynchrone. Un identifiant de requête permet de suivre une tâche jusqu’à ce qu’un résultat terminé fournisse l’adresse de la vidéo et sa durée ; les adresses de sortie sont temporaires. Conservez le résultat lisible et ses matériaux sources lorsque vous préparez un montage de production. Grok Imagine Video 1.5 complet propose une génération native en 1080p et des contrôles plus riches de références visuelles, de voix et d’images imposées, tandis que Lite répond aux tâches simples à partir d’un prompt ou d’une image de départ. L’édition classique reste utile lorsque le matériau de départ est déjà une vidéo qui nécessite une modification dirigée ou un prolongement.
Ailoot Ultra · Vidéo POST /v1/videos x-ai/grok-imagine-video
x-ai/grok-imagine-videoPremiers pas
Grok Imagine Video génère de courts clips à partir de texte, d’une image de départ ou d’un maximum de sept références visuelles. Son édition classique modifie aussi des clips MP4 existants et ajoute 2 à 10 secondes de prolongement. La génération atteint la 720p avec du son ; la modification et le prolongement conservent le cadrage source dans leurs limites respectives.
- 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
- Entrée
text,image- 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 | 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 | 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 représentant les images de la séquence. Chaque objet comporte type=image_url, image_url contenant url et frame_type. Utilisez une URL d’image HTTPS 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 représentant une image de la séquence ; 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— |
Champsize | Typestring | ExigenceFacultatif | Valeurs et limites 854x480, 1280x720, 480x854, 720x1280, 480x480, 720x720, 640x480, 960x720, 480x640, 720x960, 720x480, 1080x720, 480x720, 720x1080 Motif: ^[1-9][0-9]*x[1-9][0-9]*$ | 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 ; ajoutez un rapport largeur/hauteur ou utilisez une taille répertoriée.
model: Type : string · x-ai/grok-imagine-video
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 de début de séquence. · Obligatoire : model, prompt, duration, frame_images
frame_images est un tableau. Chaque objet représentant une image de la séquence comporte 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 d’image HTTPS publique pour chaque image de la séquence. Dans une même requête, utilisez soit les images de la séquence, soit les images de référence ; ne combinez pas les deux. Choisissez une résolution prise en charge ; ajoutez un rapport largeur/hauteur ou utilisez une taille répertoriée.
Clés exactes : type, image_url, frame_type
model: Type : string · x-ai/grok-imagine-video
prompt: Type : string · Nombre maximal d’octets UTF-8: 10 000 · Caractères autres que des espaces requis: Oui
Reference to video · Une consigne écrite et des références image prises en charge. · Obligatoire : model, prompt, duration, input_references
input_references est un tableau d’objets. Définissez type sur image_url, puis utilisez le champ correspondant contenant url. Utilisez des URL HTTPS publiques. Omettez frame_images pour sélectionner le mode avec références. Ne combinez pas les images de référence avec les images de la séquence. Choisissez une résolution prise en charge ; ajoutez un rapport largeur/hauteur ou utilisez une taille répertoriée.
model: Type : string · x-ai/grok-imagine-video
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, size, 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 des jetons | 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 d’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 d’entrée · Estimation à des fins de comparaison uniquement $0.004 par image |
| 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.1 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.14 par seconde de vidéo |
| ConfigurationCoût estimé de la génération | 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.1 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 d’entrée | Conditions de facturationCette clé de tarification ne déclare aucune condition supplémentaire. | Coût Entrée · Image d’entrée $0.004 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.1 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.14 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","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 de contenu signées dont vous êtes propriétaire
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 chaque résultat réel dont vous êtes propriétaire ainsi que les métadonnées mesurées renvoyées avec celui-ci.
Si la réponse d’origine doit être vérifiée
503 result_pending_check + originalid + X-Should-Retry:false ; ne rejouez jamais la requête d’origine
Champs de la réponse
| Champ | Type | Signification |
|---|---|---|
Champindex | Typeinteger | SignificationPosition de cette vidéo dans la liste des résultats, avec une numérotation commençant à zéro. |
Champcontent_url | Typestring | SignificationURL de téléchargement HTTPS signée pour cette vidéo terminée. |
Champsha256 | Typestring | null | SignificationEmpreinte SHA-256 des octets vidéo d’origine ; null si elle est indisponible. |
Champsize_bytes | Typeinteger | null | SignificationTaille du fichier vidéo d’origine en octets ; null si elle est indisponible. |
Champduration_ms | Typeinteger | null | SignificationDurée mesurée de la vidéo en millisecondes ; null si elle est indisponible. |
Champwidth | Typeinteger | null | SignificationLargeur de la vidéo en pixels ; null si elle est indisponible. |
Champheight | Typeinteger | null | SignificationHauteur de la vidéo en pixels ; null si elle est indisponible. |
Champvideo_codec | Typestring | null | SignificationIdentifiant du codec vidéo ; null s’il n’a pas été 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’a été enregistré. |
Erreurs et étapes suivantes
| Réponse | Condition | Étape suivante |
|---|---|---|
Réponse404 · not_found_error | ConditionL’accès à la vidéo est indisponible, ou cet ID vidéo est introuvable. | Étape suivanteVérifiez l’accès à la vidéo. Pour une vidéo existante, utilisez son ID 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 au compte avant de soumettre la requête. |
Réponse400 · invalid_request_error | ConditionLa requête n’a pas pu être lue, ou l’index de téléchargement est invalide. | É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 requête corrigée. |
Réponse422 · invalid_request_error | ConditionUne entrée vidéo ou la tâche de continuation d’origine est invalide. | Étape suivanteUtilisez des entrées HTTPS valides. Pour une continuation, utilisez l’ID vidéo public de votre résultat d’origine terminé avec la même clé API. |
Réponse402 · billing_error | ConditionLe solde disponible ou les limites ne permettent pas de réserver le montant nécessaire. | Étape suivanteVérifiez votre solde disponible et vos limites avant d’envoyer une nouvelle requête. |
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 disposez déjà d’un ID vidéo, vérifiez 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 doivent être vérifiés. | Étape suivanteConservez l’ID vidéo renvoyé et vérifiez cette tâche. N’envoyez pas de requête de génération de remplacement pendant sa vérification. |
Réponse503 · owned_result_unavailable | ConditionLe téléchargement de la vidéo existante est temporairement indisponible. | Étape suivanteVérifiez la même tâche vidéo plus tard et téléchargez son résultat existant. 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 l’état de la tâche d’origine. Téléchargez lorsqu’il indique completed ; s’il indique failed, suivez son avis de vérification de facturation. |
Alias
Alias du modèle
Ailoot Ultra x-ai/grok-imagine-video
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
- Quelles entrées et quels résultats sont disponibles ?
POST /v1/videos·x-ai/grok-imagine-video:text,image→video- Quels champs la requête utilise-t-elle ?
POST /v1/videos·x-ai/grok-imagine-video:model,prompt,duration,resolution,aspect_ratio,generate_audio,frame_images,input_references,size,callback_url,session_id,trace,user- Quelles limites s’appliquent ?
POST /v1/videos·x-ai/grok-imagine-video:duration.minimum:1;duration.maximum:600;frame_images.max_items:1;frame_images.min_items:1