MiniMax: H3 Max
MiniMax H3 Max est une variante rapide de H3 affinée par post-entraînement pour de courtes vidéos avec du son synchronisé. Le processus documenté de MiniMax prend en charge le texte, les images de début et de fin et les références multimodales, avec une sortie 480P ou 768P, une durée de 5 à 15 secondes et ses propres choix d’extension du prompt.
À 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.
Une variante rapide de H3 affinée par post-entraînement
MiniMax H3 Max est une variante du modèle de base MiniMax H3 affinée par post-entraînement, optimisée pour accélérer la génération, respecter les prompts et améliorer la qualité audiovisuelle. La variante a été développée par post-entraînement chez fal Research. Elle conserve un contexte multimodal unifié ainsi qu’une image et un son synchronisés nativement. La vitesse est une priorité de conception, plutôt qu’un délai d’achèvement fixe pour tous les prompts, durées ou applications.
Distinguez Max du système H3 original et de la variante Max Turbo séparée. L’interface actuelle de MiniMax propose Max en 480P ou 768P, avec une résolution de 768P par défaut, à 24 images par seconde et pour une durée de 5 à 15 secondes exprimée en nombre entier de secondes. Son processus Max documenté ne propose ni le réglage 2K du système H3 original ni une sortie de quatre secondes.
Du prompt au plan
Chaque génération comprend un brief textuel non vide, jusqu’à 7 000 caractères par élément textuel. Décrivez le sujet, la composition initiale, l’action et le résultat, puis énoncez clairement les consignes de caméra et de son. Pour révéler brièvement un objet, identifiez ce que le spectateur doit voir en premier, la manière dont l’objet apparaît dans le champ et la façon dont le plan doit se terminer.
Un brief utile de cinq secondes peut décrire une tasse en céramique sur une table en bois, une main qui pose une soucoupe à côté, une légère avancée de caméra et le son du contact entre la céramique et le bois. Gardez une action suffisamment réduite pour tenir dans la durée choisie et vérifiez que le mouvement et le son renvoyés suivent le même événement.
Création guidée par des images de début et de fin
Le producteur documente une image d’ouverture, une image de fin ou les deux. Une première image définit le début du clip ; une dernière image définit l’état visuel final. Expliquez le mouvement qui les relie, notamment les changements de pose, de position d’objet, de caméra ou d’éclairage. Pour une transition entre deux images, évitez un brief qui introduit une scène incompatible entre ses extrémités.
La sortie guidée par ces images déduit son rapport largeur/hauteur de l’image d’entrée. Pour un travail à partir de texte uniquement, choisissez un rapport précis parmi 21:9, 16:9, 4:3, 1:1, 3:4 ou 9:16. Le travail guidé par des références peut utiliser un rapport adaptatif ou l’un des choix explicites documentés. Composez la référence ou la scène écrite pour le format cible au lieu de supposer que la même disposition fonctionne aussi bien en portrait qu’en paysage.
Références multimodales
Le schéma de génération Max actuel de MiniMax documente aussi les images, vidéos et sons de référence. Précisez ce que chacun doit influencer : identité d’un personnage, environnement, motif de mouvement, trajectoire de caméra, timbre de voix ou caractéristique sonore. Les rôles de première/dernière image et les rôles de médias de référence s’excluent mutuellement dans cette interface.
Pour un plan de personnage, identifiez séparément la référence d’apparence et celle de mouvement, puis fournissez l’action cible et la réplique. Une référence vocale qui définit l’interprétation diffère de la copie de son signal audio complet. Précisez dans le brief les caractéristiques à préserver et les changements à apporter, puis comparez le clip audiovisuel réel à chaque rôle de référence.
Extension du prompt
Le réglage d’extension propre à Max propose les choix disabled, balanced et quality, avec balanced par défaut. Choisissez disabled lorsque le brief fourni doit être transmis sans extension ; utilisez un mode d’extension documenté lorsqu’une interprétation supplémentaire est souhaitée. Conservez le brief original afin de distinguer un changement introduit pendant l’extension du contenu demandé.
Décrivez le son comme une partie de la scène. Identifiez les sons physiques, l’ambiance et les mots prononcés, et distinguez-les d’une musique de fond destinée uniquement au public. Fournissez la réplique exacte et la personne qui doit la prononcer plutôt que de demander un dialogue indéfini. Écoutez le résultat autant que vous le regardez ; une image convaincante ne prouve pas que les mots prononcés ou leur synchronisation sont corrects.
Préparation des entrées et limites
Le schéma actuel du producteur accepte des images JPG, JPEG, PNG, WebP, HEIC ou HEIF, jusqu’à 30 Mo chacune, avec des côtés de 256 à 5 760 pixels et des rapports de 0,4 à 2,5. Les rôles d’ouverture et de fin autorisent chacun une image ; le mode de références accepte jusqu’à neuf images. Préservez une vue claire du sujet et des détails qui doivent rester identifiables.
Les vidéos de référence autorisent jusqu’à trois clips MP4 ou MOV, chacun de 2 à 15 secondes et ensemble de 15 secondes au maximum, avec une limite de 50 Mo par fichier. Le schéma documente la vidéo H.264 ou H.265, le son AAC ou MP3, des côtés de 256 à 5 760 pixels, des rapports de 0,4 à 2,5 et une fréquence de 23,976 à 60 images par seconde. Le son de référence autorise jusqu’à trois clips WAV ou MP3, chacun de 15 Mo au maximum et de 2 à 15 secondes, avec un total de 15 secondes au maximum. Le corps de la requête a une limite distincte de 64 Mo.
N’utilisez que les références qui contribuent au plan et identifiez chaque contribution dans le texte. Un court clip de mouvement pertinent est plus facile à utiliser comme consigne qu’une longue collection d’événements sans rapport. Gardez la durée souhaitée et la résolution de sortie explicites afin de comparer le résultat au même brief.
Le résultat terminé
Le processus asynchrone du producteur renvoie un identifiant de tâche avant que la vidéo terminée soit disponible. Son interface de consultation récupère les tâches des sept jours précédents. Sauvegardez le clip réellement renvoyé et sa spécification pour le montage ou une évaluation ultérieure ; un identifiant de tâche n’est pas le livrable audiovisuel. Les adresses de téléchargement sont limitées dans le temps : conservez donc le fichier lui-même lorsque vous retenez un résultat choisi.
Vérifiez la continuité du sujet, le mouvement, le texte visible, le dialogue et la synchronisation du son aux dimensions d’utilisation du clip. Utilisez des retours concrets pour un autre brief créatif : le geste qui a changé, la réplique omise ou le cadrage à ajuster. Le résultat utile est un court plan audiovisuel relié au contenu fourni et à ses relations explicites entre références.
Ailoot Ultra · Vidéo POST /v1/videos minimax/hailuo-3-max
minimax/hailuo-3-maxPour commencer
MiniMax H3 Max est une variante rapide de H3 affinée par post-entraînement pour de courtes vidéos avec du son synchronisé. Le processus documenté de MiniMax prend en charge le texte, les images de début et de fin et les références multimodales, avec une sortie 480P ou 768P, une durée de 5 à 15 secondes et ses propres choix d’extension du prompt.
- 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 minimax/hailuo-3-max | Par défaut— |
Champprompt | Typestring | ExigenceObligatoire | Valeurs et limites | Par défaut— |
Champduration | Typeinteger | ExigenceObligatoire | Valeurs et limites 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 Minimum: 1 Maximum: 600 | Par défaut— |
Champresolution | Typestring | ExigenceFacultatif | Valeurs et limites 768p, 480p | Par défaut— |
Champaspect_ratio | Typestring | ExigenceFacultatif | Valeurs et limites 21:9, 16:9, 4:3, 1:1, 3:4, 9:16 | 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: 2 Contenu en entrée: Tableau d’objets d’image clé. Chaque objet comprend type=image_url, image_url contenant url, et frame_type. Utilisez une URL d’image HTTPS et définissez frame_type à first_frame ou last_frame. Chaque rôle d’image clé apparaît au plus une fois. Clés exactes: type, image_url, frame_type Conditions: Ces clés décrivent chaque objet d’image clé; image_url contient seulement url. Omettez frame_images pour une demande contenant seulement 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 invite é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, au besoin, un rapport de forme.
model: Type : string · minimax/hailuo-3-max
prompt: Type : string · Nombre maximal d’octets UTF-8: 10 000 · Caractères autres que des espaces requis: Oui
Image vers vidéo · Une invite écrite et une image clé de début. · Obligatoire : model, prompt, duration, frame_images
frame_images est un tableau. Chaque objet d’image clé comprend type, image_url et frame_type; image_url contient url. Définissez type à image_url. Utilisez first_frame avec last_frame facultatif. Chaque rôle d’image clé apparaît au plus une fois. Fournissez une URL d’image HTTPS publique pour chaque image clé. Choisissez une résolution prise en charge et, au besoin, un rapport de forme.
Clés exactes : type, image_url, frame_type
model: Type : string · minimax/hailuo-3-max
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 | Composant du coût | Unité de facturation | Conditions de facturation | Coût |
|---|---|---|---|---|---|---|
| ConfigurationTarifs de base des jetons | Barème tarifaireTarif de base | Quantité prévisionnelle— | Composant du coût— | Unité de facturation— | Conditions de facturation— | Coût Entrée · Jetons en entrée · Estimation à des fins de comparaison uniquement — / 1K jetons Sortie · Jetons en sortie · Estimation à des fins de comparaison uniquement — / 1K jetons Entrée · Lecture du cache · Estimation à des fins de comparaison uniquement — / 1K jetons Entrée · Écriture dans le cache · Estimation à des fins de comparaison uniquement — / 1K jetons Entrée · Écriture dans le cache, 1 h · Estimation à des fins de comparaison uniquement — / 1K jetons |
| ConfigurationSortie vidéo · tarif de référence | Barème tarifaire— | Quantité prévisionnelle— | Composant du coûtreference_output_rate | Unité de facturationpar seconde en sortie | Conditions de facturation— | Coût Sortie · Tarif de référence par seconde de vidéo en sortie · Estimation à des fins de comparaison uniquement $0.16 par seconde en sortie |
| ConfigurationTarif vidéo | Barème tarifaire— | Quantité prévisionnelle— | Composant du coût— | 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— | Composant du coût— | Unité de facturationpar seconde de vidéo | Conditions de facturationresolution: 768p | Coût Sortie · Tarif vidéo · Estimation à des fins de comparaison uniquement $0.16 par seconde de vidéo |
| ConfigurationCoût de génération estimé | Barème tarifaire— | Quantité prévisionnelleestimation pour une génération | Composant du coût— | Unité de facturation— | Conditions de facturation— | Coût Sortie · Coût estimé de génération · Estimation à des fins de comparaison uniquement $0.5 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 |
|---|---|---|
| ConfigurationTarif vidéo | Conditions de facturationCette clé de tarification ne déclare aucune condition supplémentaire. | 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: 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: 768p | 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. |
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":"minimax/hailuo-3-max","prompt":"A serene mountain landscape at sunset","resolution":"480p"}', 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 appartenant à votre compte
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 sortie réelle appartenant à votre compte et les métadonnées mesurées retournées avec celle-ci.
Si la réponse d’origine doit être vérifiée
503 result_pending_check + identifiant d’origine + 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, à partir de zéro. |
Champcontent_url | Typestring | SignificationURL HTTPS de téléchargement signée pour cette vidéo terminée. |
Champsha256 | Typestring | null | SignificationEmpreinte SHA-256 des octets vidéo d’origine; null si elle n’est pas disponible. |
Champsize_bytes | Typeinteger | null | SignificationTaille du fichier vidéo d’origine en octets; null si elle n’est pas disponible. |
Champduration_ms | Typeinteger | null | SignificationDurée vidéo mesurée en millisecondes; null si elle n’est pas disponible. |
Champwidth | Typeinteger | null | SignificationLargeur de la vidéo en pixels; null si elle n’est pas disponible. |
Champheight | Typeinteger | null | SignificationHauteur de la vidéo en pixels; null si elle n’est pas disponible. |
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 ce n’est pas 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 au compte avant de soumettre la demande. |
Réponse400 · invalid_request_error | ConditionLa demande n’a pas pu être lue ou l’indice de téléchargement est invalide. | Étape suivanteCorrigez le corps de la demande. Pour un téléchargement, choisissez un indice de sortie retourné 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 remplissez les options requises avant de soumettre une demande 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’identifiant vidéo public de votre vidéo d’origine terminée avec la même clé API. |
Réponse402 · billing_error | ConditionLe solde disponible ou les limites ne permettent pas de réserver les fonds. | É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 avez déjà un identifiant vidéo, vérifiez cette tâche d’origine au lieu de lancer 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’identifiant vidéo retourné et vérifiez cette tâche. N’envoyez pas de demande 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 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 l’état de la tâche d’origine. Téléchargez lorsqu’elle indique completed; si elle indique failed, suivez son avis de vérification de facturation. |
Alias
Alias du modèle
Ailoot Ultra minimax/hailuo-3-max
Alias des chemins de méthode
Utilisez les chemins de méthode indiqués ci-dessus.
ID d’appel associés
FAQ · MiniMax: H3 Max
- Quelles entrées et quels résultats sont disponibles ?
POST /v1/videos·minimax/hailuo-3-max:text,image→video- Quels champs la requête utilise-t-elle ?
POST /v1/videos·minimax/hailuo-3-max: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·minimax/hailuo-3-max:duration.minimum:1;duration.maximum:600;frame_images.max_items:2;frame_images.min_items:1