FLUX 3 Video via API : guide complet et script Python
Générez vos vidéos avec FLUX 3 Video via API : comparatif fal.ai, OpenRouter et BFL, script Python prêt à l'emploi et conseils de prompt pas à pas.

👁 120 lectures
FLUX 3 Video ne propose pas d’application grand public avec un abonnement classique : Black Forest Labs le distribue exclusivement via API. Cela peut sembler intimidant, mais il suffit d’une clé d’accès, de quelques dollars de crédit et d’un simple script. Nous détaillons ci-dessous trois solutions d’accès (fal.ai, OpenRouter, API officielle BFL), un script Python prêt à l’emploi testé par nos soins sur un dossier vierge, ainsi que les règles de prompting pour gérer le son et le texte à l’écran. Notre comparatif global, les tarifs et nos bancs d’essai complets sont à retrouver dans notre guide FLUX 3 Video.
Les montants en EUR sont des conversions indicatives des prix publiés en USD, calculées au taux de référence de la BCE du 2026-10-12 : 1 EUR = 1.1181 USD. Il ne s’agit pas de tarifs locaux confirmés ni de montants finaux toutes taxes comprises. Le fournisseur et la banque peuvent appliquer d’autres taux ou frais. ECB.
Ce dont vous aurez besoin
- Un compte sur fal.ai (ou OpenRouter, ou l’API BFL) avec une clé API active.
- Du crédit : 4,47 EUR (5 USD) suffisent largement pour vos premiers essais. Un brouillon de 5 s coûte 0,1342 EUR (0,15 USD) sur fal.ai, contre 0,3801 EUR (0,425 USD) pour un clip final de 5 s en 720p.
- Python 3.9+ avec la bibliothèque
requests. - Un peu de patience : la génération d’un clip de 5 secondes a pris entre 37 et 98 secondes lors de nos tests.
fal.ai, OpenRouter ou BFL : quelle plateforme choisir ?
| Fournisseur | 5 s en 720p | Mode brouillon | Modes disponibles | Pour quel profil |
|---|---|---|---|---|
| fal.ai | 0,3801 EUR (0,425 USD) | oui, 0,0268 EUR (0,03 USD)/s | texte, image, images clés, première et dernière image, extension, édition | le plus économique, le plus de modes |
| OpenRouter | 0,7602 EUR (0,85 USD) | non | texte, première et dernière image | une seule clé API pour les LLM et la vidéo |
| API BFL | 0,7602 EUR (0,85 USD) | oui, 0,0537 EUR (0,06 USD)/s | tous les modes, y compris QHD et 4K | accès direct à la source, fonctionnalités maximales |
Tarifs relevés le 11 octobre 2026. Nous avons généré 6 clips via OpenRouter et 3 via fal.ai ; vous pouvez visionner les résultats dans notre article Que vaut FLUX 3 Video en pratique. Le script ci-dessous s’appuie sur fal.ai, car la plateforme offre les tarifs les plus compétitifs ainsi qu’un mode brouillon économique.
Guide étape par étape
- Créez un compte sur fal.ai, créditez votre solde dans la section « Billing », puis générez une clé dans « Keys ».
- Installez la bibliothèque requise :
pip install requests. - Téléchargez le script flux3_wideo.py (code source complet disponible ci-après).
- Définissez votre clé dans une variable d’environnement. Sous PowerShell :
$env:FAL_KEY="votre_clé"; sous macOS/Linux :export FAL_KEY="votre_clé". - Générez un premier brouillon :
python flux3_wideo.py "description de la scène" --szkic. Le script affiche une estimation du coût et demande confirmation avant l’envoi. - Si le cadrage et l’animation vous conviennent, relancez la même commande sans l’option
--szkic: vous obtiendrez la qualité finale en 720p (ou en 1080p avec--rozdz 1080p). - Pour animer une image existante, ajoutez
--obraz https://adresse/image.jpg. L’image doit être hébergée sur une URL publique accessible directement.
Notre test en conditions réelles
Nous avons exécuté le script le 11 octobre dans un dossier vide, en mode brouillon, avec la commande suivante :
python flux3_wideo.py "A red and cream tram passes along a rainy Krakow street at dusk, reflections of shop lights on the wet cobblestones, people with umbrellas wait at the stop. A sign on the tram stop reads "PLAC WOLNICA". Static camera, realistic. Sound: rain, tram bell, wheels on rails." --szkic --plik tramwaj_szkic.mp4 --tak
Le résultat obtenu : un fichier de 4,8 Mo, d’une durée de 5 secondes en résolution 1280×704, doté d’une piste audio, livré en 37 secondes. Le tramway bicolore rouge et crème traverse le plan de manière fluide, les passants attendent sous leurs parapluies et les lumières des vitrines se reflètent fidèlement sur les pavés mouillés. En mode brouillon, l’inscription « PLAC WOLNICA » (Place Wolnica) s’avère illisible en raison de la taille réduite du panneau dans le champ. Si la netteté d’un texte est primordiale, il convient de le décrire comme un élément dominant au premier plan, comme nous l’avions vérifié lors de notre test avec un tableau noir d’école.
Script Python complet
Téléchargement direct : flux3_wideo.py (91 lignes). Le code lit la clé API exclusivement depuis vos variables d’environnement, affiche le montant estimé avant confirmation, gère automatiquement les reconnexions réseau en cas de coupure temporaire et sauvegarde le rendu au format MP4.
"""flux3_wideo.py - generation video avec FLUX 3 Video via fal.ai (Promptif, 11.10.2026)
Requis : Python 3.9+ et la bibliotheque requests (pip install requests).
Cle API : variable d'environnement FAL_KEY (fal.ai -> Dashboard -> Keys). Ne pas inscrire la cle dans le code.
Exemples :
python flux3_wideo.py "A red tram passes through a rainy street at dusk" --szkic
python flux3_wideo.py "The camera slowly dollies forward..." --obraz https://site.com/image.jpg --czas 6
python flux3_wideo.py "..." --czas 10 --rozdz 1080p --proporcje 9:16 --bez-dzwieku
Tarifs (grille fal.ai au 11.10.2026) : 0,085 USD par seconde en qualite complete, 0,03 USD par seconde en brouillon.
Le script affiche une estimation avant l'envoi et sollicite une confirmation (passer outre avec --tak).
"""
import argparse, os, sys, time, pathlib
import requests
STAWKA = {'pelna': 0.085, 'szkic': 0.03} # USD par seconde, fal.ai, 11.10.2026
def main():
a = argparse.ArgumentParser(description='FLUX 3 Video via fal.ai')
a.add_argument('prompt', help='prompt en anglais; repliques en langue etrangere entre guillemets')
a.add_argument('--obraz', help="URL de l'image de depart (mode image-to-video)")
a.add_argument('--czas', type=int, default=5, help='duree en secondes, de 5 a 20 (par defaut : 5)')
a.add_argument('--rozdz', default='720p', choices=['720p', '1080p'])
a.add_argument('--proporcje', default='16:9', help='16:9, 9:16, 1:1, 4:3, 3:4, 21:9, 2:1 ou auto')
a.add_argument('--szkic', action='store_true', help='mode brouillon : plus rapide et economique pour iterer')
a.add_argument('--bez-dzwieku', action='store_true', help='generer la video sans bande-son')
a.add_argument('--plik', default='', help='nom du fichier de sortie (par defaut : flux3_<timestamp>.mp4)')
a.add_argument('--tak', action='store_true', help='ignorer la confirmation manuelle du cout')
x = a.parse_args()
klucz = os.environ.get('FAL_KEY')
if not klucz:
sys.exit('Variable FAL_KEY introuvable. Definissez-la, ex. sous bash : export FAL_KEY="..."')
if not 5 <= x.czas <= 20:
sys.exit('La duree doit etre comprise entre 5 et 20 secondes.')
tryb = 'image-to-video' if x.obraz else 'text-to-video'
endpoint = f'blackforestlabs/flux-3/{tryb}' + ('/draft' if x.szkic else '')
body = {'prompt': x.prompt, 'duration': x.czas, 'aspect_ratio': x.proporcje, 'generate_audio': not x.bez_dzwieku}
if x.obraz:
body['image_url'] = x.obraz
if not x.szkic:
body['resolution'] = x.rozdz # le brouillon est toujours genere en 720p
koszt = x.czas * STAWKA['szkic' if x.szkic else 'pelna']
print(f'Modele : {endpoint}nDuree : {x.czas} s, cout estime : {koszt:.3f} USD')
if not x.tak and input('Lancer la generation ? [o/N] ').strip().lower() not in ('o', 'oui', 'y'):
sys.exit('Generation annulee.')
H = {'Authorization': 'Key ' + klucz, 'Content-Type': 'application/json'}
r = requests.post('https://queue.fal.run/' + endpoint, headers=H, json=body, timeout=120)
if r.status_code >= 300:
sys.exit(f'Erreur {r.status_code} : {r.text[:400]}')
zad = r.json()
print('Tache transmise, attente du resultat...')
t0 = time.time()
while True:
time.sleep(8)
try:
s = requests.get(zad['status_url'], headers=H, timeout=60).json()
except requests.RequestException:
continue # coupure reseau passagere : nouvelle tentative
stan = s.get('status')
print(f' {int(time.time() - t0)} s : {stan}')
if stan == 'COMPLETED':
break
if stan not in ('IN_QUEUE', 'IN_PROGRESS'):
sys.exit(f'Echec de la generation : {s}')
if time.time() - t0 > 1800:
sys.exit('Aucun resultat apres 30 minutes. Verifiez manuellement : ' + zad['response_url'])
for _ in range(6):
try:
wynik = requests.get(zad['response_url'], headers=H, timeout=90).json()
break
except requests.RequestException:
time.sleep(10)
else:
sys.exit('Impossible de recuperer le fichier. URL : ' + zad['response_url'])
url = wynik['video']['url']
plik = pathlib.Path(x.plik or f'flux3_{int(time.time())}.mp4')
plik.write_bytes(requests.get(url, timeout=300).content)
print(f'Termine en {int(time.time() - t0)} s : {plik.resolve()} ({plik.stat().st_size // 1024} Ko)')
if __name__ == '__main__':
main()
Comment rédiger vos prompts pour FLUX 3 Video
- Rédigez la consigne en anglais, en réservant les autres langues uniquement aux dialogues parlés ou aux textes inscrits à l’image. Exemple de structure :
She says clearly in Polish: "...". Nous avons testé cette formule en polonais et le modèle a produit une élocution irréprochable. - Détaillez le son dans une section dédiée introduite par le mot-clé « Sound: ». Attention : lors de notre test d’un packshot de machine à café, le modèle a restitué des chants d’oiseaux sans aucun sifflement d’expresso. Pour des bruitages produits très spécifiques, un ajout en post-production reste souvent plus sûr.
- Intégrez les inscriptions textuelles en grand dans le cadre (par exemple « the chalkboard clearly shows exactly two lines of text »). Un panneau lointain en arrière-plan sera flou ou déformé.
- Décrivez les mouvements de caméra simplement : « The camera slowly dollies forward », « 180-degree orbit at a constant speed », « static camera ». Sur un mouvement d’orbite à 180 degrés, FLUX 3 n’a montré aucune déformation d’objet.
- Séquencez vos plans multiples avec l’instruction « Hard cut. Shot 2: », en reprécisant l’apparence des sujets à chaque plan pour assurer la continuité.
- Ajoutez vos consignes négatives en fin de prompt : « no subtitles, no on-screen text, no music », si vous souhaitez éviter ces éléments parasites.
- Spécifiez le ratio d’aspect manuellement lors d’une génération image-to-video. Avec le réglage « auto », le système a rogné les bords de notre cliché de café.
Paramètres du script
| Paramètre | Action | Valeur par défaut |
|---|---|---|
prompt |
description de la scène (obligatoire) | - |
--obraz URL |
image de référence (mode image-to-video) | aucune (text-to-video) |
--czas |
durée comprise entre 5 et 20 s | 5 |
--rozdz |
résolution 720p ou 1080p (toujours 720p en brouillon) | 720p |
--proporcje |
16:9, 9:16, 1:1, 4:3, 3:4, 21:9, 2:1, auto | 16:9 |
--szkic |
aperçu rapide et économique (0,0268 EUR (0,03 USD)/s) | désactivé |
--bez-dzwieku |
génère un clip sans piste audio | son activé |
--plik |
nom personnalisé du fichier MP4 final | flux3_<timestamp>.mp4 |
--tak |
valide automatiquement sans confirmation de coût | demande confirmation |
Combien coûte la génération ?
| Format du clip | fal.ai | OpenRouter / BFL |
|---|---|---|
| Brouillon 5 s | 0,1342 EUR (0,15 USD) | BFL : 0,2683 EUR (0,30 USD) (absent sur OpenRouter) |
| 5 s en 720p | 0,3801 EUR (0,425 USD) | 0,7602 EUR (0,85 USD) |
| 10 s en 720p | 0,7602 EUR (0,85 USD) | 1,52 EUR (1,70 USD) |
| 20 s en 720p | 1,52 EUR (1,70 USD) | 3,04 EUR (3,40 USD) |
| 20 s en 1080p | non renseigné | 5,19 EUR (5,80 USD) |
La bande-son n’entraîne aucun surcoût. Lors de nos séries de tests, l’ensemble de nos 9 générations avec FLUX 3 nous est revenu à 5,46 EUR (6,10 USD) au total.
Erreurs fréquentes et solutions
- « Variable FAL_KEY introuvable » : votre variable d’environnement a été configurée dans une autre session de terminal. Définissez-la dans la fenêtre exacte où vous exécutez le script.
- Erreur HTTP 401 ou 403 : clé API erronée ou dépourvue des droits nécessaires. Régénérez un jeton propre depuis votre console fal.ai.
- Erreur de solde épuisé : votre compte manque de crédits ; rechargez votre balance via l’onglet Billing.
- L’image de départ ne charge pas : l’URL renseignée doit être publique (sans écran de connexion ni redirection) et pointer directement vers un fichier PNG, JPEG ou WebP.
- Déconnexion lors du téléchargement : ce cas s’est produit une fois au cours de nos tests. Le script relance la requête automatiquement et imprime l’URL directe du fichier en cas d’échec persistant, ce qui vous évite de payer un second calcul.
Foire aux questions
Peut-on utiliser FLUX 3 Video sans passer par la programmation ?
Tout à fait, via les interfaces bac à sable des prestataires : le site de fal.ai et la plateforme OpenRouter intègrent des formulaires web directs. Un script automatisé devient surtout pertinent lorsque vous souhaitez enchaîner les générations par lots ou sauvegarder les rendus sans manipulation manuelle.
Comment produire une vidéo de plus de 20 secondes ?
Par concaténation : fal.ai propose un point d’entrée extend-video, qui s’appuie sur la dernière image du clip précédent pour générer une suite de 5 à 15 secondes. Sur l’API officielle de BFL, cette opération est facturée 0,3667 EUR (0,41 USD)/s en 720p.
Les vidéos obtenues sont-elles exploitables commercialement ?
Les droits dépendent des conditions générales d’utilisation de Black Forest Labs et du fournisseur API intermédiaire retenu. Pensez à vérifier les termes de service de votre passerelle avant toute diffusion publicitaire.
Pour approfondir vos prompts, lisez notre analyse Que vaut FLUX 3 Video en pratique. Pour découvrir les alternatives, consultez notre banc d’essai FLUX 3 vs Wan 3.0 vs Seedance 2.5 ainsi que notre panorama des meilleurs générateurs vidéo IA.
Sources et date de vérification
- fal.ai : documentation FLUX 3 text-to-video (spécifications techniques et grille tarifaire)
- OpenRouter : modèle FLUX.3 Video
- tarifs officiels de l’API BFL
- BFL : annonce officielle de FLUX 3 Video (4 août 2026). Script testé le 11 octobre 2026 sur un environnement neuf (Windows 11
- Python 3.13
- mode brouillon
- 0,1342 EUR (0,15 USD))
More on this from PROMPTIF
guides·Freepik AI Advanced Inpaint : retouche produit sans PhotoshopDécouvrez Freepik AI Advanced Inpaint : modifiez l'éclairage, supprimez les défauts et détourez vos photos de produits e-commerce en quelques clics.

