MiniMax: Hailuo 02
Hailuo 02 crée une vidéo à partir de texte ou d’une image initiale et prend en charge un processus documenté utilisant des images initiale et finale. Des commandes de caméra, l’optimisation du prompt et des choix de durée et de résolution propres au mode permettent de façonner le plan souhaité.
À 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.
Hailuo 02 est le modèle vidéo de MiniMax pour les scènes décrites par texte, l’animation d’images et un processus utilisant des images initiale et finale. Une description écrite présente le sujet, l’action et la caméra, tandis que les images fournies peuvent définir le point de départ visuel ou la destination de la transition. Choisissez le mode de génération selon les éléments dont vous disposez déjà et la partie du plan que vous souhaitez contrôler.
Pour une génération vidéo à partir de texte, décrivez une action cohérente avec un décor et un point de vue lisibles. Une scène peut montrer un petit voilier passant devant une jetée tandis que la caméra le suit depuis la rive. Précisez ce qui bouge, les détails qui doivent rester visibles et la façon dont le plan se termine. Centrez la description sur des événements observables plutôt que sur une liste de qualités visuelles sans rapport.
Pour une génération vidéo à partir d’une image, préparez une image initiale définissant déjà le sujet et le cadrage souhaités. L’éditeur accepte des images JPG, JPEG, PNG et WebP de moins de 20 MB, dont le côté court dépasse 300 pixels et dont le rapport d’aspect est compris entre 2:5 et 5:2. Utilisez une image où les contours et les caractéristiques importants sont visibles, puis décrivez le mouvement qui doit en découler.
Hailuo 02 dispose également d’un mode documenté avec des images initiale et finale. Préparez les deux images comme les états d’ouverture et de fin souhaités d’une même séquence, et décrivez le mouvement de la scène entre elles. La première image détermine le cadrage ; l’éditeur indique qu’une image finale de dimensions différentes est recadrée pour s’y conformer. Harmonisez la composition des images à l’avance lorsqu’un sujet doit rester visible pendant toute la transition.
Le prompt peut contenir jusqu’à 2 000 caractères. Hailuo 02 prend en charge des commandes de caméra entre crochets, notamment push, pull, truck, pan, pedestal, tilt, zoom, tracking et le plan fixe. Des commandes placées ensemble dans les mêmes crochets demandent un mouvement simultané ; des commandes placées à différents endroits de la description demandent une séquence. L’éditeur recommande de ne pas combiner plus de trois mouvements : choisissez donc le mouvement de caméra qui rend le sujet plus lisible.
La durée et la résolution sont liées au mode. La génération vidéo à partir de texte documente six ou dix secondes en 768P et six secondes en 1080P. La génération à partir d’une image documente également le 512P pour six ou dix secondes. Le processus avec images initiale et finale documente le 768P pour six ou dix secondes et le 1080P pour six secondes. Sélectionnez une combinaison prise en charge pour le plan, plutôt que de transférer les choix de résolution d’un mode à tous les autres.
L’optimisation automatique du prompt est un paramètre documenté et activé par défaut dans le processus de l’éditeur. Conservez son réglage lorsque vous comparez des versions, car une description réécrite modifie ce que reçoit le modèle. Gardez le texte exact, les images de référence et les paramètres de sortie sélectionnés avec le clip généré pour qu’une révision puisse cibler l’action ou le cadrage à améliorer.
Examinez toute la séquence terminée : composition d’ouverture, continuité du sujet, rythme de l’action et image finale. Pour une transition, vérifiez les deux extrémités et le mouvement qui les relie. Enregistrez la vidéo réelle pour le montage avec le prompt et les références ; utilisez la révision suivante pour corriger un problème visuel concret, comme un détail masqué, un mouvement de caméra brusque ou une fin qui arrive trop tôt.
Ailoot Ultra · Vidéo POST /v1/videos minimaxi-hailuo-02
minimaxi-hailuo-02Premiers pas
Hailuo 02 crée une vidéo à partir de texte ou d’une image initiale et prend en charge un processus documenté utilisant des images initiale et finale. Des commandes de caméra, l’optimisation du prompt et des choix de durée et de résolution propres au mode permettent de façonner le plan souhaité.
- 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
| Champ | Type | Exigence | Valeurs et limites | Par défaut |
|---|---|---|---|---|
Champmodel | Typestring | ExigenceObligatoire | Valeurs et limites minimaxi-hailuo-02 Conditions: Utilisez le sélecteur exact de modèle Ailoot. | Par défaut— |
Champprompt | Typestring | ExigenceObligatoire | Valeurs et limites Conditions: Décrivez la scène et le mouvement. | Par défaut— |
Champduration | Typeinteger | ExigenceFacultatif | Valeurs et limites 6, 10 Conditions: Envoyez l’une des valeurs de durée indiquées ; aucune valeur par défaut n’est affirmée. | Par défaut— |
Champend_image | Typestring | ExigenceFacultatif | Valeurs et limites Conditions: Une image de fin s’applique uniquement dans un mode d’entrée image pris en charge. | Par défaut— |
Champimage | Typestring or array<string> | ExigenceFacultatif | Valeurs et limites Conditions: Utilisez une URL réelle d’image accessible publiquement ou une chaîne d’image en base64 ; aucun nombre maximal d’images n’est affirmé ici. | Par défaut— |
Champresolution | Typestring | ExigenceFacultatif | Valeurs et limites 512P, 768P, 1080P Conditions: Envoyez l’une des valeurs de résolution indiquées ; aucune valeur par défaut n’est affirmée. | Par défaut— |
Paramètres et cycle de vie de la méthode
| Paramètre | Contrat |
|---|---|
Paramètrecontent_type | Contratapplication/json |
Paramètrerequired | Contratmodel, prompt |
Paramètreoptional | Contratduration, end_image, image, resolution |
Paramètrematerial_types | Contrattext, image |
Paramètreconditions | ContratUtilisez le sélecteur exact de modèle Ailoot., Décrivez la scène et le mouvement., Envoyez l’une des valeurs de durée indiquées ; aucune valeur par défaut n’est affirmée., Une image de fin s’applique uniquement dans un mode d’entrée image pris en charge., Utilisez une URL réelle d’image accessible publiquement ou une chaîne d’image en base64 ; aucun nombre maximal d’images n’est affirmé ici., Envoyez l’une des valeurs de résolution indiquées ; aucune valeur par défaut n’est affirmée. |
Alias de méthode : /v1/videos/generations
Cycle de vie : submit_once_poll_original
GET /v1/videos/{request_id}
GET /v1/videos/generations/{request_id}
GET /v1/videos/{request_id}/content
GET /v1/media/assets
GET /v1/media/assets/{asset_id}
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 | Coût |
|---|---|---|---|
| ConfigurationTarifs de base par jeton | Barème tarifaireTarif de base | Quantité prévisionnelle— | 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 |
| ConfigurationCoût de génération estimé | Barème tarifaire— | Quantité prévisionnelleEstimation pour une génération | Coût Sortie · Coût estimé de génération · Estimation à des fins de comparaison uniquement $0.2 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 →
Exemples de requêtes
Ailoot Ultra · Vidéo
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
cat > request.json <<'JSON'
{
"model": "minimaxi-hailuo-02",
"prompt": "A cat is walking on grass."
}
JSON
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
# Create once; retain id, polling_url, original task identifiers and every header.
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
export AILOOT_API_KEY
python3 - <<'PY_STATUS'
import json,os,subprocess
from pathlib import Path
from urllib.parse import urljoin,urlsplit
r=json.loads(Path("result.json").read_text())
u=urljoin("https://api.ailoot.ai",r["polling_url"])
p=urlsplit(u)
if p.scheme!="https" or p.netloc!="api.ailoot.ai" or p.username or p.password:
raise SystemExit("Unexpected returned polling URL; preserve the response")
subprocess.run(["curl","--fail-with-body","--silent","--show-error",u,"-H","Authorization: Bearer "+os.environ["AILOOT_API_KEY"],"-D","status-headers.txt","-o","status.json"],check=True)
# Read this same original polling_url again while pending.
# Preserve unknown/result_pending_check; do not repeat creation.
PY_STATUS
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())
roles={}
def visit(v,path=""):
if isinstance(v,dict):
for k,x in v.items(): visit(x,path+"/"+k)
elif isinstance(v,list):
for i,x in enumerate(v): visit(x,path+"/"+str(i))
elif isinstance(v,str):
u=urljoin("https://api.ailoot.ai",v); p=urlsplit(u)
if p.scheme=="https" and p.netloc=="api.ailoot.ai" and not p.username and not p.password and p.path.startswith("/v1/media/assets/") and p.path.endswith("/content"):
roles.setdefault(u,[]).append(path)
visit(r)
if not roles: raise SystemExit("No completed owned assets; retain the original status")
manifest=[]
for i,(u,paths) in enumerate(roles.items()):
target=Path(f"asset-{i}.bin")
subprocess.run(["curl","--fail-with-body","--silent","--show-error",u,"-H","Authorization: Bearer "+os.environ["AILOOT_API_KEY"],"-o",str(target)],check=True)
raw=target.read_bytes()
if not raw: raise SystemExit("Empty asset; retain original status and metadata")
ext="glb" if raw[:4]==b"glTF" else "png" if raw[:8]==b"\x89PNG\r\n\x1a\n" else "jpg" if raw[:3]==b"\xff\xd8\xff" else "webp" if raw[:4]==b"RIFF" and raw[8:12]==b"WEBP" else "mp4" if raw[4:8]==b"ftyp" else "bin"
name=f"asset-{i}.{ext}"
if target.name!=name: target.rename(name)
manifest.append({"file":name,"response_paths":paths,"bytes":len(raw)})
Path("asset-manifest.json").write_text(json.dumps(manifest,indent=2))
print("Saved",len(manifest),"unique owned assets; every response role retained")
PY_ASSETS
Recevoir et enregistrer les résultats
Ailoot Ultra · Vidéo
GET /v1/videos/{request_id}GET /v1/videos/generations/{request_id}GET /v1/videos/{request_id}/contentGET /v1/media/assetsGET /v1/media/assets/{asset_id}
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 la réponse et les en-têtes complets, les identifiants d’origine, chaque sortie réelle et tous les champs d’utilisation et de comptabilisation. Enregistrez chaque ressource unique vous appartenant et conservez chaque rôle qui y fait référence.
Si la réponse d’origine doit être vérifiée
Conservez l’id public renvoyé pour la tâche ou l’opération ainsi que tous les en-têtes. Consultez uniquement la tâche d’origine ; unknown ou result_pending_check n’autorise pas une nouvelle création.
Champs de la réponse
| Champ | Type |
|---|---|
Champid | Typestring |
Champpolling_url | Typestring |
Champprovider_task_id | Typestring |
Champtask_id | Typestring |
Champstatus | Typestring |
Champvideo_url | Typestring |
Alias
Alias du modèle
Ailoot Ultra minimaxi-hailuo-02
Alias des chemins de méthode
/v1/videos/generations
ID d’appel associés
FAQ · MiniMax: Hailuo 02
- Quelles entrées et quels résultats sont disponibles ?
POST /v1/videos·minimaxi-hailuo-02:text,image→video- Quels champs la requête utilise-t-elle ?
POST /v1/videos·minimaxi-hailuo-02:model,prompt,duration,end_image,image,resolution