NVIDIA, en colaboración con Black Forest Labs (BFL), optimizó la serie de modelos de texto a imagen FLUX.1. Este avance permite un rendimiento de generación de imágenes FP4 en las NVIDIA Blackwell GeForce RTX 50 Series GPUs.
La optimización FLUX.1 Kontext [dev] demostró que el aprendizaje en contexto es una técnica viable para modelos de generación visual, no solo para modelos de lenguaje grande (LLMs). Para mejorar la accesibilidad, NVIDIA y BFL facilitaron una experiencia de edición casi en tiempo real utilizando cuantización de baja precisión.
Avances en FLUX.2
FLUX.2 representa un avance significativo, brindando referencias de múltiples imágenes y calidad comparable a los mejores modelos empresariales. Sin embargo, debido a la alta demanda de recursos computacionales de FLUX.2 [dev], BFL, Comfy y NVIDIA colaboraron para lograr una mejora notable: reducción de más del 40% en los requisitos de memoria de FLUX.2 [dev] y habilitación del despliegue local a través de ComfyUI. Esta optimización, que utiliza precisión FP8, ha convertido a FLUX.2 [dev] en uno de los modelos más populares en el ámbito de la generación de imágenes.
Con FLUX.2 [dev] establecido como el estándar de oro para modelos de pesos abiertos, el equipo de NVIDIA, en colaboración con BFL, comparte ahora el siguiente avance en rendimiento: aceleración de 4 bits para FLUX.2 [dev] en los potentes GPUs Blackwell de NVIDIA, incluyendo NVIDIA DGX B200 y NVIDIA DGX B300.
Optimización de FLUX.2 [dev]
El modelo FLUX.2 [dev] consta de tres componentes clave: un modelo de incrustación de texto, específicamente Mistral Small 3, el modelo de transformador de difusión y un autoencoder. El equipo de NVIDIA aplicó varias técnicas de optimización a la implementación de difusores de código abierto utilizando una versión prototipo en la rama TensorRT-LLM/feat/visual_gen:
- Cuantización NVFP4
- Caching consciente de incrustación de tiempo (TeaCache)
- Gráficas CUDA
- Compilación de Torch
- Inferencia en múltiples GPUs
Cuantización NVFP4
NVFP4 avanza el concepto de formatos de datos microscalados introduciendo una estrategia de escalado en dos niveles. Este enfoque minimiza la degradación de precisión y utiliza dos mecanismos: escalado por tensor y escalado por bloque.
El escalado por tensor es un valor almacenado en precisión FP32, que ajusta la distribución general del tensor y puede ser calculado de forma estática o dinámica. En cambio, el escalado por bloque se calcula dinámicamente en tiempo real dividiendo el tensor en bloques de 16 elementos.
Para mayor flexibilidad, los usuarios pueden optar por mantener capas específicas en una mayor precisión y aplicar cuantización dinámica, como se muestra en el siguiente ejemplo utilizando FLUX.2 [dev]:
exclude_pattern = r"^(?!.*(embedder|norm_out|proj_out|to_add_out|to_added_qkv|stream)).*"


