Cómo usar FLUX 3 Video por API: guía práctica con script Python
Guía práctica para generar vídeo con FLUX 3 Video mediante API: script en Python, costes en fal.ai y OpenRouter, y trucos para controlar texto y sonido.

👁 114 lecturas
FLUX 3 Video no dispone de una aplicación con suscripción para usuarios generales: Black Forest Labs lo comercializa exclusivamente a través de API. Aunque pueda sonar intimidante, basta con obtener una clave de acceso, cargar unos pocos dólares en tu cuenta y ejecutar un script sencillo. En esta guía te mostramos tres alternativas (fal.ai, OpenRouter y la API oficial de BFL), un script en Python completamente funcional que hemos probado desde cero y las pautas para redactar prompts con las que FLUX 3 genera texto y voz con precisión. Puedes consultar nuestra comparativa de rendimiento, precios y pruebas completas en la guía sobre FLUX 3 Video.
Las cantidades en EUR son conversiones orientativas de los precios publicados en USD, calculadas con el tipo de referencia del BCE del 2026-10-12: 1 EUR = 1.1181 USD. No son precios locales confirmados ni importes finales con impuestos. El proveedor y el banco pueden aplicar otros tipos o cargos. ECB.
Qué necesitas para empezar
- Una cuenta en fal.ai (o en OpenRouter o la API de BFL) junto con su correspondiente clave API.
- Saldo suficiente: para las primeras pruebas bastan 5 USD. Un borrador de 5 s cuesta 0,1342 EUR (0,15 USD) en fal.ai; un clip completo de 5 s en 720p sale por 0,425 USD.
- Python 3.9 o superior con la librería
requestsinstalada. - Paciencia: en nuestras pruebas, un clip de 5 segundos tardó en procesarse entre 37 y 98 segundos.
Qué proveedor elegir: fal.ai, OpenRouter o BFL
| Proveedor | 5 s en 720p | Borrador | Modos disponibles | Para quién es |
|---|---|---|---|---|
| fal.ai | 0,3801 EUR (0,425 USD) | sí, 0,0268 EUR (0,03 USD)/s | texto, imagen, fotogramas clave, primer y último fotograma, extensión, edición | el más económico, mayor variedad de modos |
| OpenRouter | 0,7602 EUR (0,85 USD) | no | texto, primer y último fotograma | una sola clave para modelos de lenguaje y vídeo |
| API de BFL | 0,7602 EUR (0,85 USD) | sí, 0,0537 EUR (0,06 USD)/s | todos, incluidos QHD y 4K | la fuente original, funciones completas |
Tarifas comprobadas a 11 de octubre de 2026. En nuestras evaluaciones generamos 6 clips mediante OpenRouter y 3 a través de fal.ai; puedes ver los resultados en el artículo sobre qué es capaz de hacer FLUX 3 Video. El script que facilitamos a continuación utiliza fal.ai por ser la opción más económica y contar con modo borrador.
Cómo generar vídeos paso a paso
- Crea una cuenta en fal.ai, añade saldo en el apartado «Billing» y genera una clave de acceso en «Keys».
- Instala la dependencia necesaria:
pip install requests. - Descarga el script flux3_video.py (encontrarás el código completo más abajo).
- Define tu clave como variable de entorno. En PowerShell:
$env:FAL_KEY="tu_clave"; en la terminal de macOS o Linux:export FAL_KEY="tu_clave". - Genera una vista previa rápida:
python flux3_video.py "descripción de la escena" --borrador. El script calculará el coste estimado y te pedirá confirmación antes de proceder. - Si el resultado del borrador te convence, repite el comando sin el parámetro
--borrador: obtendrás el vídeo con calidad final a 720p o, si añades--resolucion 1080p, a 1080p. - Para animar una fotografía estática, añade
--imagen https://enlace/imagen.jpg. La imagen debe estar alojada en una dirección URL pública accesible.
Prueba real del script
Ejecutamos el script el 11 de octubre en una carpeta limpia, activando el modo borrador con esta instrucción:
python flux3_video.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." --borrador --archivo tranvia_borrador.mp4 --si
El resultado obtenido fue un archivo de 4,8 MB, de 5 segundos de duración a 1280×704 píxeles con pista de audio incluida, completado en 37 segundos. Un tranvía con librea roja y crema avanza por el encuadre mientras los transeúntes aguardan bajo sus paraguas y los escaparates se reflejan en el pavimento mojado. El letrero con el texto en polaco «PLAC WOLNICA» (Plaza Wolnica) no resulta legible en el borrador debido al tamaño reducido de la placa. Si necesitas que un texto se lea con nitidez, asegúrate de describirlo como un objeto principal en primer plano, tal como constatamos en nuestras pruebas con una pizarra escolar.
Script en Python listo para usar
Descarga: flux3_video.py (91 líneas). Lee la clave exclusivamente desde las variables de entorno, calcula el coste antes de iniciar la llamada, reintenta la conexión ante caídas transitorias de red y guarda la salida directamente en formato MP4.
"""flux3_video.py - Generar video con FLUX 3 Video mediante fal.ai
Requiere: Python 3.9+ y la libreria requests (pip install requests).
Clave API: variable de entorno FAL_KEY (fal.ai -> Dashboard -> Keys). No pegues la clave en el codigo.
Ejemplos:
python flux3_video.py "A red tram passes through a rainy Krakow street at dusk" --borrador
python flux3_video.py "The camera slowly dollies forward..." --imagen https://sitio.com/foto.jpg --duracion 6
python flux3_video.py "..." --duracion 10 --resolucion 1080p --aspecto 9:16 --sin-audio
Coste (tarifas de fal.ai a 11.10.2026): 0,085 USD por segundo en calidad completa, 0,03 USD por segundo en modo borrador.
El script muestra una estimacion antes de enviar la peticion y solicita confirmacion (puedes omitirla con la opcion --si).
"""
import argparse, os, sys, time, pathlib
import requests
TARIFAS = {'completa': 0.085, 'borrador': 0.03} # USD por segundo, fal.ai, 11.10.2026
def main():
a = argparse.ArgumentParser(description='FLUX 3 Video mediante fal.ai')
a.add_argument('prompt', help='descripcion en ingles; dialogos entrecomillados')
a.add_argument('--imagen', help='URL de la imagen inicial (modo imagen a video)')
a.add_argument('--duracion', type=int, default=5, help='duracion en segundos, 5-20 (por defecto 5)')
a.add_argument('--resolucion', default='720p', choices=['720p', '1080p'])
a.add_argument('--aspecto', default='16:9', help='16:9, 9:16, 1:1, 4:3, 3:4, 21:9, 2:1 o auto')
a.add_argument('--borrador', action='store_true', help='modo borrador: mas rapido y economico, ideal para pruebas')
a.add_argument('--sin-audio', action='store_true')
a.add_argument('--archivo', default='', help='nombre del archivo de salida (por defecto flux3_<timestamp>.mp4)')
a.add_argument('--si', action='store_true', help='no pedir confirmacion del coste')
x = a.parse_args()
clave = os.environ.get('FAL_KEY')
if not clave:
sys.exit('Falta la variable de entorno FAL_KEY. Configurala, por ejemplo en PowerShell: $env:FAL_KEY="..."')
if not 5 <= x.duracion <= 20:
sys.exit('La duracion debe estar entre 5 y 20 segundos.')
modo = 'image-to-video' if x.imagen else 'text-to-video'
endpoint = f'blackforestlabs/flux-3/{modo}' + ('/draft' if x.borrador else '')
body = {'prompt': x.prompt, 'duration': x.duracion, 'aspect_ratio': x.aspecto, 'generate_audio': not x.sin_audio}
if x.imagen:
body['image_url'] = x.imagen
if not x.borrador:
body['resolution'] = x.resolucion # el borrador siempre se genera en 720p
coste = x.duracion * TARIFAS['borrador' if x.borrador else 'completa']
print(f'Modelo: {endpoint}nDuracion: {x.duracion} s, coste estimado: {coste:.3f} USD')
if not x.si and input('¿Enviar peticion? [s/N] ').strip().lower() != 's':
sys.exit('Operacion cancelada.')
H = {'Authorization': 'Key ' + clave, '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'Error {r.status_code}: {r.text[:400]}')
tarea = r.json()
print('Peticion aceptada, esperando el resultado...')
t0 = time.time()
while True:
time.sleep(8)
try:
s = requests.get(tarea['status_url'], headers=H, timeout=60).json()
except requests.RequestException:
continue # problema temporal de red: seguir consultando
estado = s.get('status')
print(f' {int(time.time() - t0)} s: {estado}')
if estado == 'COMPLETED':
break
if estado not in ('IN_QUEUE', 'IN_PROGRESS'):
sys.exit(f'Error en la tarea: {s}')
if time.time() - t0 > 1800:
sys.exit('Sin resultado tras 30 minutos. URL para comprobar manualmente: ' + tarea['response_url'])
for _ in range(6):
try:
resultado = requests.get(tarea['response_url'], headers=H, timeout=90).json()
break
except requests.RequestException:
time.sleep(10)
else:
sys.exit('No se pudo descargar el resultado. URL: ' + tarea['response_url'])
url = resultado['video']['url']
archivo = pathlib.Path(x.archivo or f'flux3_{int(time.time())}.mp4')
archivo.write_bytes(requests.get(url, timeout=300).content)
print(f'Listo en {int(time.time() - t0)} s: {archivo.resolve()} ({archivo.stat().st_size // 1024} KB)')
if __name__ == '__main__':
main()
Cómo redactar prompts para FLUX 3 Video
- Redacta la escena en inglés y reserva otros idiomas únicamente para frases habladas o carteles específicos. Por ejemplo, en nuestras pruebas evaluamos la dicción en polaco indicando la instrucción:
She says clearly in Polish: "...", logrando dos secuencias con una pronunciación impecable en ese idioma. - Describe el sonido de forma independiente tras el encabezado «Sound:». Ten en cuenta que, en nuestra prueba con un plano de producto de una cafetera, el modelo introdujo únicamente pájaros de fondo y omitió el siseo del vapor. A menudo resulta más fiable añadir el diseño sonoro en postproducción.
- Haz que el texto impreso ocupe un lugar prominente dentro del encuadre («the chalkboard clearly shows exactly two lines of text»). Las señales pequeñas y lejanas pierden definición y quedan ilegibles.
- Especifica el movimiento de cámara en una sola frase: «The camera slowly dollies forward», «180-degree orbit at a constant speed» o «static camera». En nuestras pruebas, FLUX 3 ejecutó una rotación orbital fluida sin deformar al sujeto.
- Separa secuencias complejas en varios planos usando la fórmula «Hard cut. Shot 2:» y describe nuevamente los rasgos del personaje en cada cambio de plano para preservar la consistencia.
- Añade exclusiones al final: indicaciones como «no subtitles, no on-screen text, no music» evitan elementos visuales o musicales indeseados.
- Fija la relación de aspecto manualmente al partir de una imagen. En nuestras pruebas, al dejar el parámetro en «auto», el sistema recortó innecesariamente una fotografía de una cafetería.
Parámetros del script
| Parámetro | Función | Valor por defecto |
|---|---|---|
prompt |
descripción de la escena (obligatorio) | - |
--imagen URL |
imagen inicial para generar vídeo a partir de imagen | ninguna (texto a vídeo) |
--duracion |
longitud de la secuencia: de 5 a 20 s | 5 |
--resolucion |
720p o 1080p (el modo borrador siempre genera 720p) | 720p |
--aspecto |
16:9, 9:16, 1:1, 4:3, 3:4, 21:9, 2:1 o auto | 16:9 |
--borrador |
renderizado rápido y económico (0,0268 EUR (0,03 USD)/s) | desactivado |
--sin-audio |
genera el vídeo sin pista sonora | audio activado |
--archivo |
nombre asignado al fichero MP4 resultante | flux3_<timestamp>.mp4 |
--si |
omite la confirmación previa del gasto | pide confirmación |
Cuánto cuesta generar cada vídeo
| Tipo de clip | fal.ai | OpenRouter / BFL |
|---|---|---|
| Borrador 5 s | 0,1342 EUR (0,15 USD) | BFL 0,2683 EUR (0,30 USD); OpenRouter no ofrece borrador |
| 5 s, 720p | 0,3801 EUR (0,425 USD) | 0,7602 EUR (0,85 USD) |
| 10 s, 720p | 0,7602 EUR (0,85 USD) | 1,52 EUR (1,70 USD) |
| 20 s, 720p | 1,52 EUR (1,70 USD) | 3,04 EUR (3,40 USD) |
| 20 s, 1080p | sin datos | 5,19 EUR (5,80 USD) |
La generación de audio no acarrea ningún coste adicional. Nuestro gasto total para procesar todos los clips de FLUX 3 correspondientes a este bloque de análisis ascendió a 5,46 EUR (6,10 USD) (un total de 9 clips).
Errores frecuentes y cómo resolverlos
- «Falta la variable de entorno FAL_KEY»: configuraste la variable en otra ventana de terminal. Debes definirla en la misma sesión donde ejecutes el script.
- Error 401 o 403: la clave introducida es incorrecta o carece de permisos. Genera un nuevo token desde el panel de fal.ai.
- Error de saldo insuficiente: tu cuenta no dispone de crédito; recárgala en la sección Billing.
- La imagen de partida no carga: el enlace debe ser de acceso público (sin requerir autenticación) y dirigir directamente a un archivo PNG, JPEG o WebP.
- Corte de conexión durante la descarga: nos ocurrió en una ocasión; el script reintenta la bajada automáticamente y, si falla, muestra la dirección de descarga directa para que la abras en el navegador sin pagar de nuevo.
Preguntas frecuentes
¿Es posible utilizar FLUX 3 Video sin programar?
Sí, recurriendo a las interfaces interactivas de los proveedores: tanto en la página del modelo en fal.ai como en el chat de OpenRouter puedes introducir tu prompt directamente en un formulario web. El script resulta ventajoso cuando necesitas procesar varias tomas en lote o almacenar los archivos de forma automatizada.
¿Cómo generar secuencias de más de 20 segundos?
A través de la función de ampliación: fal.ai ofrece el endpoint extend-video, que toma el fotograma final del clip previo y le añade entre 5 y 15 segundos más. En la API oficial de BFL este proceso cuesta 0,3667 EUR (0,41 USD) por segundo en resolución 720p.
¿Se pueden utilizar los vídeos con fines comerciales?
Las condiciones dependen de los términos de servicio de BFL y de la plataforma a través de la cual generes el contenido. Antes de emplear secuencias en campañas publicitarias, revisa las cláusulas contractuales de la API elegida.
Descubre más ejemplos con prompts detallados en nuestra guía sobre qué es capaz de hacer FLUX 3 Video. Si quieres ver cómo rinde frente a la competencia, consulta la comparativa FLUX 3 frente a Wan 3.0 y Seedance 2.5, o repasa las alternativas actuales en el catálogo de generadores de vídeo con IA.
Fuentes y fecha de verificación
- fal.ai: FLUX 3 text-to-video (especificaciones de entrada y tarifas)
- OpenRouter: FLUX.3 Video
- tarifas de la API de BFL
- BFL: anuncio de FLUX 3 Video (4 de agosto de 2026). Script probado el 11 de octubre de 2026 en un entorno limpio (Windows 11
- Python 3.13
- modo borrador
- 0,1342 EUR (0,15 USD))
More on this from FULGOR
guías·Freepik AI Advanced Inpaint: retoca fotos y fondos sin PhotoshopDescubre cómo usar Freepik AI Advanced Inpaint para cambiar fondos, corregir iluminación y retocar productos de ecommerce directamente desde el navegador.

