- En Replicate, la velocidad de ejecución de FLUX mejoró mucho, y hasta se publicó el código de optimización, lo que permite revisar la implementación y hacer extensiones personalizadas
- Según mediciones de extremo a extremo, FLUX.1 [schnell] bajó hasta 0.29 segundos en 512x512·4 steps y 0.72 segundos en 1024x1024·4 steps
- La mejora de velocidad es el resultado de combinar optimizaciones basadas en
flux-fp8-api,torch.compile, los rápidos kernels de atención de CuDNN de Torch nightly y una nueva API HTTP síncrona - La cuantización de
flux-fp8-apicambia ligeramente la salida, pero el impacto en la calidad fue pequeño, y si hace falta se puede desactivar congo_fast=false - Replicate está publicando las mejoras de FLUX y colaborando con el AI Compiler Study Group e investigadores para crear un FLUX rápido y de código abierto
Velocidad de ejecución de FLUX y demo pública
- En Replicate, la ejecución de los modelos FLUX ahora es más rápida, y la implementación de las optimizaciones se publicó como código abierto
- Las velocidades de extremo a extremo medidas desde el oeste de Estados Unidos usando el cliente de Python son las siguientes
- FLUX.1 [schnell], 512x512, 4 steps: 0.29 segundos, P90 0.49 segundos
- FLUX.1 [schnell], 1024x1024, 4 steps: 0.72 segundos, P90 0.95 segundos
- FLUX.1 [dev], 1024x1024, 28 steps: 3.03 segundos, P90 3.90 segundos
- La demo de FLUX.1 [schnell] se ofrece con entrada en tiempo real, y también se puede revisar la app completa y su código fuente
Método de optimización y control de calidad
- Muchos modelos en Replicate reciben contribuciones de la comunidad, pero los modelos FLUX se mantienen en colaboración con Black Forest Labs
- Para mejorar la velocidad se aplicaron dos trabajos
- Se tomó como punto de partida flux-fp8-api de Alex Redden, usando
torch.compiley los rápidos kernels de atención de CuDNN de las builds nightly de Torch - Se añadió la nueva API HTTP síncrona de Replicate para hacer que todos los modelos de imagen funcionen más rápido
- Se tomó como punto de partida flux-fp8-api de Alex Redden, usando
- La cuantización de
flux-fp8-apicambia ligeramente la salida del modelo, pero el impacto en la calidad fue pequeño- Hay una herramienta para comparar salidas de miles de prompts en FLUX.1 [schnell] y FLUX.1 [dev], y se pueden ver directamente los resultados de la comparación
- Si se configura la entrada
go_fastenfalse, esa optimización se puede desactivar
- Como muchas veces no está claro si los proveedores de modelos aplican optimizaciones que afectan la calidad, Replicate publica su método de optimización y permite que el usuario lo desactive
Código abierto y formas de uso
- El código de optimización de FLUX está publicado en github.com/replicate/cog-flux
- Replicate está publicando como código abierto las mejoras de FLUX y colaborando con el AI Compiler Study Group y con investigadores de IA para crear una versión rápida y de código abierto de FLUX
- Estas son algunas cosas que se pueden hacer con FLUX
1 comentarios
Opiniones de Hacker News
Los modelos de texto a imagen se sienten ineficientes. Me pregunto si sería posible y mejor dividirlo en etapas, como texto→grafo de escena→imagen segmentada semánticamente→imagen final
Cada etapa podría entrenarse por separado y modularizarse, y parece que sería más fácil editar la imagen en lugar de rehacerla por completo con la salida de un nuevo prompt. Así, generar algo como "el objeto x está junto al objeto y, y encima hay un texto que dice foo" sería mucho más fácil, y el estilo artístico o el nivel de realismo podrían quedar a cargo de un modelo de renderizado final separado del seguimiento del prompt
Se siente parecido a video2video o a los modelos img2img cuadro por cuadro que mejoran la salida de videojuegos
https://www.theverge.com/2021/5/12/22432945/intel-gta-v-real...
https://www.reddit.com/r/aivideo/comments/1fx6zdr/gta_iv_wit...
Si puedes entrenar una red neuronal que vaya de a→b y otra que vaya de b→c, normalmente puedes reemplazar esa combinación por una red neuronal más simple que vaya directamente de a→c. Tiene sentido, porque al transformar a en b puede perderse información. Una sola red neuronal garantiza que la información relevante de a necesaria para producir c se transmita hacia las capas superiores
Extraer características y razonar como humanos suena plausible, pero al final parece que fue más fácil escalar el reconocimiento de patrones hecho puramente por la computadora
No tiene sentido describir todo de una vez y esperar que el resultado te guste
Empiezan con ruido y agregan gradualmente más detalles
Quiero una foto de pelusa de durazno turquesa congelada
Una licencia no comercial no es open source. Si el titular original de los derechos de autor deja de mantenerlo, nadie más puede continuarlo, o tendría que trabajar como esclavo gratis
El punto central del open source es qué se puede hacer cuando el autor original deja de trabajar en él. El open source le da a cualquiera una licencia para seguir desarrollándolo, y eso obviamente incluye la capacidad de cobrar dinero. Si falta ese aspecto, no debería llamarse open source
Solo FLUX.1 [schnell] es open source (Apache2); FLUX.1 [dev] tiene una licencia no comercial
https://huggingface.co/ostris/OpenFLUX.1/
Si quieres probar FLUX.schnell fácilmente, basta con poner el prompt en una URL de Pollinations
https://pollinations.ai/p/a_donkey_holding_a_sign_with_flux_...
https://pollinations.ai/p/a_donkey_holding_a_sign_with_flux_...
https://pollinations.ai/p/Minimalist%20and%20conceptual%20ar...
La velocidad es realmente sorprendente. Con solo tres GPU L40S generamos 8000 imágenes para usuarios cada 30 minutos. Para que conste, soy de Pollinations
Lo que más me gusta hacer con Flux es crear imágenes con fondo blanco para Substack. El texto que las acompaña queda excelente y, a través del artwork, también se puede comunicar algo visualmente
[1]https://substackcdn.com/image/fetch/w_1456,c_limit,f_webp,q_...
No sé si tengo una postura clara al respecto. La tecnología sigue avanzando. Aun así, es interesante
Flux es uno de los principales candidatos entre los sistemas de generación alojados localmente en cuanto a seguimiento del prompt, pero la poca profundidad de campo que aparece por todas partes es irritantemente difícil de eliminar
Acabo de cancelar mi suscripción a Midjourney. Para el tipo de trabajo que quiero hacer, se siente demasiado atrasado
También estuve pensando bastante en usar Replicate e Ideogram
Es una locura que, cuando ni siquiera pasó un año desde la caída de Emad, ya haya aparecido un modelo local, open source y mejor. Muestra lo poco profundos que son los fosos defensivos de estas empresas, y gracias a que queman enormes cantidades de efectivo, nosotros salimos ganando
FLUX 1.1 ¿alguien sabe con qué se entrenó? En el modelo pro generé casi 100 imágenes con prompts de dos palabras tipo "nombre de archivo de cámara + una palabra simple", y todas parecían fotos del celular de alguien
Si no hubiera texto, ni se me habría ocurrido pensar que eran imágenes de IA. A veces parecían fotos recortadas, y salían muchas fotos de comida, mesas desordenadas y departamentos
¿Scrapearon publicaciones públicas de Facebook, Snapchat, Vkontakte? ¿Compraron imágenes privadas de OneDrive o Dropbox? Si pongo un nombre femenino como segunda palabra, casi siempre se activa el filtro NSFW. Por eso supongo que el set de entrenamiento incluye imágenes bastante privadas
Véalo por su cuenta. Cuidado con la música de reproducción automática
people: https://vm.tiktok.com/ZGdeXEhMg/
food and stuff: https://vm.tiktok.com/ZGdeXEBDK/
signs: https://vm.tiktok.com/ZGdeXoAgy/
[edit] Ver estas imágenes resulta incómodo, como si uno estuviera mirando fotos privadas de alguien. En un prompt como "IMG00012.JPG forbid" no hay suficiente información de guía como para describir estas imágenes, así que no pueden venir de otro lado que no sean los datos de entrenamiento
No creo que FLUX 1.1 pro haya usado un set de entrenamiento fundamentalmente distinto al de modelos públicos anteriores. Pero sí puede ser más vulnerable a este tipo de generación
La sensación es realmente extraña. Así que vuelvo a preguntar: ¿hay información sobre los datos de entrenamiento usados para estos modelos?
Estos dos posts de Reddit tratan un poco esta convención de nombres de archivo
DSC_0001-9999.JPG - valor predeterminado de Nikon
DSCF0001-9999.JPG - valor predeterminado de Fujifilm
IMG_0001-9999.JPG - imagen genérica
P0001-9999.JPG - valor predeterminado de Panasonic
CIMG0001-9999.JPG - valor predeterminado de Casio
PICT0001-9999.JPG - valor predeterminado de Sony
Photo_0001-9999.JPG - foto de Android
VID_0001-9999.mp4 - video genérico
Además, también hice una versión con nombres de archivo de software 3D. Probé todos, y solo algunos funcionaron
Autodesk Filmbox (FBX): my_model0001-9999.fbx
Stereolithography (STL): Model0001-9999.stl
3ds Max: 3ds_Scene0001-9999.max
Cinema 4D: Project0001-9999.c4d
Maya (ASCII): Animation0001-9999.ma
SketchUp: SketchUp0001-9999.skp
[1]: https://www.reddit.com/r/StableDiffusion/comments/1fxkt3p/co...
[2]: https://www.reddit.com/r/StableDiffusion/comments/1fxdm1n/i_...
Junto con una fuerte corrección sobre el texto, es muy probable que hayan hecho mucho tuning para que el modelo prefiera imágenes al estilo flux
Sea cual sea el proceso que sigan, terminaron haciendo que el modelo sea tan hipersensible que ciertos términos, con solo aparecer, actúan con más fuerza que una LoRA
Las fotos que mostraste no son particularmente notables en el contexto completo. No hace falta mucho esfuerzo para salirse del formato de imagen por defecto y obtener resultados ultrarrealistas. Personalmente, creo que no se trata tanto de que intenten ocultar el ultrarrealismo, sino de ajustar los valores predeterminados a las imágenes que la gente quiere
No sé por qué todos los comentarios críticos sobre Flux reciben downvotes o flags, y me parece bastante raro
Apuntan a una página comparativa afirmando que la calidad es similar, pero para empezar es clarísimo que tiene mucho menos detalle. Peor aún es el ejemplo de "vista frontal de 3/4 de un Corvette 2017 amarillo tomando una curva en una carretera de montaña con vista a un valle verde en un día nublado"
El modelo original muestra el frente, mientras que la versión rápida muestra la parte trasera del Corvette. Es una imagen completamente distinta. No es similar; es notablemente diferente
https://flux-quality-comparison.vercel.app/
Cada vez que aparece un hilo sobre un modelo de Meta, llueven correcciones diciendo que no es realmente open source
Entonces con FLUX también hay que ser claros. De los modelos publicados, el único open source es FLUX schnell, y como fue destilado de un modelo propietario es mucho más difícil de manejar
Irónicamente, desde un punto de vista práctico, los modelos Llama de Meta tienen licencias mucho más permisivas, y además es muy fácil hacerles fine-tuning con frameworks open source de la propia Meta o con varias herramientas de terceros. En cambio, FLUX schnell no
Creo que la comunidad open source debería concentrar esfuerzos en OpenFLUX o proyectos similares que intenten corregir las restricciones artificiales de Schnell: https://huggingface.co/ostris/OpenFLUX.1
Dicen que “agregaron una nueva API HTTP síncrona que hace que todos los modelos de imagen de Replicate sean mucho más rápidos”, pero ¿por qué sería más rápido por ser síncrona? Entré a ver
https://replicate.com/changelog/2024-10-09-synchronous-api
“Ahora las bibliotecas cliente y la API hacen que ejecutar modelos sea mucho más rápido, especialmente cuando se devuelven archivos”
…se agradece, pero ¿qué?
Comparto la frustración como desarrollador. Si quieren que lo recordemos y nos volvamos defensores, ojalá lo expliquen un poco mejor