HiAPI
Blog

Guide d'utilisation

FLUX.3 Video court-métrage : brouillon, rendu et prolongation via API

Un court-métrage vertical 9:16 avec audio natif : tester l'idée avec un brouillon à $0.45, rendre en 720p, puis prolonger jusqu'à 10 secondes, le tout sur le même id de modèle, avec de vraies sorties.

Nov 4, 2026
FLUX.3 Video court-métrage : brouillon, rendu et prolongation via API

FLUX.3 Video (identifié flux-3-video sur hiapi) couvre avec un seul id de modèle les trois briques d'un workflow de vidéo courte : une sortie verticale 9:16, une piste audio générée en synchronisation avec l'image, et la prolongation d'une vidéo à partir de la dernière image d'un clip existant. Ce guide utilise ces trois fonctionnalités sur une petite tâche : un court-métrage vertical de 10 secondes pour un restaurant de ramen ouvert tard le soir. On valide d'abord le concept avec un brouillon bon marché, on rend ensuite la version finale en 720p, puis on prolonge le plan au-delà de 5 secondes. Chaque clip ci-dessous est une sortie d'API réelle, non modifiée, et chaque prix provient de la grille tarifaire en direct de hiapi.

Pour la référence complète des paramètres et un premier pas à pas de requête, consultez le guide de l'API FLUX.3 Video. Si vous préférez des points d'accès séparés image-vers-vidéo et image clé, à un prix par seconde inférieur, le workflow vidéo courte FLUX 3 Max couvre ce modèle. Cet article traite de ce que flux-3-video apporte en plus : l'audio, l'aperçu brouillon et la prolongation.

Le workflow en trois appels

Étape Rôle Champ clé Prix (par seconde) Coût pour 5 secondes
1. Brouillon Vérifier que le prompt se traduit comme prévu draft: true $0.09 $0.45
2. Version finale Rendre le clip que vous publierez resolution: "720p" $0.25 $1.25
3. Prolongation Étendre le clip final de 5 secondes supplémentaires start_video + draft: true $0.18 $0.90

Les trois utilisent le même id de modèle, avec la même structure de requête sur le point d'accès des tâches asynchrones. Cette exécution a coûté au total $2.60 et a produit un court-métrage vertical de 10 secondes avec son. En 1080p, le tarif d'un rendu normal passe à $0.42/s, celui d'une prolongation à $0.76/s, et une prolongation 720p non brouillon à $0.59/s. Les tarifs actuels figurent sur la page du modèle flux-3-video et sur la page des tarifs.

Étapes 1 et 2 : brouillon et version finale, soumis en lot

Le prompt décrit le plan dans un bloc de phrases, et le son sur une ligne Audio: distincte. Avec generate_audio: true, le modèle renvoie un .mp4 contenant une piste audio AAC intégrée, et non un fichier audio séparé.

{
  "model": "flux-3-video",
  "input": {
    "prompt": "Plan vertical à la main, de nuit : la vapeur s'élève d'un bol de ramen tonkotsu, des baguettes soulèvent des nouilles brillantes vers l'objectif, derrière elles un comptoir de ramen de six places, de chaudes lanternes en papier, la pluie qui trace des stries sur la vitre, faible profondeur de champ. Audio : bouillon qui frémit, slurp léger de nouilles, pluie sur la vitre, conversations à voix basse.",
    "duration": 5,
    "resolution": "720p",
    "aspect_ratio": "9:16",
    "draft": true,
    "generate_audio": true
  }
}

La requête de la version finale est le même corps, sans "draft": true. Les deux requêtes sont soumises l'une après l'autre. Elles ne s'attendent pas mutuellement, car chaque appel renvoie immédiatement un taskId :

Brouillon Final 720p
Création → fin (horodatage serveur) 29 s 64 s
Dimensions de sortie 704×1280 704×1280
Durée 5,04 s 5,04 s
Niveau de crête audio −23 dB −5 dB
Coût $0.45 $1.25

Voici le brouillon :

Et la version finale 720p du même prompt :

Ces deux clips montrent ce que le brouillon peut vous dire, et ce qu'il ne peut pas :

  • Le brouillon est une autre version, pas un aperçu basse résolution du final. Le brouillon cadre un bol blanc uni, les nouilles déjà soulevées. Le final choisit un bol à motifs, avec un œuf mollet, de la ciboule, des clients au comptoir et de la vapeur. Le schéma de requête n'a pas de champ seed, vous ne pouvez donc pas verrouiller la composition du brouillon puis la re-rendre en pleine qualité.
  • Les dimensions en pixels sont identiques. Les deux sorties font 704×1280. La différence est dans le détail : le brouillon est nettement plus doux, l'arrière-plan flou, tandis que le final conserve la texture des nouilles et des caractères sur les lanternes.
  • La piste audio du brouillon est bien plus faible. Sa crête est d'environ −23 dB, contre −5 dB pour le final. N'utilisez pas le brouillon pour juger du mixage audio.

Utilisez donc le brouillon pour vérifier le concept sur plusieurs variantes de prompt, à $0.45 pièce (le prompt produit-il bien un gros plan de ramen vertical, de nuit, avec un geste de baguettes ?). Ne rendez ensuite en version finale que les prompts retenus, et choisissez parmi les finals.

Étape 3 : prolonger le plan avec la prolongation

Un hook de 5 secondes est souvent trop court pour une publication. Plutôt que de générer un autre clip sans rapport, passez l'URL publique du final comme start_video et décrivez la suite :

{
  "model": "flux-3-video",
  "input": {
    "prompt": "Poursuite du même plan : les nouilles sont aspirées hors du cadre, la caméra à la main dérive vers le haut à droite, passe au-dessus du bol fumant et se dirige vers la vitre striée de pluie, les lanternes en papier lumineuses se reflètent dans le verre, une enseigne néon floue dehors. Audio : slurp de nouilles, puis la pluie sur la vitre et les conversations au comptoir qui montent doucement.",
    "start_video": "https://static.hiapi.ai/blog/flux-3-video-short-form-video/hook-final.mp4",
    "duration": 5,
    "resolution": "720p",
    "aspect_ratio": "9:16",
    "draft": true,
    "generate_audio": true
  }
}

Cette tâche a pris 119 secondes de la création à la fin, pour un coût de $0.90 (5 s × $0.18 pour une prolongation en brouillon). Voici le résultat :

Deux comportements à anticiper :

  1. La sortie ne contient que les secondes ajoutées. Le fichier renvoyé dure 5,0 secondes. Il commence à la dernière image du clip source (les nouilles soulevées devant la lanterne), puis fait le panoramique vers la vitre comme demandé. Il ne contient pas les 5 secondes d'origine, il vous faut donc assembler vous-même les deux fichiers.
  2. Comme la première image correspond, l'assemblage est invisible. Un simple concat produit un plan continu de 10 secondes :
ffmpeg -i hook-final.mp4 -i extend-draft.mp4 \
  -filter_complex "[0:v][0:a][1:v][1:a]concat=n=2:v=1:a=1[v][a]" \
  -map "[v]" -map "[a]" -c:v libx264 -crf 20 -c:a aac -movflags +faststart cut-10s.mp4

Ici, la prolongation est rendue en mode brouillon pour réduire les coûts, et la seconde moitié est plus douce que la première, comme pour un brouillon autonome. Pour un clip à publier, une prolongation 720p non brouillon coûte $0.59/s ($2.95 pour 5 s). Prolonger par pas de 5 secondes vous permet de valider chaque segment avant de payer le suivant ; rendre d'un coup une version finale 720p de 20 secondes coûte $5.00 d'avance.

Script de traitement par lots asynchrone

Le script ci-dessous envoie en parallèle un nombre quelconque de tâches, interroge chaque taskId jusqu'à la fin, et télécharge immédiatement la sortie. Les URL de résultat situées sur temp.hiapi.ai portent un horodatage expireAt : copiez donc les fichiers dans votre propre stockage au lieu de les lier directement. La documentation des points d'accès se trouve dans Create Task et Get Task Detail.

import os, time, requests

API = "https://api.hiapi.ai/v1/tasks"
HEADERS = {"Authorization": f"Bearer {os.environ['HIAPI_API_KEY']}"}

BASE = {"duration": 5, "resolution": "720p", "aspect_ratio": "9:16",
        "generate_audio": True}

jobs = {
    "ramen_draft":  {**BASE, "draft": True,  "prompt": "Plan vertical à la main, de nuit : ……"},
    "coffee_draft": {**BASE, "draft": True,  "prompt": "Gros plan vertical : un espresso qui s'écoule……"},
    "ramen_final":  {**BASE,                 "prompt": "Plan vertical à la main, de nuit : ……"},
}

# 1. Tout soumettre ; chaque appel renvoie immédiatement un taskId
task_ids = {}
for name, inp in jobs.items():
    r = requests.post(API, headers=HEADERS,
                      json={"model": "flux-3-video", "input": inp}, timeout=60)
    r.raise_for_status()
    task_ids[name] = r.json()["data"]["taskId"]

# 2. Interroger jusqu'à ce que chaque tâche atteigne un état final
pending = dict(task_ids)
while pending:
    time.sleep(10)
    for name, tid in list(pending.items()):
        data = requests.get(f"{API}/{tid}", headers=HEADERS, timeout=30).json()["data"]
        if data["status"] == "success":
            url = data["output"][0]["url"]
            with open(f"{name}.mp4", "wb") as f:
                f.write(requests.get(url, timeout=120).content)
            print(name, "enregistré")
            pending.pop(name)
        elif data["status"] in ("fail", "failed"):
            print(name, "échec :", data.get("error"))
            pending.pop(name)

Pour l'étape de prolongation, ajoutez "start_video": "<URL publique du final approuvé>" dans l'input. Cette URL doit être accessible publiquement : téléversez donc d'abord le final approuvé dans votre propre stockage.

Règles de requête à connaître avant une soumission en lot

Ces réponses sont celles renvoyées par l'API pendant cette exécution. Les requêtes invalides sont rejetées dès la soumission avec 400 INVALID_REQUEST, et aucune tâche n'est créée :

  • aspect_ratio accepte auto, 21:9, 2:1, 16:9, 4:3, 1:1, 3:4, 9:16. Toute autre valeur est rejetée.
  • duration a un maximum de 20 (maximum: got 99, want 20).
  • start_video doit être une URL sous forme de chaîne.
  • Les champs inconnus sont rejetés (additional properties ... not allowed), une faute de frappe provoque donc une erreur explicite au lieu d'être ignorée.

À l'inverse : une requête qui passe la validation est une vraie tâche, facturée. N'envoyez pas de prompt « test » sans draft: true. Un simple {"prompt": "test"} est valide et rend un clip au tarif plein.

Questions fréquentes

Quel est le moyen le moins cher d'essayer un prompt flux-3-video ? Le mode brouillon 720p : $0.09/s, soit $0.45 pour un clip de 5 secondes. Il indique si le concept tient, mais le rendu final sera une autre version.

flux-3-video génère-t-il du son ? Oui. Avec generate_audio: true, la piste audio est intégrée dans le .mp4 renvoyé. Dans ce test, décrire le son sur une ligne Audio: distincte dans le prompt a produit une ambiance assortie (bouillon qui frémit, slurp de nouilles, pluie, conversations).

Quelle longueur peut faire un clip flux-3-video ? Jusqu'à 20 secondes par requête. Avec la prolongation via start_video, vous pouvez étendre par étapes et valider chaque étape avant de payer la suivante.

La prolongation renvoie-t-elle la vidéo assemblée complète ? Non. Dans ce test, elle ne renvoie que les 5 secondes ajoutées, à partir de la dernière image du clip source. Assemblez les fichiers vous-même.

Passer à la construction

Ouvrez la page du modèle flux-3-video pour consulter les tarifs actuels et utiliser le playground. Utilisez ensuite le script de traitement par lots ci-dessus pour ébaucher quelques hooks verticaux, rendre en version finale ceux qui tiennent, et prolonger le meilleur.

Articles similaires

Voir tous les articles →

Commencez avec des artefacts IA persistants

Obtenez votre clé API et appelez des modèles d'image, de vidéo et d'audio via une API unique basée sur les tasks.

Lire la documentation de l'API