Black Forest Labs: FLUX.3 Video
FLUX 3 Video crea clips con diálogo, efectos y ambiente sincronizados a partir de texto, imágenes fijadas o un clip que continuar. Los fotogramas clave, composición de varias tomas y mejora de borradores ayudan a desarrollar una secuencia controlada y conservar la toma elegida.
Sobre el modelo
Esta descripción cubre las capacidades del modelo. Las entradas, salidas y opciones disponibles en Ailoot se indican a continuación para el método seleccionado.
FLUX 3 Video es el modelo multimodal de Black Forest Labs para generar video con audio sincronizado. Crea escenas desde un encargo escrito, construye movimiento alrededor de imágenes fijadas o continúa un clip. Habla, efectos y ambiente pueden generarse junto con los fotogramas, permitiendo una escena corta cuya cámara, acción y sonido se diseñan como una secuencia única.
Para texto a video, describe sujeto, entorno, acción visible, comportamiento de cámara y sonido. Una escena útil de producto puede empezar en vista amplia, acercarse a un detalle de material y terminar con el producto en uso. Los encargos de varias tomas pueden nombrar cada toma y transición entre ángulos, manteniendo sujeto y estilo constantes. Puede aparecer tipografía dentro de la escena, así que aporta palabras exactas y ubicación cuando importe un letrero o título. El modelo abarca acción real, animación, gráficos en movimiento y estilos visuales estilizados.
Imagen a video utiliza de una a diez imágenes de fotogramas clave. Una imagen establece el inicio; una pareja fija inicio y final, mientras que imágenes ordenadas con tiempos guían momentos específicos. Estas imágenes se convierten en fotogramas del video y no son solo referencias generales de estilo. Con tres o más imágenes sin tiempos, el fabricante exige duración explícita: primera y última fijan extremos y las demás se distribuyen uniformemente. Los fotogramas con tiempos deben estar ordenados; la duración automática llega al último tiempo redondeado hacia arriba, dentro del máximo de 20 segundos. Prepara fotogramas clave con sujetos, encuadre y detalles compatibles y describe el movimiento entre ellos. Para revelar un producto, el primero puede mostrar el objeto cerrado y el último la disposición abierta, definiendo la acción intermedia en la instrucción.
La continuación retoma los fotogramas finales del clip aportado. El flujo de lanzamiento usa hasta cuatro segundos de video y audio existentes como contexto para la siguiente acción, trasladando cámara, movimiento y sonido a través de la unión. Elige un final que establezca claramente adónde van sujeto y cámara y describe lo que sigue. Continuar difiere de reescribir una toma: FLUX Video Edit es otro modelo y no pasa a formar parte del generador solo porque ambos acepten video.
La generación condicionada por texto e imagen admite clips de 5 a 20 segundos. La descripción específica de modo asigna a la continuación una salida de 5–15 segundos. Duración y relación de aspecto pueden elegirse automáticamente o el encargo puede especificar una forma horizontal, cuadrada o vertical compatible, incluidas 21:9, 2:1, 16:9, 4:3, 1:1, 3:4, 9:16 y 9:21. La salida es de 24 fotogramas por segundo. Elige duración para unas pocas acciones visibles en vez de intentar encajar una historia completa en una generación breve.
La salida HD procede directamente de la generación; FHD, QHD y UHD terminan la misma escena con un ampliador de video. En 16:9, las dimensiones entregadas son respectivamente 1280 × 704, 1920 × 1088, 2560 × 1440 y 3840 × 2176. Las dimensiones se alinean a múltiplos de 32, por lo que una clase de resolución puede diferir de un tamaño de entrega convencional. Recorta el fotograma terminado si necesitas un lienzo estándar exacto, preservando contenido importante en los bordes. La resolución superior es una etapa de acabado, no otra interpretación de la toma.
El audio nativo está activado por defecto y puede desactivarse para un clip silencioso. En diálogo, cita la línea, identifica al hablante y describe la interpretación; habla multilingüe, acentos y sincronización labial forman parte de las capacidades audiovisuales. Conecta diálogo y señales sonoras con el evento visible, como cerrar una tapa o pasos que se alejan. Revisa voz, tiempos y palabras junto con la imagen en vez de tratar el sonido como una capa independiente añadida después.
El modo Draft produce una vista HD y un paquete de borrador. Mejora el paquete elegido para renderizar esa generación con calidad completa; enviar la misma instrucción como solicitud nueva de render completo es otra interpretación y puede producir otra toma. Los borradores usan solo HD, mientras que la mejora permite las cuatro clases y usa FHD por defecto. Esto permite explorar primero acción y composición y después terminar la toma elegida al tamaño previsto.
El flujo del fabricante devuelve un identificador de tarea antes de que el MP4 esté listo y proporciona el clip cuando termina el procesamiento. Las ubicaciones firmadas vencen aproximadamente en dos horas, así que conserva el recurso real al elegir la toma. Revisa transiciones de fotogramas clave, cortes, tipografía, detalles del sujeto y unión sonora frente al encargo. Para una secuencia más larga, conserva referencias y contexto final de la toma lograda como entrada del siguiente clip, en vez de suponer que una solicitud breve contiene toda la producción.
Ailoot Ultra · Video POST /v1/videos black-forest-labs/flux-3-video
black-forest-labs/flux-3-video
black-forest-labs/flux-3-videoInicio
FLUX 3 Video crea clips con diálogo, efectos y ambiente sincronizados a partir de texto, imágenes fijadas o un clip que continuar. Los fotogramas clave, composición de varias tomas y mejora de borradores ayudan a desarrollar una secuencia controlada y conservar la toma elegida.
- Entradas aceptadas
- Texto · Imágenes
- Resultados
- Video
Disponible en Ailoot · entradas y métodos
Ailoot Ultra · Video POST /v1/videos
- Entrada
text,image- Salida
video- Formato de salida
- bytes MP4 originales; sin normalización ni transcodificación
| Campo | Tipo | Requisito | Valores y límites | Predeterminado |
|---|---|---|---|---|
Campomodel | Tipostring | RequisitoObligatorio | Valores y límites black-forest-labs/flux-3-video | Predeterminado— |
Campoprompt | Tipostring | RequisitoObligatorio | Valores y límites | Predeterminado— |
Campoduration | Tipointeger | RequisitoObligatorio | Valores y límites 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 Mínimo: 1 Máximo: 600 | Predeterminado— |
Camporesolution | Tipostring | RequisitoOpcional | Valores y límites 720p, 1080p | Predeterminado— |
Campoaspect_ratio | Tipostring | RequisitoOpcional | Valores y límites 21:9, 16:9, 4:3, 1:1, 3:4, 9:16 | Predeterminado— |
Campogenerate_audio | Tipoboolean | RequisitoOpcional | Valores y límites false, true | Predeterminado— |
Campoframe_images | Tipoarray | RequisitoOpcional | Valores y límites Número mínimo de elementos: 1 Número máximo de elementos: 2 Contenido de entrada: Arreglo de objetos de fotograma. Cada objeto tiene type=image_url, image_url que contiene url y frame_type. Usa una URL HTTPS de imagen y establece frame_type en first_frame o last_frame. Cada función de fotograma puede aparecer como máximo una vez. Claves exactas: type, image_url, frame_type Condiciones: Estas claves describen cada objeto de fotograma; image_url contiene únicamente url. Omite frame_images para una solicitud de solo texto. | Predeterminado— |
Campoinput_references | Tipoarray | RequisitoOpcional | Valores y límites | Predeterminado— |
Campoprevious_job_id | Tipostring | RequisitoOpcional | Valores y límites Patrón: ^video_[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$ | Predeterminado— |
Campocallback_url | Tipostring | RequisitoOpcional | Valores y límites Patrón: ^https:// | Predeterminado— |
Camposession_id | Tipostring | RequisitoOpcional | Valores y límites | Predeterminado— |
Campotrace | Tipoobject | RequisitoOpcional | Valores y límites | Predeterminado— |
Campouser | Tipostring | RequisitoOpcional | Valores y límites | Predeterminado— |
Combinaciones de materiales de entrada
Texto a video · Una instrucción escrita. · Obligatorio: model, prompt, duration
Proporciona prompt como texto y duration en segundos enteros. Elige una resolución compatible y, si es necesario, una relación de aspecto.
model: Tipo: string · black-forest-labs/flux-3-video
prompt: Tipo: string · Máximo de bytes UTF-8: 10,000 · Se requiere contenido distinto de espacios en blanco: Sí
Imagen a video · Una instrucción escrita y una imagen del primer fotograma. · Obligatorio: model, prompt, duration, frame_images
frame_images es un arreglo. Cada objeto de fotograma tiene type, image_url y frame_type; image_url contiene url. Establece type en image_url. Usa first_frame con last_frame opcional. Cada función de fotograma puede aparecer como máximo una vez. Proporciona una URL HTTPS pública de imagen para cada fotograma. Elige una resolución compatible y, si es necesario, una relación de aspecto.
Claves exactas: type, image_url, frame_type
model: Tipo: string · black-forest-labs/flux-3-video
prompt: Tipo: string · Máximo de bytes UTF-8: 10,000 · Se requiere contenido distinto de espacios en blanco: Sí
Continue a video · Una instrucción escrita y tu video original completado. · Obligatorio: model, prompt, duration, previous_job_id
Establece previous_job_id en el ID público de video de tu original completado. Usa el mismo modelo, cuenta y clave API. Conserva la identidad de la tarea existente; esta solicitud crea una tarea de continuación independiente. Elige una resolución compatible y, si es necesario, una relación de aspecto.
model: Tipo: string · black-forest-labs/flux-3-video
prompt: Tipo: string · Máximo de bytes UTF-8: 10,000 · Se requiere contenido distinto de espacios en blanco: Sí
Parámetros del método y ciclo de vida
| Parámetro | Contrato |
|---|---|
Parámetrocontent_type | Contratoapplication/json |
Parámetrorequired | Contratomodel, prompt, duration |
Parámetromaterial_types | Contratotext, image |
Parámetroadditional_properties | Contratofalse |
Parámetrooptional_controls | Contratoresolution, aspect_ratio, generate_audio, frame_images, input_references, previous_job_id, callback_url, session_id, trace, user |
Ciclo de vida: submit_once_poll_original
GET /v1/videos/{public_id}
GET /v1/videos/{public_id}/content
Tarifas
Cómo se calcula el cargo definitivo
Las tarifas mostradas permiten estimar el costo antes de la generación. El cargo final se calcula a partir del costo registrado para la generación original. La duración medida de la salida y las cantidades estimadas no son la cantidad facturable final.
Las referencias tarifarias no añaden opciones a la solicitud. Los parámetros admitidos se indican en el método seleccionado.
- Modo fast
- Sin especificar Cuando se selecciona el modo fast
- Modo flex
- Sin especificar Cuando se selecciona el modo flex
- Esfuerzo máximo de razonamiento
- Sin especificar Cuando el esfuerzo máximo de razonamiento usa el ajuste default
Tarifas estimadas para comparar
Precios por configuración
Relaciona cada cargo con las condiciones mostradas. Usa una tarifa para cada conjunto de configuraciones alternativas.
| Configuración | Tabla de tarifas | Cantidad prevista | Componente del cargo | Modo de referencia | Unidad de facturación | Condiciones de facturación | Cargo |
|---|---|---|---|---|---|---|---|
| ConfiguraciónTarifas base por token | Tabla de tarifasTarifa base | Cantidad prevista— | Componente del cargo— | Modo de referencia— | Unidad de facturación— | Condiciones de facturación— | Cargo Entrada · Tokens de entrada · Estimación solo para comparar — / 1K tokens Salida · Tokens de salida · Estimación solo para comparar — / 1K tokens Entrada · Lectura de caché · Estimación solo para comparar — / 1K tokens Entrada · Escritura en caché · Estimación solo para comparar — / 1K tokens Entrada · Escritura en caché, 1 hora · Estimación solo para comparar — / 1K tokens |
| ConfiguraciónTexto a video · Imagen a video (imágenes de fotogramas) · tarifa de referencia | Tabla de tarifas— | Cantidad prevista— | Componente del cargoreference_output_rate | Modo de referenciaTexto a video · Imagen a video (fotogramas) | Unidad de facturaciónpor segundo de salida | Condiciones de facturación— | Cargo Salida · Tarifa de referencia por segundo de video de salida · Estimación solo para comparar $0.34 por segundo de salida |
| ConfiguraciónPrecio del video | Tabla de tarifas— | Cantidad prevista— | Componente del cargo— | Modo de referencia— | Unidad de facturaciónpor segundo de video | Condiciones de facturaciónresolution: 1080p | Cargo Salida · Precio del video · Estimación solo para comparar $0.58 por segundo de video |
| ConfiguraciónPrecio del video | Tabla de tarifas— | Cantidad prevista— | Componente del cargo— | Modo de referencia— | Unidad de facturaciónpor segundo de video | Condiciones de facturaciónresolution: 720p | Cargo Salida · Precio del video · Estimación solo para comparar $0.34 por segundo de video |
| ConfiguraciónPrecio del video | Tabla de tarifas— | Cantidad prevista— | Componente del cargo— | Modo de referencia— | Unidad de facturaciónpor segundo de video | Condiciones de facturaciónentrada: video_continuation; resolución: 1080p | Cargo Salida · Precio del video · Estimación solo para comparar $1.06 por segundo de video |
| ConfiguraciónPrecio del video | Tabla de tarifas— | Cantidad prevista— | Componente del cargo— | Modo de referencia— | Unidad de facturaciónpor segundo de video | Condiciones de facturaciónentrada: video_continuation; resolución: 720p | Cargo Salida · Precio del video · Estimación solo para comparar $0.82 por segundo de video |
| ConfiguraciónCosto estimado de generación | Tabla de tarifas— | Cantidad previstaestimación para una generación | Componente del cargo— | Modo de referencia— | Unidad de facturación— | Condiciones de facturación— | Cargo Salida · Costo estimado de generación · Estimación solo para comparar $1.7 estimación previa a la generación Esta estimación no es un cargo adicional ni una tarifa fija por la generación completada. |
Ailoot reserva un monto estimado antes de la solicitud. Tras obtener el resultado, liquida el cargo definitivo según el uso medido. En las respuestas en flujo, la liquidación usa el registro de uso final. Cómo funcionan la reserva y la liquidación →
Detalles de la tarifa de referencia
Las tablas de referencia del modelo no cambian la selección del método, las cotizaciones ni los cargos. Los cargos aplicados usan las tarifas del método Ailoot seleccionado.
Referencias de precios por configuración de video
Precios por configuración
Relaciona cada cargo con las condiciones mostradas. Usa una tarifa para cada conjunto de configuraciones alternativas.
| Configuración | Condiciones de facturación | Cargo |
|---|---|---|
| ConfiguraciónPrecio del video | Condiciones de facturaciónNo se declara ninguna condición adicional en esta clave de precios. | Cargo Salida · Precio del video $0.34 por segundo de video Referencia de precio publicada para la configuración mostrada. Los cargos finales corresponden a la configuración realmente facturada. |
| ConfiguraciónPrecio del video | Condiciones de facturaciónresolution: 720p | Cargo Salida · Precio del video $0.34 por segundo de video Referencia de precio publicada para la configuración mostrada. Los cargos finales corresponden a la configuración realmente facturada. |
| ConfiguraciónPrecio del video | Condiciones de facturaciónresolution: 1080p | Cargo Salida · Precio del video $0.58 por segundo de video Referencia de precio publicada para la configuración mostrada. Los cargos finales corresponden a la configuración realmente facturada. |
| ConfiguraciónPrecio del video | Condiciones de facturaciónentrada: video_continuation; resolución: 720p | Cargo Salida · Precio del video $0.82 por segundo de video Referencia de precio publicada para la configuración mostrada. Los cargos finales corresponden a la configuración realmente facturada. |
| ConfiguraciónPrecio del video | Condiciones de facturaciónentrada: video_continuation; resolución: 1080p | Cargo Salida · Precio del video $1.06 por segundo de video Referencia de precio publicada para la configuración mostrada. Los cargos finales corresponden a la configuración realmente facturada. |
Solicitudes de ejemplo
Ailoot Ultra · Video
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":"black-forest-labs/flux-3-video","prompt":"A serene mountain landscape at sunset","resolution":"720p"}', 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
Recibir y guardar resultados
Ailoot Ultra · Video
URL firmadas de contenido que te pertenece
GET /v1/videos/{public_id}GET /v1/videos/{public_id}/content
Consultar el estado de la tarea
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
Otras consultas de contenido
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
Conserva todos los resultados completados
Guarda todos los videos completados o archivos recibidos; descarga cada URL de archivo que se haya devuelto.
Conserva cada salida real que te pertenezca y los metadatos medidos que se devuelvan con ella.
Si es necesario revisar la respuesta original
503 result_pending_check + id original + X-Should-Retry:false; nunca repitas el envío original
Campos de respuesta
| Campo | Tipo | Significado |
|---|---|---|
Campoindex | Tipointeger | SignificadoPosición de este video en la lista de salidas, con índice que comienza en cero. |
Campocontent_url | Tipostring | SignificadoURL HTTPS firmada de descarga de este video completado. |
Camposha256 | Tipostring | null | SignificadoResumen SHA-256 de los bytes del video original; null si no está disponible. |
Camposize_bytes | Tipointeger | null | SignificadoTamaño del archivo de video original en bytes; null si no está disponible. |
Campoduration_ms | Tipointeger | null | SignificadoDuración medida del video en milisegundos; null si no está disponible. |
Campowidth | Tipointeger | null | SignificadoAncho del video en píxeles; null si no está disponible. |
Campoheight | Tipointeger | null | SignificadoAlto del video en píxeles; null si no está disponible. |
Campovideo_codec | Tipostring | null | SignificadoIdentificador del códec de video; null si no se registró. |
Campohas_audio | Tipoboolean | null | SignificadoIndica si el video contiene una pista de audio; null si no se midió. |
Campoaudio_codec | Tipostring | null | SignificadoIdentificador del códec de audio; null cuando no se registra ningún identificador. |
Errores y siguientes pasos
| Respuesta | Condición | Siguiente paso |
|---|---|---|
Respuesta404 · not_found_error | CondiciónEl acceso al video no está disponible o no se encontró este ID de video. | Siguiente pasoVerifica el acceso al video. Para un video existente, usa su ID público original y la misma clave API. |
Respuesta401 · authentication_error | CondiciónLa clave API no coincide con la cuenta autenticada. | Siguiente pasoRevisa tu clave API y el acceso de tu cuenta antes de enviar. |
Respuesta400 · invalid_request_error | CondiciónNo se pudo leer la solicitud o el índice de descarga no es válido. | Siguiente pasoCorrige el cuerpo de la solicitud. Para una descarga, elige un índice de salida devuelto por la tarea original. |
Respuesta422 · price_unavailable | CondiciónNo se puede cotizar la configuración de video seleccionada. | Siguiente pasoElige una configuración de video compatible y completa sus opciones obligatorias antes de enviar una solicitud corregida. |
Respuesta422 · invalid_request_error | CondiciónUna entrada de video o la tarea original de continuación no es válida. | Siguiente pasoUsa entradas HTTPS válidas. Para una continuación, usa el ID público de tu video original completado con la misma clave API. |
Respuesta402 · billing_error | CondiciónEl saldo disponible o los límites no permiten reservar fondos. | Siguiente pasoRevisa tu saldo disponible y tus límites antes de enviar una solicitud nueva. |
Respuesta503 · server_error | CondiciónLa verificación del video, el almacenamiento o el acceso al servicio no están disponibles temporalmente. | Siguiente pasoEspera a que el servicio esté disponible. Si ya tienes un ID de video, consulta esa tarea original en lugar de crear otra generación. |
Respuesta503 · result_pending_check | CondiciónEl resultado y el cargo del video original requieren verificación. | Siguiente pasoConserva el ID de video devuelto y consulta esa tarea. No envíes una solicitud de generación de reemplazo mientras se verifica. |
Respuesta503 · owned_result_unavailable | CondiciónLa descarga del video existente no está disponible temporalmente. | Siguiente pasoConsulta más tarde la misma tarea de video y descarga su salida existente. Una generación nueva crea una operación independiente. |
Respuesta409 · video_not_ready | CondiciónEl contenido del video no se ha publicado. | Siguiente pasoConsulta el estado de la tarea original. Descarga cuando indique completed; si indica failed, sigue su aviso de verificación del cargo. |
Alias
Alias del modelo
Ailoot Ultra black-forest-labs/flux-3-video
Alias de rutas de métodos
Usa las rutas de método indicadas arriba.
ID de modelo relacionados
FAQ · Black Forest Labs: FLUX.3 Video
- ¿Qué entradas y resultados están disponibles?
POST /v1/videos·black-forest-labs/flux-3-video:text,image→video- ¿Qué campos utiliza la solicitud?
POST /v1/videos·black-forest-labs/flux-3-video:model,prompt,duration,resolution,aspect_ratio,generate_audio,frame_images,input_references,previous_job_id,callback_url,session_id,trace,user- ¿Qué límites se aplican?
POST /v1/videos·black-forest-labs/flux-3-video:duration.minimum:1;duration.maximum:600;frame_images.max_items:2;frame_images.min_items:1