logo

Dot CSV

Inteligencia Artificial, Tecnología, Ciencia y Futuro! Bienvenidos a la 4ª Revolución Industrial 🚀 Inteligencia Artificial, Tecnología, Ciencia y Futuro! Bienvenidos a la 4ª Revolución Industrial 🚀

Transcribed podcasts: 213
Time transcribed: 5d 22h 50m 3s

This graph shows how many times the word ______ has been mentioned throughout the history of the program.

Tenemos que controlar a la inteligencia artificial.
Pero no así, sino así. Controlar lo que las cías de generación de imágenes pueden hacer.
Y es que de nada sirve tener un modelo generativo que te cree caras súper realistas como teníamos
hace años y no puedes especificar cosas como, hey, ponle un bigotillo gracioso a este señor y que
te lo haga. Generación sin control, no hay diversión. Por suerte, en las últimas semanas
el ecosistema stable diffusion ha evolucionado hacia un conjunto de herramientas que llevan a
esta tecnología hacia el siguiente nivel, dejándonos hacer cosas como estas, o estas,
o estas de aquí. Hoy vamos a estar hablando de estas tecnologías, las vamos a contextualizar
en los desarrollos que han ocurrido en los últimos meses. Vamos a estar viendo cómo funcionan,
vamos a aprender un poco más de inteligencia artificial y también, efectivamente, os voy a
enseñar cómo vosotros podéis utilizarlas. Pero Carlos, ¿cómo voy a poder utilizarlas si no
tengo una tarjeta gráfica potente? Pues estáis de suerte, chicos y chicas, porque vuelve el
Nvidia GTC. Ya sabéis que el GTC es el gran evento que organiza Nvidia y que ya llevamos unos cuantos
años cubriendo aquí en el canal. Este es un evento súper interesante que ver porque es el espacio
que Nvidia se reserva para contarnos todas las novedades tecnológicas en las que han estado
trabajando en los últimos meses. Y además, siendo este el año 2023 de la inteligencia artificial,
seguro que va a ser un evento bastante emocionante. Por suerte, este es un evento gratuito al que todos
vosotros podéis acudir sin ningún problema y donde, además de poder ver todas estas novedades,
podéis acceder también a un montón de ponencias de profesionales que pertenecen a las empresas más
punteras de cada uno de los sectores que están relacionados con la empresa de Nvidia. De hecho,
este año hay un par de charlas que no me pienso perder que son las de DeepMind y la de OpenAI que
están participando en este GTC. Bueno, la cosa promete bastante. Como digo, sorprende que este
evento sea gratuito, pero es que además si quieres participar de él, pues tienes la oportunidad a
través de mi canal de DotCSV de poder ganar una tarjeta gráfica 4090 que vamos a estar
sorteando por el GTC. ¿Cómo participar en el sorteo? Muy fácil. Primero, regístrate a través de este
link que estás viendo por pantalla o el que está abajo en la caja de descripción. Es el enlace que
está asociado con mi canal de YouTube, así que de cara al sorteo es importante que te registres
a través de este. Segundo paso, ir a Twitter y hacer retweet al hilo promocional donde estoy
explicando todos los detalles del GTC y de este sorteo. Y número tres, y muy importante,
no solo basta con registrarte, también tienes que asistir a alguna de las ponencias que están
organizadas. Puedes buscar en la agenda el tema que te interese, pues criptografía, nerf, stable
diffusion y ver qué charlas hay que te puedan interesar. Y ojo, no vale la keynote principal
que se celebra el 21 de marzo porque esta la vamos a estar cubriendo aquí en el canal en
directo y va a ser un momento muy chulo donde vamos a estar comentando todas las novedades
que nos presenta Nvidia. Comienza el GTC 2023, siempre es un evento que me encanta cubrir y de
nuevo este año vamos a estar a ello. Apúntatelo en la agenda, este mes de marzo del día 20 al
23 comienza el GTC. Y ahora sí, respondamos a la gran pregunta. ¿Cómo podemos controlar a una
inteligencia artificial que es tan potente que puede generar cualquier cosa? Pues hay múltiples
opciones. Por ejemplo, con reentranamientos. ¿Quieres un stable diffusion que sea muy bueno
generando ropa? ¿O un estilo artístico concreto? ¿O el concepto de tú? Pues ya sabéis que desde
hace unos meses tenemos técnicas que con unas pocas fotos te permiten reentrenar y personalizar
a tu modelo de stable diffusion. Originalmente esto lo hacíamos con la técnica de Dreambooth,
que tiempos aquellos que teníamos que esperar una hora y se generaba un archivo de dos gigas con el
que podías generar imágenes de tu cara. Todo esto luego ha evolucionado recientemente a la técnica
de Lora, que consigue ofrecer resultados similares pero generando no un archivo de dos gigas sino
uno de pocos megas, lo cual hace mucho más viable el poder compartir librerías de estilos
customizados a través de internet. Mola. Pero ojo, porque si Lora ya era una mejora,
este trabajo recién salido nos promete poder hacer un reentranamiento tipo Dreambooth que ya
no nos llevará una hora, sino solo unos pocos segundos, bajando el número de steps de 1000 a
solo 15. Otra forma de ganar control es a través del prompt, y es que por ejemplo uno de los grandes
problemas que existe a la hora de escribir un prompt es que cuando tú detallas un listado de
elementos que quieres que estén en la imagen final, este proceso se acaba convirtiendo en
una lotería por ver qué elementos aparecen ahí y cuáles no. O por ejemplo otro problema que suele
ocurrir desde los inicios es cuando tú estableces cierto atributo para un determinado elemento en
tu prompt, por ejemplo un color asociado a un reloj y otro color asociado a un banco,
pues de repente el modelo se confunde y mezcla todos los atributos y acabas con una imagen final
que no representa exactamente lo que quieres. Pues ahí es donde este trabajo entra en juego.
Attend and Excite soluciona un par de problemitas que a todos nos ha pasado al generar imágenes,
donde es habitual que el modelo se deje atrás alguno de los elementos que hemos especificado
Bueno, pues tenéis que saber que en este trabajo han desarrollado un mecanismo por el cual se
consigue que aquellas partes del prompt que hemos marcado como importantes estén presentes en la
imagen final. ¿Cómo lo hacen? Pues observando con mucha atención, literalmente. Y es que,
como ya os conté en el último vídeo, estos sistemas multimodales trabajan con texto y
con imágenes, y una cosa interesante que podemos hacer es visualizar los mapas de atención que
relacionan a cada palabra con cada región de la imagen. Por ejemplo, aquí podemos ver cómo la
palabra lion maximiza la región de la cara en el centro de la imagen. Esta es la relación textual
y visual que percibe la red. Y claro, con esto, mientras se va generando la imagen, pues puedes
fijarte realmente si hay algún concepto que no esté recibiendo la suficiente atención. Pues,
por ejemplo, le hemos pedido un león con corona. ¿Dónde está la corona? Yo no la veo. Pues
matemáticamente podemos analizar y cuantificar qué tan activadas están las regiones de este
mapa de atención, el de la corona, calcular su nivel de activación e introducir este valor
como parte de una función de coste a optimizar, consiguiendo así en el proceso de generación que
este mapa se vaya activando más y más, consiguiendo ahora sí que este león llega a ser rey león.
¿Y los resultados? Pues bastante prometedores. Tal y como muestran en su web, este mecanismo
no solo cumple generando los elementos que se le pide, sino que además genera imágenes con
composiciones más coherentes y donde hay menos mezclas amorfas de los diferentes elementos.
Es que a lo mejor tú querías un gato y un perro, y no un gatuperro. Es que a lo mejor lo que tú
querías era un cuadro de Picasso en el jardín, y no un cuadro de un jardín al estilo de Picasso.
Pues gracias a esta técnica lo puedes conseguir. Ahora, si vamos a hablar de poder controlar los
resultados que generamos con un modelo como Stable Diffusion, tenemos que hablar del proyecto
del momento, ControlNet. Originalmente Stable Diffusion nos permitía crear imágenes no solo
usando texto, sino que también podíamos utilizar otras imágenes como input. Ya sabéis que con la
técnica de image to image los colores y composición de una imagen de entrada servían para crear algo
que se le asemejaba, y esto ya no daba cierto control, pero no era perfecto. Porque por ejemplo,
si tú querías usar una imagen como esta como referencia para copiar la pose, como aquí la
estética y los píxeles son mayoritariamente grises, la imagen resultado salía un poco
raruna. Por ejemplo, aquí no hay playa. Y esto mejoró con la versión 2 de Stable Diffusion,
donde introdujeron la idea de depth to image, un Stable Diffusion que ahora admitía mapa de
profundidad y no se basaba en el color de los píxeles, mejorando entonces el control que
nos ofrecía. Bueno, pues si pasar de usar imágenes a usar mapa de profundidad ya fue un paso,
ahora aparece ControlNet con un montón de posibilidades que nos permiten controlar
Stable Diffusion usando bordes de objetos, líneas, garabatos, esqueletos de poses,
mapa de segmentación, mapa de profundidad, normales. Y bueno, realmente podrías entrenarlo
con más input-output que se te ocurran. Y es que ellos lo que presentan en el paper es la
estrategia con la que han generado estos modelos. Basados en la idea de las hyper networks, lo que
hacen es tomar una red neuronal como a Stable Diffusion y la clonan. Y del modelo original,
lo que se hace con su información es bloquearla, congelar a los parámetros para que no se pierda
la capacidad de Stable Diffusion. Ahora, es la copia la que sí vamos a entrenar, con la
posibilidad de aceptar un nuevo input que podría ser una imagen como un mapa de profundidad y que
servirá para modificar y condicionar el resultado de la red neuronal original. Vamos, que lo que
estamos creando es un adaptador con un nuevo conector que se acupla al Stable Diffusion original.
¿Y funciona? Y tanto que funciona. ¿Recordáis que antes os he hablado del modelo depth to image
original de Stable Diffusion? Bueno, pues quedaos con estas cifras. Para entrenarlo se estima que
hizo falta más de 2000 horas de GPU en un clúster de tarjetas a 100, usando aproximadamente 12
millones de imágenes de entrenamiento. Pues bueno, ControlNet, entrenado para la misma tarea y con
resultados comparables, solo necesitó una semana de entrenamiento en una tarjeta gráfica 3090.
Como podéis imaginar, la comunidad intera se ha puesto manos a la obra a jugar con esta
tecnología, logrando resultados impresionantes. Usando imágenes de referencia de las que se
extraen los mapas de profundidad o se infiera la pose o los bordes, y donde ControlNet,
en colaboración con Stable Diffusion, logra resultados como estos.
Junto a esto, también se han popularizado herramientas como Magic Poser o similares,
que te permite ajustar fácilmente la pose de un modelo 3D para sacar de ahí las imágenes que
luego puedes combinar con ControlNet para sacar resultados como estos.
E incluso, como es normal, pues ya hay quien ha aplicado esta técnica de forma secuencial
a los diferentes fotogramas de un vídeo, donde se pueden obtener resultados como esto,
que mejoran lo que podía ser antes de Stable Diffusion, pero donde se puede ver que todavía
falta por resolver los típicos problemas de consistencia temporal para que la imagen se
mantenga consistente y no parpadee tanto. Pero aún así, los resultados que se van obteniendo
pues son algo visualmente muy espectacular. De hecho, justamente sobre esto, esta misma semana,
el equipo de Corridor Digital nos ha presentado un nuevo vídeo donde utilizando a Stable Diffusion,
en parte controlado con ControlNet, y profundizando en mejorar los diferentes problemas de consistencia
temporal que estábamos comentando, pues han conseguido crear un corto de animación al estilo
anime basado en grabaciones de ellos. Una demostración de hacia dónde podría evolucionar
la industria cuando estas herramientas lleguen a mano de profesionales que sepan sacarle todo
el partido y sepan realmente hacerlas más sofisticadas para que les pueda ayudar en
sus procesos creativos. Porque ControlNet no solo nos permite nuevas formas de experimentación y
de expresión, sino que también, como hemos dicho antes, pues ayuda a controlar y a solucionar muchas
de las imperfecciones que más han caracterizado a los resultados de Stable Diffusion, como,
por ejemplo, las manos. Ahora mismo, puesto que Stable Diffusion por defecto todavía sigue
generando manos con más de dos carrugas, la solución de usar a ControlNet viene a partir
de utilizar algún mapa que le de la forma correcta de una mano. Así podemos decir que
el resultado está más controlado y el problema con las manos resuelto. Incluso hay quienes
han encontrado aquí una técnica más óptima si cabe, donde en vez de utilizar un único input de
control que deforma las manos, combinan esto con otros inputs de control. A lo mejor uno se va a
utilizar para dar pose al personaje que quieres crear, otro mapa se va a utilizar para darle forma
a las manos y así todo esto en combinación pues te da un control absoluto del resultado que quieres
generar. Esta evolución de la técnica que utiliza múltiples mapas de control es lo que se está
llamando MultiControlNet. Y sí, soy consciente de que os acabo de explicar cómo evolucionó una
técnica que os acabo de presentar hace cinco minutos, pero es que todo avanza muy rápido.
Pero Carlos, perdona, ¿cómo nosotros meros mortales podemos utilizar esta tecnología que
escuchamos hablar de? ¿Qué parece tan interesante? ¿Hay alguna forma de poder utilizarla? Pues como
casi siempre tenéis distintas opciones. A ver, si queréis probarlo sin mucho lío, pues podéis ir
ya a la página web de Hug in Face donde tenéis una demo pública. Cada pestañita que veis aquí
pues es una forma diferente de control net que acepta un input distinto y donde vosotros podéis
seleccionar, arrastrar una imagen y que se haga la magia. Si por ejemplo has elegido mapa de
profundidad, pues la imagen que tú subas será procesada por otra IA que calculará este mapa y
ese output en combinación con tu prompt generará una imagen resultado. Eso sí, os advierto,
el problema de Hug in Face es que como esta demo es pública y el hardware es limitado,
pues puede que os lleve bastante tiempo de espera el obtener resultados. Así que la otra opción que
os propongo es si tenéis el hardware en vuestro ordenador, pues trabajar en local y si no,
pues trabajar con la opción de Google Collab. En ambos casos vamos a utilizar la herramienta
por excelencia para trabajar con Stable Diffusion de Automatic. Para el Google Collab entrais al
link que os voy a dejar abajo en la caja de descripción, le dais a ejecutar todo,
esperáis cinco minutillos tomando un café y cuando esté listo entrais. Esta es la interfaz
gráfica típica que se utiliza para trabajar con Stable Diffusion, la de Automatic y si nos venimos
aquí abajo veréis que ahora hay una nueva pestaña que pone control net. Si clicamos en la pestaña
podemos colocar aquí una imagen, podemos acargar la misma imagen que antes y una vez la tenemos
cargada, lo que tenemos que hacer es clicar aquí Enable para poder activar la funcionalidad de
control net. Dentro de esta funcionalidad hay muchas cosas que podéis configurar, pero en este caso
lo importante es el preprocesor, que sería el modelo que va a partir de esta imagen. Pues por
ejemplo si elijo que quiero que se condicione a partir de una pose, va a ser el modelo que a
partir de esta imagen pues extraiga la pose. En este caso voy a elegir open pose y cuando de
esta imagen extraiga la pose, esta pose la voy a pasar a un modelo, a cual bueno, al modelo de
control net que está entrenado específicamente para aceptar pose. Casi siempre hay una equivalencia
entre el preprocesor y el modelo a utilizar. Elijo control open pose y ya con esto pues sería cuestión
de configurar nuestro prompt como siempre. Con esto ya tenéis suficiente para empezar
a jugar, pero como veis hay un montón de opciones, hay un montón de posibilidades y por eso quiero
hacer un próximo directo donde vamos a estar trabajando con esta herramienta. Voy a enseñar
los mejores trucos para conseguir resultados fenomenales, vamos a estar combinando esto también
con modelos de lora, es decir, vamos a estar haciendo una especie de mini cursillo de todo
lo que ha ido saliendo los últimos meses de stable diffusion, que yo creo que ya hace falta.
También aprovechando que hablamos de directos os comparto que el próximo mes de marzo voy a
estar cambiando mi lugar de trabajo, voy a estar mudándome y eso pues no me permite estar con el
lugar donde grabo y poder editar vídeos de forma normal. Así que aunque tengo vídeos preparados
para vosotros y vídeos con temas muy potentes que sé que os van a gustar, igualmente la parte de
contenido de actualidad pues la vamos a ir desarrollando a través de directos en el canal.
Solo le pido a Sam Altman que no saque GPT-4 durante el mes de marzo porque si no me la va a liar.
Espero que en el vídeo de hoy hayáis aprendido algo nuevo sobre inteligencia artificial, alguna
herramienta nueva que ya estéis pensando cómo aplicarlo en vuestro trabajo, que estéis jugando
con ellas y viendo cómo es la tecnología. Así que si te ha gustado este vídeo, si quieres apoyar este
contenido, podéis hacerlo a través de Patreon, podéis compartirlo por favor en redes sociales,
eso siempre ayuda. Puedes dejar un buen like, puedes dejar un comentario y te leo todo el
feedback que me des. Y chicos, chicas, nada más que deciros que nos vemos en un próximo vídeo
con más inteligencia artificial aquí en dotCV.