Entendiendo la IA visual generativa multimodal

VVercel
AI/미래기술마케팅/광고사진/예술

Transcript

00:00:00Es bueno ver a tantos aquí.
00:00:02Como ya mencioné en la introducción,
00:00:05les daré una inmersión en Flux,
00:00:07nuestra familia de modelos para generar y editar imágenes.
00:00:12Ya estaba...
00:00:13¿funciona.
00:00:14Soy Andy, cofundador de Black Force Labs.
00:00:17Antes de empezar con el modelo,
00:00:19quiero darles una visión general de lo que hacemos?
00:00:24En Black Force Labs,
00:00:25creemos que los medios visuales se convertirán en la interfaz central para la comunicación humana en el futuro.
00:00:34Nos vemos como el proveedor de infraestructura central para impulsar todas las imágenes y videos que los humanos usarán para interactuar entre sí,
00:00:46y no solo lo que las cámaras pueden capturar,
00:00:50sino mucho más allá.
00:00:51Con eso en mente, fundamos la empresa en agosto de 2024.
00:00:56Desde entonces,
00:00:57hemos crecido hasta tener 45 empleados y estamos distribuidos en dos sedes.
00:01:03La sede principal está en Friburgo,
00:01:06en la Selva Negra de Alemania,
00:01:08y también tenemos una oficina aquí en San Francisco.
00:01:12Desde que lanzamos nuestra familia de generación de imágenes,
00:01:17Flux,
00:01:18en agosto de 2024,
00:01:19cuando fundamos la empresa,
00:01:21siempre hemos estructurado los lanzamientos en tres niveles diferentes y hemos avanzado constantemente la familia de modelos.
00:01:32Los niveles son los siguientes.
00:01:34Tenemos los modelos Pro.
00:01:36Son superpotentes y los modelos más rápidos que ofrecemos.
00:01:41Están disponibles solo a través de la API de VFL y también a través de un par de socios de inferencia como,
00:01:49por ejemplo,
00:01:50File y Replicate.
00:01:52Supongo que también los conocen.
00:01:54Son muy fáciles de integrar y escalan a volúmenes masivos casi al instante..
00:02:03Este es el primer nivel,
00:02:05pero como algunos de ustedes sabrán,
00:02:07mis cofundadores y yo tenemos raíces muy fuertes en el código abierto,
00:02:12similar,
00:02:12creo,
00:02:13al fundador que nos ha invitado hoy.
00:02:15También somos los desarrolladores originales detrás de Stable Diffusion.
00:02:20Seguimos fieles a eso.
00:02:22Amamos la comunidad de código abierto,
00:02:24y por eso también ofrecemos pesos abiertos y modelos de código abierto..
00:02:29Tenemos los modelos Flux Dev.
00:02:32Estos están disponibles públicamente para descargar,
00:02:36para experimentar.
00:02:37Son totalmente personalizables y ofrecen mucha flexibilidad para cualquiera que quiera usarlos.
00:02:45Finalmente, tenemos los modelos Flux Schnell.
00:02:48Son completamente de código abierto y son,
00:02:51en cierto modo,
00:02:53el punto de entrada perfecto al ecosistema Flux.
00:02:56Hablando del ecosistema,
00:02:58si miran el Model Atlas en Hugging Face,
00:03:01que visualiza los,
00:03:03creo,
00:03:03modelos de base de código abierto más utilizados en diferentes dominios,
00:03:09podemos ver que el modelo más grande en Hugging Face con el ecosistema más amplio es nuestro modelo Flux Dev.
00:03:17Eso demuestra que Flux ya se ha convertido en el estándar para la generación abierta de imágenes.
00:03:25Obviamente,
00:03:26buscamos seguir avanzando o extendiendo nuestra distribución en el futuro.
00:03:32Eso es todo por la empresa.
00:03:34Déjenme ver si sigue sin funcionar.
00:03:36En fin.
00:03:37Ahora, la parte principal de la charla..
00:03:41Quería profundizar en Flux con ustedes,
00:03:44especialmente en nuestro modelo más reciente,
00:03:48Flux Context,
00:03:49que unifica la generación de texto a imagen y la edición.
00:03:53Hoy quiero hablarles de cómo unificar esto..
00:03:56Un par de palabras antes de eso.
00:03:59Creo que es superimportante tener este modelo conjunto porque,
00:04:03obviamente,
00:04:04la generación de imágenes tiene muchas aplicaciones interesantes y lo hemos visto el año pasado,
00:04:10pero la edición de imágenes,
00:04:12hasta este año,
00:04:13no había mantenido el mismo ritmo de desarrollo.
00:04:16La edición de imágenes es,
00:04:18de hecho,
00:04:19un caso de uso superimportante.
00:04:21Nos permite iterar sobre imágenes existentes y,
00:04:24creo,
00:04:25da a las personas un nivel adicional de control para modificar imágenes con precisión y demás.
00:04:31Esto es superimportante.
00:04:33Con Flux Context,
00:04:34hemos creado el momento decisivo para la edición de imágenes.
00:04:38Fue lanzado en junio de 2025.
00:04:40Es un modelo que combina la generación de imágenes con elementos para la edición como la consistencia de personajes,
00:04:48la referencia de estilo,
00:04:50la edición local y todo eso a una velocidad casi en tiempo real.
00:04:54Lo veremos más tarde..
00:04:57Pero como buen ejemplo, les traje esta fila de imágenes.
00:05:01De izquierda a derecha, empezamos con una imagen de entrada.
00:05:05Luego podemos pedirle al modelo que elimine este objeto de su cara y después podemos colocarla en un contexto completamente nuevo manteniendo la consistencia del personaje.
00:05:16Esto es superimportante.
00:05:18Se hizo mucho trabajo de ajuste fino en el pasado para lograr este tipo de consistencia de personajes en el modelo,
00:05:25basándose en modelos de texto a imagen disponibles públicamente,
00:05:29pero esta edición instantánea de imágenes nos permitió eliminar todo ese ajuste fino,
00:05:35que siempre es un poco laborioso,
00:05:37diría yo.
00:05:38Es realmente asombroso que esto ahora tarde cuatro segundos o algo así.
00:05:43Finalmente, podemos simplemente cambiar el escenario.
00:05:46En este caso,
00:05:47la imagen de la derecha,
00:05:49la cambiamos a una escena invernal.
00:05:51Genial.
00:05:51Aquí hay un par de ejemplos más de lo que también puede hacer.
00:05:55No solo es bueno para ediciones consistentes de personajes o algo así,
00:06:00sino que también es muy útil para la transferencia de estilo.
00:06:04Lo vemos en el lado izquierdo.
00:06:06Tomamos el estilo de la imagen de entrada y lo mapeamos a un nuevo contenido,
00:06:11o podemos hacer cosas como edición de texto,
00:06:14simplemente cambiando Montreal a Friburgo manteniendo la fuente consistente.
00:06:19Todo esto está combinado en un solo modelo y se puede interactuar con él a través de una interfaz de texto supersencilla.
00:06:27Genial.
00:06:28Muy importante,
00:06:29este modelo no solo es un modelo general,
00:06:31sino que también es muy bueno para resolver problemas de negocio específicos,
00:06:36importantes e interesantes.
00:06:38Por ejemplo,
00:06:39en el ejemplo de la izquierda,
00:06:41podemos extraer esta falda de una imagen 'in-the-wild' y obtenemos una toma de producto de esto y un zoom casi al instante,
00:06:49de nuevo,
00:06:50en cuestión de segundos.
00:06:51Esto,
00:06:52antes de estos modelos de edición,
00:06:54tardaba horas,
00:06:55días,
00:06:55o ni siquiera era posible.
00:06:57De manera similar,
00:06:58en el lado derecho,
00:06:59podemos pasar de un boceto a una salida completamente renderizada en un par de segundos.
00:07:05Genial.
00:07:06Como ya mencioné,
00:07:07Flux Context combina texto a imagen y edición de imágenes.
00:07:11Acabamos de ver un par de ejemplos.
00:07:13Veamos brevemente qué significa esto en términos de la pipeline del modelo que se necesita.
00:07:19Aquí vemos la pipeline clásica de texto a imagen.
00:07:22Bastante simple.
00:07:23Todos la conocemos.
00:07:24Usamos un prompt de texto.
00:07:26Lo pasamos por el modelo.
00:07:28El modelo luego hace algo de magia.
00:07:30Les explicaré cómo crear un modelo así en un segundo.
00:07:34Luego obtenemos una imagen que,
00:07:36con suerte,
00:07:36si el modelo es bueno,
00:07:38sigue nuestro prompt de texto de entrada.
00:07:40Si miramos la edición de imágenes, se ve bastante diferente.
00:07:44Empezamos con una imagen,
00:07:46que le mostramos al modelo de alguna manera,
00:07:49y luego no añadimos una instrucción de texto que describa una escena completa,
00:07:54sino solo un cambio a esa imagen.
00:07:56Aquí tenemos dos condicionamientos.
00:07:58La primera parte, solo tenemos más entradas.
00:08:01En el primer ejemplo, solo teníamos una entrada.
00:08:04Ahora describimos un cambio y el modelo debería modificar la imagen según el cambio.
00:08:10Algunas partes,
00:08:11como la iglesia aquí,
00:08:12deberían ser las mismas después de la edición.
00:08:15Otras no.
00:08:16Esto es lo que hacen estos modelos de edición.
00:08:19Es una tarea bastante diferente.
00:08:21Combinar esto en un solo modelo es realmente genial porque puedes hacer de todo.
00:08:26Puedes generar una imagen,
00:08:28luego editarla y obtener mucha más flexibilidad de alguna manera.
00:08:32Ya mencioné que antes de lanzar estos modelos de edición,
00:08:36o antes de ver estos modelos de edición generales,
00:08:39se hizo mucho trabajo de ajuste fino en modelos de texto a imagen para obtener este tipo de nivel de control en el modelo.
00:08:47Pero esto ya no es necesario.
00:08:49Podemos hacerlo al instante.
00:08:51Esto reduce significativamente el tiempo que se necesita para obtener buenos resultados.
00:08:57Así que esto es todo en cuanto a la pipeline.
00:09:00Ahora, veamos cómo podemos entrenar estos modelos.
00:09:03Y hay un algoritmo muy importante del que quiero hablar.
00:09:07El algoritmo que nos permite entrenar estos modelos se llama Latent Flow Matching,
00:09:12que se compone de dos aspectos,
00:09:14Latent y Flow Matching,
00:09:16y quiero arrojar un poco de luz sobre ambos..
00:09:24Empecemos con lo Latente.
00:09:25Esto proviene del modelado generativo latente.
00:09:28Es un algoritmo que mis cofundadores y yo ideamos hace casi cinco años.
00:09:32Para explicar lo que esto significa,
00:09:34veamos primero el siguiente ejemplo.
00:09:36Lo que visualizo aquí son básicamente dos imágenes,
00:09:39y para nosotros,
00:09:40se ven exactamente igual.
00:09:42La de la izquierda es un JPEG,
00:09:44y la de la derecha es la misma imagen como PNG.
00:09:47Así que la de la izquierda es una aproximación de la de la derecha,
00:09:51pero no vemos ninguna diferencia..
00:09:53¿O hay alguien que vea una diferencia en estas dos imágenes?
00:09:57No lo creo.
00:09:58Bien, ahora veamos el tamaño de archivo de estas imágenes.
00:10:02El tamaño de archivo del JPEG es en realidad casi un orden de magnitud menor que el tamaño de archivo del PNG.
00:10:10Esto es bastante notable,
00:10:11y todos sabemos cómo funciona la compresión de imágenes,
00:10:15pero el simple hecho de darnos cuenta de que aparentemente podemos eliminar mucha información de una imagen sin notarlo es bastante notable,
00:10:25diría yo..
00:10:26Así que,
00:10:27aparentemente,
00:10:27hay mucha información en una imagen que no podemos percibir con nuestro ojo humano.
00:10:33Otra forma de visualizar esto es graficar la similitud perceptual de una imagen en el último ejemplo de un JPEG,
00:10:40y la aproximación de esta imagen – perdón,
00:10:43en el último ejemplo de un PNG es la imagen – y la aproximación es el JPEG de esta imagen,
00:10:49y podemos graficarla contra el tamaño del archivo.
00:10:52Al hacer esto, obtenemos este gráfico.
00:10:55Este es un gráfico conceptual,
00:10:57así que no es real,
00:10:58pero conceptualmente se ve así.
00:11:00La similitud perceptual aumenta rápidamente y luego se mantiene en un nivel constante durante casi todo el tamaño del archivo.
00:11:08Esto es lo que aprovechan los algoritmos de compresión con pérdida como JPEG,
00:11:13y ahora podrían preguntarse qué tiene esto que ver con el modelado generativo.
00:11:19Nos muestra que para una señal perceptual,
00:11:21o una señal natural,
00:11:23como una imagen —para el audio es lo mismo—,
00:11:26para parecer real,
00:11:27o ser percibida como real.
00:11:28No necesitamos modelar todos los detalles de alta frecuencia que no podemos percibir,
00:11:34y por lo tanto,
00:11:35entrenar un modelo generativo en el espacio de píxeles con todos estos detalles de alta frecuencia sería en realidad un gran desperdicio de computación y tiempo,
00:11:46porque el modelo aprendería a representar aspectos que ni siquiera percibimos,
00:11:51así que es inútil aprender esto,
00:11:53¿verdad?
00:11:53Y eso está en el núcleo del modelado generativo latente.
00:11:57Así que,
00:11:58en lugar de entrenar un modelo generativo en el espacio de píxeles directamente sobre imágenes,
00:12:04aprendemos un modelo de compresión que extrae un espacio de menor dimensión,
00:12:09llamado espacio latente.
00:12:10Este espacio latente es lo que vemos aquí en el centro.
00:12:14Veamos si el puntero láser funciona.
00:12:16Oh, sí, este de aquí.
00:12:18¿Cómo aprendemos este modelo?
00:12:20Es realmente supersencillo..
00:12:24Usamos una imagen aquí a la izquierda.
00:12:26La pasamos por un codificador,
00:12:28así que,
00:12:29efectivamente,
00:12:29esto es un autocodificador,
00:12:31pasamos la imagen por el codificador,
00:12:34luego llegamos a este espacio latente,
00:12:36y la representación la pasamos por una operación que se llama regularización..
00:12:42Esto obliga al modelo a eliminar información de esta representación latente.
00:12:47Se puede implementar de forma discreta o continua,
00:12:51y luego,
00:12:51de nuevo,
00:12:52reconstruimos la imagen a partir de esta representación latente.
00:12:56Así que,
00:12:57un autocodificador clásico,
00:12:59que entrenamos para que produzca reconstrucciones similares a la entrada,
00:13:04y,
00:13:05muy importante,
00:13:06añadimos esta pérdida del discriminador.
00:13:08Esto se puede imaginar como un prior para asegurar que solo los detalles que importan perceptualmente a nuestros ojos humanos se reflejen en esta representación latente.
00:13:20De nuevo,
00:13:21esta regularización obliga al modelo a reducir o eliminar información,
00:13:26y el discriminador se asegura de que elimine la información correcta que no podemos percibir.
00:13:32Así,
00:13:33una vez que hemos entrenado este modelo,
00:13:35llegamos a este espacio latente que luego se utiliza para entrenar el modelo generado.
00:13:41El espacio latente es una representación de menor dimensión de la imagen de entrada o de una imagen que es perceptualmente equivalente.
00:13:51Este es básicamente el aspecto latente del algoritmo de 'latent flow-matching'.
00:13:56Hablemos del segundo, 'flow-matching'.
00:13:59De nuevo,
00:14:00todo lo que explico ahora ocurre en este espacio latente.
00:14:04Así que, lo que sea que hagamos ahora, lo ven aquí.
00:14:07En el lado izquierdo,
00:14:09cada imagen se incrusta en ese espacio latente,
00:14:12básicamente.
00:14:13Así que, sí, hablemos de 'flow-matching'.
00:14:16Los algoritmos de 'flow-matching' son una familia general de algoritmos que se utilizan para traducir de una distribución muy simple,
00:14:25que en nuestro caso es siempre la distribución normal estándar,
00:14:29así que ahora estamos hablando de distribuciones de probabilidad.
00:14:34Lo visualicé aquí.
00:14:35Esta es una distribución muy simple.
00:14:38Los algoritmos de 'flow-matching' traducen esto o nos proporcionan los medios para entrenar un campo vectorial,
00:14:45representado por una red neuronal,
00:14:48este de aquí,
00:14:49para mapear entre la distribución simple y distribuciones muy complicadas,
00:14:54como la distribución de datos de imágenes naturales.
00:14:57Así que esta es la distribución de datos.
00:15:00¿Qué hacemos para entrenar esto?
00:15:02El algoritmo de 'flow-matching' nos proporciona un medio muy simple para hacerlo.
00:15:08Todo lo que tenemos que hacer durante el entrenamiento es tomar una muestra de esta distribución normal estándar aquí.
00:15:16Así que tenemos una muestra,
00:15:18y luego la asignamos a una muestra de la distribución de datos,
00:15:23un ejemplo de entrenamiento,
00:15:24y acoplamos esto,
00:15:26y luego podemos construir este tipo de vector que los conecta directa y linealmente..
00:15:34Si hacemos esto para cada ejemplo en nuestro conjunto de datos de entrenamiento,
00:15:39es decir,
00:15:40simplemente tomamos el ejemplo,
00:15:42muestreamos aleatoriamente un punto de la normal estándar y los conectamos,
00:15:46entonces llegamos a este tipo de campo vectorial construido aquí.
00:15:51Ahora podría hablar mucho sobre las propiedades de los campos vectoriales.
00:15:55Una propiedad importante es que las trayectorias no pueden cruzarse en los campos vectoriales,
00:16:01y vemos que hay muchos cruces,
00:16:03así que este obviamente no es el verdadero campo vectorial que traduce entre cada punto de esta distribución,
00:16:10o entre esta distribución y aquella..
00:16:13Lo asombroso de 'flow-matching' es que,
00:16:16si simplemente sigues esta regla,
00:16:18es decir,
00:16:19entrenamos el modelo para que básicamente siempre prediga este tipo de vectores entre la muestra de datos y la muestra de la distribución normal estándar.
00:16:29Llegamos al verdadero campo vectorial, y este se ve así.
00:16:33Así que aquí vemos que las trayectorias ya no se cruzan,
00:16:37y el algoritmo de 'flow-matching' simplemente lo garantiza.
00:16:41Esto es un poco mágico,
00:16:43pero si lo escribimos matemáticamente,
00:16:45en realidad vemos que tiene sentido.
00:16:48Y así,
00:16:48podemos entrenar el modelo para que represente este verdadero campo vectorial que traduce entre la normal estándar y nuestra distribución de datos..
00:17:00Y,
00:17:00lo que es importante,
00:17:02queremos poder crear imágenes basadas en entradas de texto,
00:17:07así que lo que hacemos es condicionar esta red siempre a una entrada de texto,
00:17:13básicamente,
00:17:14para cada ejemplo de imagen.
00:17:16Genial..
00:17:17Entonces, ¿qué hacemos cuando muestreamos el modelo?
00:17:20Tenemos este campo vectorial que representa el mapeo entre esas dos distribuciones.
00:17:26Lo que hacemos es empezar con una muestra de la normal estándar.
00:17:30Podemos muestrearla con un ordenador, ¿verdad?
00:17:33Todos lo sabemos.
00:17:34Y luego integramos a lo largo de estas trayectorias representadas por la red neuronal.
00:17:39Podemos hacer esto con un simple algoritmo de Euler hacia adelante.
00:17:43Probablemente muchos de ustedes los conozcan.
00:17:46Así que,
00:17:47con un esquema de integración numérica,
00:17:49podemos simplemente integrar a lo largo de estas trayectorias y luego llegar a la muestra de datos.
00:17:56La pasamos por el decodificador de nuevo y llegamos.
00:17:59Así que,
00:17:59de nuevo,
00:18:00esto ocurre en el espacio latente,
00:18:02pero aquí llegamos de nuevo al espacio de píxeles.
00:18:05Y así es como puedo crear imágenes basadas en un prompt de texto.
00:18:10Genial.
00:18:10Una cosa,
00:18:11estos esquemas de integración numérica son bastante,
00:18:14creo,
00:18:15usan muchos pasos,
00:18:16así que desglosan este proceso paso a paso en hasta 50 pasos.
00:18:20Así que estos modelos de 'latent flow matching' son inherentemente bastante lentos y tardan entre 30 segundos y un minuto en generar una imagen,
00:18:29lo cual es un poco largo..
00:18:32Hablaré de cómo hacerlos rápidos muy pronto.
00:18:34Pero este es el algoritmo general de 'latent flow matching'.
00:18:38Así que 'latente' de nuevo,
00:18:39conecta o representa este espacio latente o significa este espacio latente donde entrenamos el modelo.
00:18:45Y el algoritmo de 'flow matching' es lo que acabamos de discutir aquí.
00:18:49Bien,
00:18:49ahora expliqué cómo creamos imágenes basadas en prompts de texto,
00:18:53pero ¿cómo se aplica esto ahora a 'context',
00:18:55que es un modelo de edición,
00:18:57verdad?
00:18:57Esto también es supersencillo.
00:18:59Así que esta es una arquitectura básica de Flux Context.
00:19:02Es un modelo transformador.
00:19:03Todos lo sabemos..
00:19:05Es un poco especial, pero la magia reside en la entrada.
00:19:08Así que vemos aquí a la izquierda la entrada al modelo.
00:19:12Primero tenemos la entrada de texto que simplemente es incrustada por un codificador de texto en un conjunto de tokens de texto.
00:19:21Y luego tenemos el codificador de imágenes que ya vimos en la última diapositiva,
00:19:26¿verdad?
00:19:27Este de aquí.
00:19:28Esto es lo que vemos ahora.
00:19:30Así que tenemos este codificador de imágenes y ahí tenemos dos conjuntos de tokens visuales.
00:19:36Primero tenemos el conjunto de tokens visuales que realmente usamos para generar.
00:19:41Esta será la imagen de salida.
00:19:43Y luego tenemos,
00:19:45si queremos hacer edición de imágenes,
00:19:47un segundo conjunto de tokens visuales que simplemente modelan o que simplemente representan la imagen de contexto.
00:19:55Es decir,
00:19:56la imagen de referencia que le estoy mostrando al modelo.
00:19:59Y lo que hacemos es pasar esto al modelo transformador.
00:20:03Es uno especial porque contiene los llamados bloques de doble flujo.
00:20:08Estos son,
00:20:09diría yo,
00:20:09una especie de modelos expertos para cada fidelidad.
00:20:13Así que aquí manejamos los tokens visuales y los tokens de texto por separado..
00:20:20Para todo,
00:20:20excepto para la operación de atención,
00:20:23la operación de atención ocurre conjuntamente sobre todos los tokens.
00:20:28Y luego tenemos bloques estándar,
00:20:30bloques transformadores estándar donde básicamente mapeamos todas las entradas y los tokens de texto y los tokens visuales con los mismos mapeos antes de la operación de atención.
00:20:43Y así, podemos simplemente pasar a la edición de imágenes..
00:20:48Si proporcionan una imagen de entrada aquí y si hacen generación de texto a imagen,
00:20:54simplemente no la proporcionan y entonces solo tenemos un prompt de texto como entrada,
00:21:00¿verdad?
00:21:00Genial.
00:21:01Último punto aquí.
00:21:02¿Cómo es el modelo tan rápido?
00:21:04No sé cuántos de ustedes conocen los modelos Flux.
00:21:07¿Podrían levantar la mano si conocen los modelos Flux?
00:21:11O en realidad, algunos.
00:21:12Bien, genial.
00:21:13Así que todos sabemos que son bastante rápidos, ¿verdad?
00:21:17¿A qué me refiero cuando digo rápido?
00:21:20Básicamente,
00:21:20somos la mayoría de las veces órdenes de magnitud más rápidos que los modelos comparables.
00:21:26Así que aquí,
00:21:27por ejemplo,
00:21:28vemos un modelo obviamente muy lento pero bueno,
00:21:31GPD image one.
00:21:32También aquí para la edición,
00:21:34los modelos Flux son más de 10 veces más rápidos,
00:21:38incluso más de,
00:21:39sí,
00:21:3920 veces.
00:21:40Así que es realmente una locura lo rápidos que son en comparación con modelos comparativamente potentes.
00:21:47Y la razón de eso es un algoritmo que desarrollamos hace dos,
00:21:51tres años.
00:21:51Se llama 'adversarial diffusion distillation' y el objetivo de este algoritmo es reducir el número de pasos de integración numérica.
00:22:00Les dije antes que estos son la mayoría de las veces 50 para un modelo de 'flow matching' estándar y el objetivo aquí es reducirlos a tan solo cuatro.
00:22:10Cada paso de integración numérica significa un pase hacia adelante a través de la red neuronal,
00:22:17así que podemos imaginar que esto lleva mucho tiempo,
00:22:20por lo que queremos reducirlo tanto como sea posible.
00:22:24¿Cómo funciona?
00:22:25Inicializamos dos redes aquí, un maestro y un estudiante.
00:22:29Ambas se inicializan a partir del modelo de 'flow matching' aprendido mediante el algoritmo que les acabo de mostrar.
00:22:37Y lo que hacemos es entrenar al estudiante para que obtenga la misma calidad de imagen en la salida en cuatro pasos que el maestro en 50 pasos.
00:22:47Este es el objetivo y así es como lo hacemos.
00:22:50Empezamos con una imagen,
00:22:51la codificamos de nuevo a una latencia aquí y luego generamos una imagen de salida para el estudiante en cuatro pasos o en el número de pasos objetivo que queremos hacer.
00:23:03Y luego la decodificamos de nuevo a píxeles..
00:23:08Al principio, esta imagen se ve muy borrosa y poco realista.
00:23:12Y el objetivo es mejorarla, obviamente.
00:23:14Así que lo que hacemos es usar esto de nuevo,
00:23:17codificarlo de nuevo a latencia y luego hacer lo mismo con el maestro pero en 50 pasos en lugar de cuatro pasos.
00:23:25Esto resulta en una imagen de alta calidad y luego usamos esta pérdida de destilación,
00:23:30básicamente solo una pérdida para asegurar que las distribuciones del maestro o del estudiante coincidan con las del maestro.
00:23:38Esto por sí solo,
00:23:39desafortunadamente,
00:23:41no nos permitiría generar imágenes que parezcan reales.
00:23:44Así que lo que añadimos es otra pérdida del discriminador.
00:23:48Ya vimos esto para la parte del autocodificador en la parte de modelado generativo latente de la charla anterior.
00:23:55Esto es básicamente lo mismo.
00:23:57Así que entrenamos un discriminador para distinguir las imágenes generadas por el estudiante de las imágenes reales que introducimos aquí.
00:24:06Y esto ocurre en un espacio de características de dyno v2 o en un espacio de modelo de representación de imagen aprendido,
00:24:14de alguna manera.
00:24:15Y así,
00:24:15podemos entrenar el modelo para que al final genere imágenes realistas en lugar de usar 50 pasos,
00:24:22solo usa cuatro pasos.
00:24:23Eso es obviamente una enorme aceleración.
00:24:26Sin embargo, último punto aquí.
00:24:28Si miramos esto,
00:24:29parece que hay muchos gastos generales,
00:24:31¿verdad?
00:24:32Porque aquí tenemos que pasar al espacio latente.
00:24:35Así que empezamos en el espacio de la imagen,
00:24:38pasamos al espacio latente,
00:24:40y decodificamos de nuevo,
00:24:41luego tenemos que codificar de nuevo y decodificar de nuevo.
00:24:45Y luego,
00:24:46este también codifica de nuevo a otro espacio de representación.
00:24:50Mucho gasto general,
00:24:51muchos costos de memoria relacionados con esto.
00:24:54Y esto es simplemente muy...
00:24:56cuando lo ideamos,
00:24:57nos asombró porque nos permitió entrenar modelos rápidos.
00:25:01Fue muy laborioso entrenar esto.
00:25:03Así que pensamos,
00:25:04'bien,
00:25:04¿cómo podemos simplificar esto?' Y la respuesta es siempre la respuesta.
00:25:09Simplemente muévelo al espacio latente siempre que tengas un píxel.
00:25:13Así que lo que hicimos fue idear un enfoque de destilación de difusión adversaria latente?
00:25:19Es básicamente muy similar a lo que hicimos para el algoritmo general de modelado generativo latente.
00:25:26Simplemente movemos todo aquí al espacio latente.
00:25:29Lo mismo,
00:25:30pero en lugar de tener que usar estos codificadores y decodificadores,
00:25:34podemos simplemente deshacernos de ellos.
00:25:37Y,
00:25:37lo que es importante,
00:25:39como discriminador,
00:25:40ya no usamos dyno..
00:25:44Este modelo de representación de imágenes,
00:25:46usamos al maestro porque ese de todos modos ya vive en el espacio latente,
00:25:50nos proporciona una representación de imagen muy buena.
00:25:53Así que también podemos usar al maestro como discriminador.
00:25:57Y el resto es básicamente casi lo mismo.
00:25:59También eliminamos la pérdida de destilación.
00:26:02Descubrimos que no la necesitamos,
00:26:04lo cual también es genial..
00:26:06Así que tenemos una pérdida menor y todo se simplifica.
00:26:11Y así,
00:26:11podemos,
00:26:12de una manera muy eficiente en memoria,
00:26:16también reducir el número de pasos de integración de cinco a cuatro.
00:26:23Así que tenemos una aceleración de 12.5 veces,
00:26:27y eso es en realidad lo que vemos como este orden de magnitud en los gráficos que les mostré al principio de esta sección.
00:26:39Así que,
00:26:39básicamente,
00:26:41así es como obtenemos un modelo muy rápido a partir de un modelo de 'flow matching' base.
00:26:49Y ahora,
00:26:50antes de que termine esta charla,
00:26:53les he traído una demostración para mostrarles Flux un poco en acción.
00:27:00Veamos.
00:27:01Así que usémoslo para editar imágenes aquí.
00:27:05Déjenme subir algo después.
00:27:07¿Qué estamos haciendo aquí.
00:27:10Este se ve bien?
00:27:11Sí.
00:27:12Bien.
00:27:12Sí.
00:27:13Esto está bien.
00:27:14Así que aquí empiezo con el logo de mi club de fútbol favorito,
00:27:20el SC Freiburg.
00:27:22Tengo que decir 'soccer' cuando estoy en EE.
00:27:26UU.
00:27:27Bien.
00:27:27Este es mi club favorito y quiero crear una camiseta con este logo.
00:27:34Así que digamos, 'pon este logo en una camiseta'.
00:27:38Se siente un poco raro porque no tengo una pantalla delante de mí.
00:27:45Bien.
00:27:45Aquí vamos.
00:27:46Generando.
00:27:47Déjenme hacer esto un poco más pequeño..
00:27:53Quizás así.
00:27:54Bien.
00:27:55Genial.
00:27:55Esperamos un par de segundos y podemos obtener este bonito logo en una camiseta.
00:28:03Y ahora lo bueno es que podemos seguir, ¿verdad?
00:28:07Podemos iterar sobre esto.
00:28:09Así que digamos que este logo es un poco demasiado grande,
00:28:14diría yo.
00:28:15'Haz el logo más pequeño y ponlo en la parte restante'.
00:28:20De nuevo.
00:28:21Esperamos un par de segundos.
00:28:24Bien.
00:28:24Genial.
00:28:25Y llegamos a un resultado que es realmente muy bueno.
00:28:30Eso es lo que quería.
00:28:31Quiero empezar con este de nuevo.
00:28:34Y ahora quiero cambiar el color porque el color del SC Freiburg no es negro,
00:28:41es rojo.
00:28:42Así que 'haz la camiseta roja'.
00:28:45También supersencillo.
00:28:47Ahora estamos en la edición local.
00:28:50Solo estamos editando partes locales de la imagen, ¿verdad?
00:28:55En este caso, el color.
00:28:57Y,
00:28:58lo que es importante,
00:29:00hemos hecho un par de ediciones y todavía vemos que el logo está representado de manera muy consistente.
00:29:09Así que esta es la consistencia de personaje o,
00:29:13en este caso,
00:29:15de objeto que vimos.
00:29:16Esto es superimportante.
00:29:19Piensen en un especialista en marketing que tiene un objeto y quiere colocarlo en un contexto determinado,
00:29:28¿verdad?
00:29:29Esto,
00:29:29en términos de valor empresarial,
00:29:32es genial,
00:29:33es superimportante.
00:29:35Y ahora,
00:29:36finalmente,
00:29:37añadimos una transformación más compleja.
00:29:40Podemos decir 'pon la camiseta a un hombre caminando en el parque'.
00:29:46Ups.
00:29:47Así que esta es una transformación compleja y podrían haber dicho,
00:29:53'bueno,
00:29:53cosas como cambiar el color se pueden hacer en Photoshop,
00:29:59¿verdad?' Históricamente,
00:30:01cosas así,
00:30:02esto no es lo que las herramientas de generación de imágenes estándar o anteriores no basadas en IA solían poder hacer o podían hacer?
00:30:14Esto es realmente genial.
00:30:16Así que aquí tenemos ahora y finalmente,
00:30:20creo que estoy a tiempo,
00:30:22pero hagamos una última cosa que muestra lo general que es este modelo.
00:30:28También podemos hacer transferencia de estilo, ¿verdad.
00:30:33Así que digamos, 'haz de esto una pintura de acuarela'.?
00:30:42Muy bien, el último.
00:30:44Y antes de modelos como estos, probablemente habrías...
00:30:48habrías entrenado un ajuste fino único para cada una de estas tareas y ahora podemos simplemente combinarlo en una sola cosa,
00:30:58lo cual es bastante genial.
00:31:01Genial.
00:31:01Así que ahora podría imprimirlo y colgarlo en mi pared o algo así.
00:31:06En fin, sí, creo que esto muestra el poder de estos modelos.
00:31:11Oh, algo se ha caído.
00:31:13Quería mostrarles una última diapositiva porque he terminado,
00:31:18pero estamos contratando y si quieren unirse a nosotros,
00:31:22por favor,
00:31:23escaneen esto aquí o visiten el 'playground',
00:31:27la demo que les acabo de mostrar,
00:31:29disponible gratuitamente.
00:31:31Muchas gracias.
00:31:33Espero que hayan aprendido algo..

Key Takeaway

Flux Context de Black Force Labs representa un avance significativo en la IA visual generativa multimodal, unificando la generación y edición de imágenes con una velocidad y flexibilidad sin precedentes, gracias a innovaciones como Latent Flow Matching y Adversarial Diffusion Distillation.

Highlights

Black Force Labs es pionera en IA visual generativa, con la visión de que los medios visuales serán la interfaz central de comunicación humana.

La familia de modelos Flux ofrece tres niveles (Pro, Dev, Schnell), siendo Flux Dev el estándar de código abierto para la generación de imágenes.

Flux Context unifica la generación de texto a imagen y la edición, permitiendo tareas complejas como la consistencia de personajes, transferencia de estilo y edición local en tiempo casi real.

El algoritmo Latent Flow Matching es fundamental para el entrenamiento de los modelos, operando en un espacio latente de menor dimensión para una mayor eficiencia computacional.

La velocidad de los modelos Flux se logra mediante la destilación de difusión adversaria latente (LADD), reduciendo los pasos de integración numérica de 50 a tan solo 4, logrando una aceleración de 12.5x.

Flux Context resuelve problemas empresariales específicos, como la creación instantánea de tomas de productos a partir de imágenes 'in-the-wild' o la transformación de bocetos en renders completos.

La demostración en vivo ilustra la capacidad del modelo para realizar ediciones iterativas y complejas, manteniendo la consistencia del objeto y aplicando transferencia de estilo con simples instrucciones de texto.

Timeline

Visión y Modelos de Black Force Labs

Andy, cofundador de Black Force Labs, presenta la empresa y su visión de los medios visuales como la interfaz central de comunicación futura, extendiéndose más allá de lo que las cámaras pueden capturar. La compañía, fundada en agosto de 2024, cuenta con 45 empleados y sedes en Friburgo (Alemania) y San Francisco. Se introduce la familia de modelos Flux para la generación y edición de imágenes, estructurada en tres niveles: Flux Pro (API, rápido), Flux Dev (código abierto, personalizable, desarrollado por los creadores originales de Stable Diffusion) y Flux Schnell (código abierto, punto de entrada). Se destaca que Flux Dev se ha convertido en el modelo más grande en Hugging Face y el estándar para la generación abierta de imágenes.

Flux Context: Generación y Edición Unificadas

Esta sección profundiza en Flux Context, el modelo más reciente lanzado en junio de 2025, que unifica la generación de texto a imagen y la edición de imágenes. Se enfatiza la importancia de la edición de imágenes, que permite iterar y controlar con precisión, un área que históricamente había quedado rezagada. Flux Context combina la generación con elementos de edición como la consistencia de personajes, la referencia de estilo y la edición local, todo a una velocidad casi en tiempo real. Se muestran ejemplos prácticos como eliminar objetos, colocar un personaje en un nuevo contexto manteniendo su consistencia, y cambiar el escenario, eliminando la necesidad de un ajuste fino laborioso. Además, se presentan aplicaciones empresariales como la creación instantánea de tomas de productos a partir de imágenes 'in-the-wild' y la transformación de bocetos en renders completos en cuestión de segundos.

Fundamentos Técnicos: Latent Flow Matching

Aquí se explica la pipeline del modelo y el algoritmo Latent Flow Matching, fundamental para el entrenamiento de estos modelos. Se compara la pipeline clásica de texto a imagen con la de edición de imágenes, señalando que esta última requiere una imagen de entrada y una instrucción de cambio, lo que la convierte en una tarea diferente. El aspecto 'Latent' se refiere al modelado generativo latente, que aprovecha la información imperceptible en las imágenes (ilustrado con el ejemplo JPEG vs. PNG) para entrenar un autoencoder que extrae un espacio latente de menor dimensión, más eficiente para el entrenamiento. El aspecto 'Flow Matching' describe cómo se entrena un campo vectorial para mapear una distribución simple (normal estándar) a distribuciones de datos complejas (imágenes naturales) en este espacio latente, permitiendo la generación de imágenes a partir de prompts de texto, aunque inicialmente este proceso es lento, requiriendo hasta 50 pasos de integración numérica.

Optimización de Velocidad: Destilación de Difusión Adversaria

Esta sección aborda cómo los modelos Flux logran su notable velocidad, siendo órdenes de magnitud más rápidos que sus competidores, a menudo 10 a 20 veces más veloces. La clave es el algoritmo 'Adversarial Diffusion Distillation' (ADD), desarrollado para reducir los pasos de integración numérica de aproximadamente 50 a tan solo 4, lo que acelera drásticamente la generación de imágenes. Se explica cómo un modelo 'estudiante' es entrenado para igualar la calidad de un modelo 'maestro' en menos pasos, utilizando una pérdida de destilación y un discriminador para asegurar la calidad y el realismo de las imágenes generadas. Finalmente, se presenta la versión simplificada y más eficiente en memoria, 'Latent Adversarial Diffusion Distillation' (LADD), que opera completamente en el espacio latente y utiliza el propio modelo maestro como discriminador, logrando una impresionante aceleración de 12.5 veces.

Demostración Práctica y Potencial de Flux

La charla culmina con una demostración en vivo de Flux Context, mostrando su capacidad para editar imágenes de manera interactiva y en tiempo real. El orador utiliza el logo de su club de fútbol, SC Freiburg, para ilustrar cómo se puede colocar en una camiseta, ajustar su tamaño y posición, cambiar el color de la camiseta y, finalmente, integrar la camiseta en una escena compleja con un hombre caminando en un parque. También se demuestra la transferencia de estilo, transformando la imagen en una pintura de acuarela con una simple instrucción de texto. Se enfatiza que todas estas tareas, que antes requerirían un ajuste fino individual y laborioso, ahora se combinan en un solo modelo, destacando el inmenso valor empresarial y la flexibilidad que ofrece Flux para diversas aplicaciones creativas y comerciales.

Community Posts

View all posts