Herramientas de IA 101
Flux de Black Forest Labs: El próximo salto en modelos de texto a imagen. ¿Es mejor que Midjourney?
Black Forest Labs, el equipo detrás del modelo de difusión estable pionero, ha lanzado Flux – una suite de modelos de vanguardia que prometen redefinir las capacidades de la generación de imágenes de IA. Pero ¿Flux realmente representa un salto adelante en el campo, y cómo se compara con líderes de la industria como Midjourney? Sumérjamonos profundamente en el mundo de Flux y exploremos su potencial para remodelar el futuro del arte y los medios generados por IA.
El nacimiento de Black Forest Labs
Black Forest Labs no es solo otra startup de IA; es una potencia de talento con un historial de desarrollar modelos de IA generativos fundamentales. El equipo incluye a los creadores de VQGAN, Latent Diffusion y la familia de modelos de difusión estable que han conquistado el mundo del arte de IA.
Con una ronda de financiación de serie inicial de $31 millones liderada por Andreessen Horowitz y apoyo de inversores ángeles notables, Black Forest Labs se ha posicionado a la vanguardia de la investigación de IA generativa. Su misión es clara: desarrollar y avanzar en modelos de aprendizaje profundo generativos de vanguardia para medios como imágenes y videos, mientras se amplían los límites de la creatividad, la eficiencia y la diversidad.
Presentando la familia de modelos Flux
Black Forest Labs ha presentado la suite de modelos de texto a imagen FLUX.1, diseñada para establecer nuevos estándares en detalle de imagen, adherencia a la promoción, diversidad de estilo y complejidad de escena. La familia Flux consta de tres variantes, cada una adaptada a diferentes casos de uso y niveles de accesibilidad:
- FLUX.1 [pro]: El modelo insignia, que ofrece un rendimiento de nivel superior en la generación de imágenes con un seguimiento de promoción superior, calidad visual, detalle de imagen y diversidad de salida. Disponible a través de una API, se posiciona como la opción premium para uso profesional y empresarial.
- FLUX.1 [dev]: Un modelo de peso abierto, destilado de orientación para aplicaciones no comerciales. Está diseñado para lograr una calidad y capacidades de adherencia a la promoción similares a las de la versión pro, mientras que es más eficiente.
- FLUX.1 [schnell]: El modelo más rápido de la suite, optimizado para el desarrollo local y el uso personal. Está disponible abiertamente bajo una licencia Apache 2.0, lo que lo hace accesible para una amplia gama de aplicaciones y experimentos.
Proporcionaré algunos ejemplos de promociones únicas y creativas que muestran las capacidades de FLUX.1. Estas promociones resaltan la fuerza del modelo en el manejo de texto, composiciones complejas y elementos desafiantes como las manos.
- Mezcla de estilo artístico con texto: “Crea un retrato de Vincent van Gogh en su estilo característico, pero reemplaza su barba con pinceladas que forman las palabras ‘Starry Night’ en cursiva”.
- Escena de acción dinámica con integración de texto: “Un superhéroe que irrumpe en una página de cómic. Las líneas de acción y los efectos de sonido deben formar el nombre del héroe ‘FLUX FORCE’ en tipografía dinámica y negrita”.
- Concepto surrealista con colocación de objeto precisa: “Primer plano de un gato con colores marrón y blanco bajo la luz del sol de la ventana. Enfoque nítido en la textura y el color del ojo. Iluminación natural para capturar el brillo y la profundidad auténticos del ojo”.
Estas promociones están diseñadas para desafiar las capacidades de FLUX.1 en la representación de texto, la composición de escenas complejas y la creación detallada de objetos, mientras también muestran su potencial para la generación de imágenes creativas y únicas.
Innovaciones técnicas detrás de Flux
En el corazón de las impresionantes capacidades de Flux se encuentra una serie de innovaciones técnicas que lo distinguen de sus predecesores y contemporáneos:
Modelos de flujo impulsados por transformadores a gran escala
Todos los modelos FLUX.1 públicos están construidos sobre una arquitectura híbrida que combina bloques de transformadores de difusión multimodal y paralela, escalada a un impresionante 12 mil millones de parámetros. Esto representa un salto significativo en el tamaño y la complejidad del modelo en comparación con muchos modelos de texto a imagen existentes.
Los modelos Flux mejoran los modelos de difusión de estado de la técnica al incorporar la coincidencia de flujo, un método general y conceptualmente simple para entrenar modelos generativos. La coincidencia de flujo proporciona un marco más flexible para el modelado generativo, con los modelos de difusión siendo un caso especial dentro de este enfoque más amplio.
Para mejorar el rendimiento del modelo y la eficiencia del hardware, Black Forest Labs ha integrado incrustaciones de posición rotativa y capas de atención paralela. Estas técnicas permiten un mejor manejo de las relaciones espaciales en las imágenes y un procesamiento más eficiente de grandes conjuntos de datos.
Innovaciones arquitectónicas
Desglosemos algunos de los elementos arquitectónicos clave que contribuyen al rendimiento de Flux:
- Arquitectura híbrida: Al combinar bloques de transformadores de difusión multimodal y paralela, Flux puede procesar eficazmente tanto la información textual como visual, lo que conduce a una mejor alineación entre las promociones y las imágenes generadas.
- Coordinación de flujo: Este enfoque permite un entrenamiento más flexible y eficiente de los modelos generativos. Proporciona un marco unificado que abarca los modelos de difusión y otras técnicas generativas, lo que podría conducir a una generación de imágenes más robusta y versátil.
- Incrustaciones de posición rotativa: Estas incrustaciones ayudan al modelo a comprender y mantener mejor las relaciones espaciales dentro de las imágenes, lo cual es crucial para generar contenido visual coherente y detallado.
- Capas de atención paralela: Esta técnica permite un procesamiento más eficiente de los mecanismos de atención, que son críticos para comprender las relaciones entre diferentes elementos en tanto las promociones de texto como las imágenes generadas.
- Escalado a 12 mil millones de parámetros: El tamaño del modelo permite que capture y sintetice patrones y relaciones más complejos, lo que podría llevar a una mayor calidad y diversidad en las salidas.
Benchmarkeando Flux: Un nuevo estándar en síntesis de imágenes
Black Forest Labs afirma que FLUX.1 establece nuevos estándares en síntesis de imágenes, superando a modelos populares como Midjourney v6.0, DALL·E 3 (HD) y SD3-Ultra en varios aspectos clave:
- Calidad visual: Flux tiene como objetivo producir imágenes con mayor fidelidad, detalles más realistas y un atractivo estético general mejorado.
- Seguimiento de promoción: El modelo está diseñado para adherirse más estrechamente a las promociones de texto dadas, generando imágenes que reflejan con mayor precisión las intenciones del usuario, especialmente para solicitudes complejas o matizadas.
- Variabilidad de tamaño y relación de aspecto: Flux admite una amplia gama de relaciones de aspecto y resoluciones, desde 0,1 a 2,0 megapíxeles, ofreciendo flexibilidad para diversos casos de uso.
- Tipografía: El modelo muestra capacidades mejoradas en la generación y representación de texto dentro de las imágenes, un desafío común para muchos modelos de texto a imagen.
- Diversidad de salida: Flux se ha afinado específicamente para preservar toda la diversidad de salida desde el preentrenamiento, ofreciendo una gama más amplia de posibilidades creativas.
Flux vs. Midjourney: Un análisis comparativo
Ahora, abordemos la pregunta candente: ¿Es Flux mejor que Midjourney? Para responder esto, debemos considerar varios factores:
Calidad de la imagen y estética
Tanto Flux como Midjourney son conocidos por producir imágenes de alta calidad y visualmente impresionantes. Midjourney ha sido elogiado por su estilo artístico y capacidad para crear imágenes con un atractivo estético distintivo. Flux, con su arquitectura avanzada y un recuento de parámetros más grande, apunta a igualar o superar este nivel de calidad.
Los ejemplos iniciales de Flux muestran detalles impresionantes, texturas realistas y un fuerte dominio de la iluminación y la composición. Sin embargo, la naturaleza subjetiva del arte hace que sea difícil afirmar con certeza la superioridad en este área. Los usuarios pueden encontrar que cada modelo tiene sus fortalezas en diferentes estilos o tipos de imágenes.
Seguimiento de promoción
Un área donde Flux podría superar a Midjourney es en el seguimiento de promoción. Black Forest Labs ha enfatizado su enfoque en mejorar la capacidad del modelo para interpretar y ejecutar promociones de texto de manera precisa. Esto podría resultar en imágenes generadas que se ajusten más estrechamente a las intenciones del usuario, especialmente para solicitudes complejas o matizadas.
Midjourney ha sido criticado ocasionalmente por tomar libertades creativas con las promociones, lo que puede llevar a resultados hermosos pero inesperados. El enfoque de Flux puede ofrecer un control más preciso sobre la salida generada.
Velocidad y eficiencia
Con la introducción de FLUX.1 [schnell], Black Forest Labs está apuntando a una de las ventajas clave de Midjourney: la velocidad. Midjourney es conocido por sus tiempos de generación rápidos, lo que lo ha hecho popular para procesos creativos iterativos. Si Flux puede igualar o superar esta velocidad mientras mantiene la calidad, podría ser un punto de venta significativo.
Accesibilidad y facilidad de uso
Midjourney ha ganado popularidad en parte debido a su interfaz de usuario amigable y su integración con Discord. Flux, siendo más nuevo, puede necesitar tiempo para desarrollar interfaces de usuario igualmente accesibles. Sin embargo, la naturaleza de código abierto de FLUX.1 [schnell] y [dev] podría llevar a una amplia gama de herramientas y integraciones desarrolladas por la comunidad, potencialmente superando a Midjourney en términos de flexibilidad y opciones de personalización.
Capacidades técnicas
La arquitectura avanzada y el tamaño más grande del modelo de Flux sugieren que puede tener más capacidad bruta en términos de comprensión de promociones complejas y generación de detalles intrincados. El enfoque de coincidencia de flujo y la arquitectura híbrida podrían permitir que Flux maneje una gama más amplia de tareas y genere salidas más diversas.
Consideraciones éticas y mitigación de sesgos
Tanto Flux como Midjourney enfrentan el desafío de abordar preocupaciones éticas en la generación de imágenes de IA, como sesgos, desinformación y cuestiones de derechos de autor. El énfasis de Black Forest Labs en la transparencia y su compromiso de hacer que los modelos estén ampliamente disponibles podrían potencialmente conducir a una supervisión comunitaria más robusta y mejoras más rápidas en estas áreas.
Implementación de código y despliegue
Usando Flux con Diffusers
Los modelos Flux se pueden integrar fácilmente en flujos de trabajo existentes utilizando la biblioteca Hugging Face Diffusers. Aquí hay una guía paso a paso para usar FLUX.1 [dev] o FLUX.1 [schnell] con Diffusers:
- Primero, instale o actualice la biblioteca Diffusers:
!pip install git+https://github.com/huggingface/diffusers.git
- Luego, puede usar el
FluxPipelinepara ejecutar el modelo:
import torch
from diffusers import FluxPipeline
<p># Cargue el modelo
pipe = FluxPipeline.from_pretrained("black-forest-labs/FLUX.1-dev", torch_dtype=torch.bfloat16)</p>
<p># Habilite el desvío de CPU para ahorrar VRAM (opcional)
pipe.enable_model_cpu_offload()</p>
<p># Genere una imagen
prompt = "Un gato sosteniendo un letrero que dice hola mundo"
image = pipe(
prompt,
height=1024,
width=1024,
guidance_scale=3.5,
output_type="pil",
num_inference_steps=50,
max_sequence_length=512,
generator=torch.Generator("cpu").manual_seed(0)
).images[0]</p>
<p># Guarde la imagen generada
image.save("flux-dev.png")
Este fragmento de código demuestra cómo cargar el modelo FLUX.1 [dev], generar una imagen a partir de una promoción de texto y guardar el resultado.
Desplegando Flux como una API con LitServe
Para aquellos que buscan desplegar Flux como un servicio de API escalable, Black Forest Labs proporciona un ejemplo utilizando LitServe, un motor de inferencia de alto rendimiento. Aquí hay una descripción del proceso de despliegue:
Defina el servidor de modelo:
from io import BytesIO
from fastapi import Response
import torch
import time
import litserve as ls
from optimum.quanto import freeze, qfloat8, quantize
from diffusers import FlowMatchEulerDiscreteScheduler, AutoencoderKL
from diffusers.models.transformers.transformer_flux import FluxTransformer2DModel
from diffusers.pipelines.flux.pipeline_flux import FluxPipeline
from transformers import CLIPTextModel, CLIPTokenizer, T5EncoderModel, T5TokenizerFast
<p>class FluxLitAPI(ls.LitAPI):
def setup(self, device):
# Cargue los componentes del modelo
scheduler = FlowMatchEulerDiscreteScheduler.from_pretrained("black-forest-labs/FLUX.1-schnell", subfolder="scheduler")
text_encoder = CLIPTextModel.from_pretrained("openai/clip-vit-large-patch14", torch_dtype=torch.bfloat16)
tokenizer = CLIPTokenizer.from_pretrained("openai/clip-vit-large-patch14", torch_dtype=torch.bfloat16)
text_encoder_2 = T5EncoderModel.from_pretrained("black-forest-labs/FLUX.1-schnell", subfolder="text_encoder_2", torch_dtype=torch.bfloat16)
tokenizer_2 = T5TokenizerFast.from_pretrained("black-forest-labs/FLUX.1-schnell", subfolder="tokenizer_2", torch_dtype=torch.bfloat16)
vae = AutoencoderKL.from_pretrained("black-forest-labs/FLUX.1-schnell", subfolder="vae", torch_dtype=torch.bfloat16)
transformer = FluxTransformer2DModel.from_pretrained("black-forest-labs/FLUX.1-schnell", subfolder="transformer", torch_dtype=torch.bfloat16)</p>
<p># Cuantice a 8 bits para que quepa en una GPU L4
quantize(transformer, weights=qfloat8)
freeze(transformer)
quantize(text_encoder_2, weights=qfloat8)
freeze(text_encoder_2)</p>
<p># Inicialice la tubería Flux
self.pipe = FluxPipeline(
scheduler=scheduler,
text_encoder=text_encoder,
tokenizer=tokenizer,
text_encoder_2=None,
tokenizer_2=tokenizer_2,
vae=vae,
transformer=None,
)
self.pipe.text_encoder_2 = text_encoder_2
self.pipe.transformer = transformer
self.pipe.enable_model_cpu_offload()</p>
<p>def decode_request(self, request):
return request["prompt"]</p>
<p>def predict(self, prompt):
image = self.pipe(
prompt=prompt,
width=1024,
height=1024,
num_inference_steps=4,
generator=torch.Generator().manual_seed(int(time.time())),
guidance_scale=3.5,
).images[0]
return image</p>
<p>def encode_response(self, image):
buffered = BytesIO()
image.save(buffered, format="PNG")
return Response(content=buffered.getvalue(), headers={"Content-Type": "image/png"})</p>
<p># Inicie el servidor
if __name__ == "__main__":
api = FluxLitAPI()
server = ls.LitServer(api, timeout=False)
server.run(port=8000)</p>
Este código establece una API de LitServe para Flux, incluyendo la carga del modelo, el manejo de solicitudes, la generación de imágenes y la codificación de respuestas.
Inicie el servidor:
</pre> python server.py <pre>
Use la API del modelo:
Puede probar la API utilizando un script de cliente simple:
import requests
import json
<p>url = "http://localhost:8000/predict"
prompt = "un robot sentado en una silla pintando una imagen en un caballete de un paisaje urbano futurista, arte pop"</p>
<p>response = requests.post(url, json={"prompt": prompt})
with open("generated_image.png", "wb") as f:
f.write(response.content)</p>
<p>print("Imagen generada y guardada como generated_image.png")</p>
Características clave del despliegue
- Arquitectura sin servidor: La configuración de LitServe permite un despliegue escalable y sin servidor que puede escalar a cero cuando no se utiliza.
- API privada: Puede desplegar Flux como una API privada en su propia infraestructura.
- Soporte multi-GPU: La configuración está diseñada para funcionar de manera eficiente en varios GPUs.
- Cuantización: El código demuestra cómo cuantizar el modelo a precisión de 8 bits, lo que permite que se ejecute en hardware menos potente como las GPUs L4 de NVIDIA.
- Desvío de CPU: El método
enable_model_cpu_offload()se utiliza para conservar la memoria de la GPU al desviar partes del modelo a la CPU cuando no se utilizan.
Aplicaciones prácticas de Flux
La versatilidad y el poder de Flux abren un amplio rango de aplicaciones potenciales en diversas industrias:
- Industrias creativas: Los diseñadores gráficos, ilustradores y artistas pueden utilizar Flux para generar rápidamente arte conceptual, tableros de estado de ánimo y inspiraciones visuales.
- Marketing y publicidad: Los marketers pueden crear visuales personalizados para campañas, contenido de redes sociales y prototipos de productos con una velocidad y calidad sin precedentes.
- Desarrollo de juegos: Los diseñadores de juegos pueden utilizar Flux para prototipar rápidamente entornos, personajes y activos, agilizando el proceso de preproducción.
- Arquitectura y diseño de interiores: Los arquitectos y diseñadores pueden generar visualizaciones realistas de espacios y estructuras basadas en descripciones textuales.
- Educación: Los educadores pueden crear ayudas visuales personalizadas y ilustraciones para mejorar los materiales de aprendizaje y hacer que los conceptos complejos sean más accesibles.
- Cine y animación: Los artistas de storyboards y animadores pueden utilizar Flux para visualizar rápidamente escenas y personajes, acelerando el proceso de previsualización.
El futuro de Flux y la generación de texto a imagen
Black Forest Labs ha dejado claro que Flux es solo el comienzo de sus ambiciones en el espacio de la IA generativa. Han anunciado planes para desarrollar sistemas generativos de texto a video competitivos, prometiendo capacidades de creación y edición precisas en alta definición y una velocidad sin precedentes.
Esta hoja de ruta sugiere que Flux no es solo un producto independiente, sino parte de un ecosistema más amplio de herramientas de IA generativa. A medida que la tecnología evoluciona, podemos esperar ver:
- Integración mejorada: Flujos de trabajo sin problemas entre la generación de texto a imagen y texto a video, permitiendo la creación de contenido más complejo y dinámico.
- Personalización mejorada: Un control más fino sobre el contenido generado, posiblemente a través de técnicas avanzadas de ingeniería de promociones o interfaces de usuario intuitivas.
- Generación en tiempo real: A medida que modelos como FLUX.1 [schnell] sigan mejorando, podemos ver capacidades de generación de imágenes en tiempo real que podrían revolucionar la creación de contenido en vivo y los medios interactivos.
- Generación transmodal: La capacidad de generar y manipular contenido a través de múltiples modalidades (texto, imagen, video, audio) de manera cohesiva y integrada.
- Desarrollo de IA ético: Un enfoque continuo en el desarrollo de modelos de IA que no solo sean poderosos, sino también responsables y éticamente sólidos.
Conclusión: ¿Es Flux mejor que Midjourney?
La pregunta de si Flux es “mejor” que Midjourney no se puede responder con un simple sí o no. Ambos modelos representan la vanguardia de la tecnología de generación de texto a imagen, cada uno con sus propias fortalezas y características únicas.
Flux, con su arquitectura avanzada y énfasis en el seguimiento de promociones, puede ofrecer un control más preciso y una calidad potencialmente mayor en ciertos escenarios. Sus variantes de código abierto también proporcionan oportunidades para la personalización y la integración que podrían ser muy valiosas para los desarrolladores y los investigadores.
Midjourney, por otro lado, tiene un historial comprobado, una gran base de usuarios activos y un estilo artístico distintivo que muchos usuarios han llegado a amar. Su integración con Discord y su interfaz de usuario amigable lo han hecho muy accesible para creativos de todos los niveles de habilidad técnica.
En última instancia, el modelo “mejor” puede depender del caso de uso específico, las preferencias personales y las capacidades en evolución de cada plataforma. Lo que es claro es que Flux representa un paso significativo hacia adelante en el campo de la IA generativa, introduciendo técnicas innovadoras y empujando los límites de lo que es posible en la síntesis de texto a imagen.


















