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.
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 :
- 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.
- 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_ratioaccepteauto,21:9,2:1,16:9,4:3,1:1,3:4,9:16. Toute autre valeur est rejetée.durationa un maximum de 20 (maximum: got 99, want 20).start_videodoit ê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 →-
Guide d'utilisation
Qu'est-ce que GPT Image 2.6 ? L'édition par markup et les spécifications connues
Toutes les informations sur GPT Image 2.6 dans la spécification de l'API OpenAI, comment utiliser le nouveau paramètre d'édition markup, et ce qui n'a pas encore été annoncé.
-
Guide d'utilisation
Combien coûte l'API Vidu Q4 Preview ? 540p à 0,0515 $ par seconde
Les deux modes au même prix, comment est facturée chaque résolution sur cinq niveaux et de 3 à 16 secondes, combien de vidéos produire avec 10 $, et le comparatif de prix avec les autres modèles vidéo de la plateforme.
-
Guide d'utilisation
Recraft V4.1 Flash pour photos produit e-commerce : des visuels de catalogue en série à 0,01 $ pièce
Un véritable lot parallèle sur recraft-v4.1-flash/text-to-image : photos de fiche produit et mises en situation, blancheur du fond mesurée, temps d'exécution et script par lots.