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.

Seguramente navegando por internet ya te habrás encontrado un montón de gente
creando imágenes espectaculares de ellos mismos o de sus influencers favoritos
que además dicen que han sido creadas con inteligencia artificial.
¡Wow! Bueno, pues tranquilos porque hoy os traigo el tutorial
que va a ser sencillo, lo vais a tener todo listo en cosa de una hora,
no requiere dejarlo avanzado, no requiere de gastar dinero
y además va a ser el que mejor resultados os pueda ofrecer ahora mismo.
Así que este es el trato.
Si conseguís que todo esto funcione y generáis imágenes espectaculares
de vosotros y de vuestros amigos, vuestra parte será compartir,
referenciar este vídeo para que más gente pues también pueda formar parte de esto.
¿Trato?
Si eres nuevo por este canal tienes que saber que aquí hablamos de esto,
de inteligencia artificial.
Y en el anterior vídeo estuve hablando de toda esta revolución donde muy pocos meses
ya contamos con herramientas como Dali 2, Mid Journey o Stable Diffusion
para poder generar imágenes con texto.
Y para mí de todas estas la más interesante es Stable Diffusion porque es open source
y eso ha permitido a la comunidad poder construir sobre ella
un montón de herramientas que ahora nosotros podemos utilizar.
Herramientas como Dreambooth, que es la que vamos a estar utilizando hoy.
Dreambooth es una técnica que nos va a permitir coger el modelo de Stable Diffusion
y reentrenarlo para que aprenda un nuevo concepto,
ya sea una persona, una mascota, objeto o estilo artístico, lo que quieras.
Y tras ese reentrenamiento pues tú podrás coger y con texto escribir
quiero a DotsSV como un Funko Pop y te lo hace.
O quiero a Quantum Fracture en una ilustración,
Cyberpunk o pintado por Van Gogh y obtener resultados como estos.
La pregunta es, ¿cómo lo hacemos?
Pues el primer paso que vamos a completar es el de armar nuestro dataset.
Y en este caso es impresionante ver que no hace falta muchísimas imágenes
con 15, 20 imágenes, es más que suficiente.
En este caso, la receta es que toméis 2, 3 imágenes
donde se te vea de cuerpo completo.
Algunas imágenes donde se te vea de torso hacia arriba, pues 3, 4, 5 imágenes.
Y luego el resto que sean imágenes de tu cara, donde se te puedan ver bien
los detalles de tu rostro para que así la inteligencia artificial
pues pueda entender quién eres.
Y esto es muy importante, porque a ver, inicialmente la inteligencia artificial
no va a entender cuál es el concepto.
Inicialmente solo va a ver pues una masa de píxeles
que va a intentar darle sentido.
Entonces, si en todas nuestras imágenes
aparecemos nosotros con el mismo fondo, con la misma ropa,
la inteligencia artificial va a entender que el concepto somos nosotros
con el mismo fondo y con la misma ropa y no queremos eso.
Por tanto, tómate tu tiempo para encontrar fotos que tengan
pues variedad en el estilo, en la ropa, en la perspectiva, en la iluminación,
en todo esto y con vuestras imágenes listas.
Ahora vais a pasarla por vuestro software de confianza,
ya sea el Photoshop, el Gimp o lo que queráis.
Y aquí lo que vais a hacer es dejarlas a una resolución cuadrada
de 512 por 512 píxeles.
Si no hacéis esto, es posible que la inteligencia artificial
acabe distorsionando vuestras imágenes durante el entrenamiento
y también durante la generación.
Por tanto, cuando hayáis terminado este paso, tendréis que tener una carpeta
con unas 15, 20 imágenes vuestras de 512 por 512 píxeles.
Una vez hecho esto, vamos a entrenar.
Por lo general, para entrenar este tipo de sistemas
haría falta tener una tarjeta gráfica potente que no todos tenéis.
Y es por eso que vamos a estar utilizando una herramienta alternativa
llamada Google Collab, donde Google nos estaría prestando gratuitamente
una máquina virtual, un ordenador donde vamos a contar con esta tarjeta
gráfica que necesitamos.
Si bajáis a la caja de descripción,
encontraréis un enlace a este cuaderno de Google Collab.
Cuando entréis, os vais a encontrar con este cuaderno de aquí.
Lo he adaptado para que tenga un par de funcionalidades extra
que nos van a ir bastante bien.
En ese sentido, lo primero que vais a hacer es entrar en entorno de ejecución,
cambiar tipo de entorno de ejecución y vamos a verificar que aquí está marcado
la aceleración por hardware con GPU.
Si todo es correcto, vosotros os podréis conectar.
Vamos a ejecutar esta primera casilla, esta celda de código.
Le vamos a dar a este botón de aquí.
Vamos a darle a ejecutar de todos modos y si está todo correcto,
veremos que nos han asignado una GPU,
pues una Tesla T4 que es más que suficiente para poder trabajar.
Podría darse el caso que por no ser usuarios pro de Google Collab
os salga un mensaje diciendo que ahora mismo no hay disponible tarjeta gráficas.
Esto suele ocurrir sobre todo cuando estamos en el pico
donde Europa, Latinoamérica y Estados Unidos están todos despiertos
utilizando esta herramienta, así que si eso sucediera,
vais a tener que esperar otro momento.
Pero si tenemos la tarjeta gráfica, podemos continuar.
Para continuar, vamos a ejecutar esta celda de aquí,
que es para conectarnos a Google Collab.
En este caso nos va a salir un mensaje conectar con Google Drive
y le vamos a dar a aceptar.
Vamos a conectarnos con nuestra cuenta.
Vamos a darle permiso.
Y en este caso lo que estamos haciendo es conectar Google Collab
con el sistema de almacenamiento de Google Drive,
donde va a quedar almacenada nuestra inteligencia artificial
una vez la hayamos entrenado.
Importante en este caso es tener espacio suficiente en Google Drive,
unos 4 gigas disponible para que no haya ningún tipo de problema.
Una vez hecho esto, el siguiente paso será clicar aquí
y vamos a ir instalando cada una de las librerías necesarias
para que todo esto funcione.
Clicamos este botón, clicamos este botón
y dejamos que se vaya instalando poco a poco.
En cuestión de un minuto ya estarán todas las librerías instaladas.
Vemos el check verde, así que podemos continuar.
El siguiente paso ahora va a ser descargarnos el modelo
punto Check Point de Stable Diffusion.
Es en este punto donde vamos a descargarnos desde la página web
de Hugging Face el modelo de Stable Diffusion
que vamos a reentrenar con nuestras imágenes.
Para esto, lo que tenéis que hacer es entrar a la página de Hugging Face.
Vamos a clicar en este enlace de aquí y tenemos que hacer un par de cosas.
Esta página de aquí es una página web que contiene un montón
de modelos de inteligencia artificial que podemos descargar.
Para hacer esto, lo que tenéis que hacer es crearos una cuenta.
Vais a crear una cuenta, vais a registraros.
Es completamente gratis.
Y cuando tengáis la cuenta y estáis logueados,
vais a volver a esta página de aquí que acabamos de abrir.
En vuestro caso va a aparecer aquí un menú que tenéis que aceptar.
Y aquí lo que estaríamos haciendo es aceptar los términos de uso de este modelo.
Qué podéis y qué no podéis hacer con Stable Diffusion 1.5.
Léeroslo porque es importante.
Aparte de esto, otra cosa que vamos a hacer con Hugging Face
es venir para acá a este menú.
Vamos a irnos a Settings, vamos a irnos a Access Token
y vamos a darle a crear Nuevo Token.
Aquí podéis poner el nombre que queráis.
Por ejemplo, creador de imágenes y vamos a ponerle el rol de escribir.
Generamos el token y nos va a aparecer por aquí.
Lo copiamos y nos vamos de nuevo a Google Collab.
Y ahora en Google Collab vamos a pegar aquí el token que acabamos de generar.
Comentar una cosa y es que este token es privado vuestro.
No podéis compartirlo, aunque estéis viendo aquí el mío.
Yo lo voy a cambiar ahora porque si lo compartís,
pues otra gente lo podría utilizar y eso es un problema para vosotros.
Al ejecutar esta celda hemos conectado Google Collab con Hugging Face
desde donde se está descargando la versión de Stable Diffusion 1.5
que es la versión más actualizada hasta la fecha.
Si habéis hecho todos los pasos bien, veremos que aparece Don en verde,
que todo está correcto.
Y aquí en este botón de la izquierda vamos a ver que está nuestro modelo descargado.
Una vez hecho esto, el siguiente paso es importantísimo.
Porque es donde vamos a configurar a DreamBuzz
para que entienda bien la tarea que queremos que haga.
Si abrimos esta celda, vemos un montón de texto que te voy a explicar.
A ver, ¿qué queremos entrenar?
Queremos entrenar a un personaje, a un objeto concreto,
a un estilo artístico, a un artista.
Yo en mi caso quiero entrenarlo con imágenes mías,
así que voy a marcar Character, Personaje.
Luego, With Prior Preservation, os lo explicaré ahora,
pero vamos a dejarlo marcado como Yes.
Luego, esta opción de aquí no la he probado,
pero parece bastante interesante.
Podéis leer toda la información que os marca
y podéis probar a experimentar con ella,
pero de momento la vamos a dejar desmarcada.
Y ahora, Subject Type.
¿Cuál es la categoría del concepto con el que estás entrenando la inteligencia artificial?
Yo, por ejemplo, en este caso lo estoy entrenando con imágenes mías,
con lo cual yo podría utilizar aquí la palabra Person o la palabra Men.
Si, por ejemplo, eres una chica, pues también podrías utilizar Person
o podrías utilizar la palabra Woman.
Si lo vas a hacer con tu hijo o con tu hija,
pues podrías poner Boy, Girl, Baby.
Si lo vas a hacer con tu mascota, Dog, Cat.
Es decir, es la clase que representaría
aquel concepto con el que vas a entrenar a Stable Diffusion.
Yo en este punto tengo que decir que siempre lo he entrenado con la palabra Person
para indistintamente hombres y mujeres
y siempre he obtenido buenos resultados.
Pero aquí podéis experimentar probando si Men o Woman os dan mejores resultados.
Pero bueno, vamos a poner Person en este caso y vamos a continuar.
En Instance Name, lo que vamos a poner va a ser el token
que queremos que identifique al concepto que estamos entrenando.
Yo en mi caso, como son imágenes mías, voy a poner el token.csv.
Y aquí nos vamos a asegurar que el token que utilicemos sea una palabra
que ya Stable Diffusion no la conozca por otro concepto, ¿vale?
Yo aquí no pondría, por ejemplo, la palabra Carlos Santana,
porque a lo mejor esto lo relaciona con el guitarrista.
O en el caso de Crespo, pues tampoco he puesto Quantum Fracture
por si esto se fuera a mezclar con conceptos de física cuántica.
Con Sandra le he puesto, por ejemplo, la hiperactina.
O con Martí le he puesto CD-Clone. Se entiende, ¿no?
Vamos a utilizar un token que sea identificativo y único.
Y además os recomiendo que sea corto porque lo vais a tener que escribir muchas veces.
Ponemos.csv y continuamos.
Y el resto de opciones las vamos a dejar tal y como están.
En este punto ahora vamos a ejecutar esta zelda que acabamos de configurar.
Y al ejecutarlo nos va a salir aquí abajo un menú para elegir archivos.
Va a ser en este punto donde nosotros vamos a subir aquellas imágenes
que hemos preparado para entrenar a Dreambooth.
Y lo que vamos a hacer es lo siguiente.
Vamos a coger la primera imagen y la vamos a subir.
Únicamente una imagen. ¿Por qué, Carlos? A mi caso, no hagas tantas preguntas.
Vamos a subir esta imagen y nos vamos a ir al menú de la izquierda donde pone archivos.
Y aquí vamos a ver cómo se ha creado ahora una carpeta que pone data.
Que si la abrimos pues pone.csv que es el token que he utilizado.
Y una vez haya subido pues veremos que la imagen está aquí.
Entonces vamos a clicar en esta carpeta con el botón secundario y le vamos a dar a subir.
Y vamos a subir el resto de imágenes. Ahora sí, todas juntas.
El motivo de hacer esto así es porque es muchísimo más rápido a la hora de subir las imágenes.
Y tardamos pues en vez de 5 o 10 minutos, pues unos pocos segundos.
Una vez hemos hecho esto, vamos al paso número 5.
Que es un paso opcional pero muy importante.
¿Recordáis que antes hemos marcado esta casilla de aquí como Yes?
La de With Prior Preservation.
Bueno, esto lo que significa es que cuando nosotros vamos a entrenar a Dreambooth
para que aprenda el concepto de nuestra cara,
vamos a estar controlando al mismo tiempo que Dreambooth
no se olvide de cómo eran las caras de las otras personas que puede generar.
Si no marcara esta opción, pues todas las personas serían.csv
o todos los perros serían tu mascota.
Y no queremos eso.
Entonces, la estrategia en este caso es generar unas cuantas imágenes
que representen a la clase perro o a la clase persona
para estar entrenando en paralelo a Dreambooth con imágenes de tu cara
pero también con imágenes de lo que son personas.
Y claro, ¿dónde podemos conseguir nosotros un conjunto de datos con imágenes de personas?
Bueno, pues como estamos trabajando con generadores de imágenes,
pues podríamos generar estas imágenes que necesitamos ahora.
Generar, por ejemplo, 500 imágenes en Google Collab nos podría llevar bastante tiempo
y no queremos esperar tanto.
Así que vamos a utilizar esta celda de aquí
para que si en caso de que estás entrenando para la clase persona
o la clase men o la clase woman o blonded woman,
pues podamos elegir descargarnos un dataset de imágenes que ya está preparado.
En este caso, nosotros arriba hemos marcado que nuestro sujeto,
el tipo del sujeto es person.
Así que en este caso voy a descargarme el dataset de person.
Si por el contrario, vosotros habéis probado con man o con woman,
pues vais a descargar aquel que se corresponda.
Y si no está en ningún caso la clase que necesitáis,
pues lo dejáis sin ejecutar y continuáis.
Y ahí se van a ir generando entonces las imágenes y será la opción más lenta.
Yo en mi caso voy a marcar person, le voy a dar a ejecutar.
Y ahora una vez hayáis hecho todos estos pasos, estamos listos para entrenar.
En este caso vamos a ejecutar esta celda de aquí tal cual está.
FP16 lo vamos a dejar marcado, training step a 1600.
Vamos a dejar todas las opciones según aparecen, le vamos a dar a ejecutar.
Y si todos los pasos se han hecho correctamente, lo que vais a ver aquí es el siguiente banner.
Training.
Se está entrenando y vamos a ver aquí cómo ya nos aparece el número de steps
que se van a ir cumpliendo y cuánto tiempo va quedando.
En este caso solo nos queda esperar aquí ya tu trabajo está hecho.
Ahora es cosa de la inteligencia artificial que se vaya entrenando poco a poco.
Y será cuestión de 40 minutos, una hora, depende de la tarjeta gráfica que te haya tocado,
que Dreambooth va a acabar de entrenar a tu versión de Stable Diffusion.
Mientras esto se va cocinando, déjame que te cuente qué es lo que podría pasar una vez el entrenamiento haya terminado.
Imaginad por ejemplo que vais a probar el modelo y que en las imágenes vuestra cara no termina de identificarse bien.
Os parecéis un poco es cierto, pero no es perfecto.
Pues en este caso una de dos, o podría ser que las imágenes que has utilizado no son tan buenas
y entonces tendrías que ir a buscar otras imágenes mejores donde tu cara se identifique mejor.
O te han faltado steps de entrenamiento.
En ese caso volveremos a esta casillada aquí y ampliaremos los training steps por ejemplo a 3000.
Vamos a dejar que la inteligencia artificial pueda prender tu cara por más tiempo.
Pero ojo cuidado, no siempre más training steps es mejor.
Si os pasáis con este valor, podríais acabar con una inteligencia artificial sobreajustada,
que se estarían memorizando las imágenes de entrenamiento.
Tu cara se reconocería, aunque podría haber artefactos extraños como esto de aquí,
e incluso podría ser que solo aparecieran copias de las imágenes originales.
Si ese fuera el caso, pues vendríamos para acá y bajaríamos el número de steps.
Y por fin, el entrenamiento está terminado.
Vemos el mensaje de Don, the checkpoint model is in your drive.
Vamos a ir a Google Drive.
Y como podéis ver aquí en Google Drive, pues ahora aparece mi archivo.csv.checkpoint.
El archivo de StableDiffusion que yo he reentranado y que ahora me puedo llevar a cualquier programa para utilizarlo.
Vamos a volver a Google Collab para hacer una prueba del modelo.
Y para eso vamos a ejecutar esta última celda de aquí, aunque este paso ya es opcional,
pero vamos a darle a ejecutar y lo que va a hacer esta celda es montarnos toda una interfaz
para poder utilizar StableDiffusion sobre Google Collab.
Vamos a seguir utilizando no nuestro hardware, sino el hardware que Google nos está dando.
Esta celda tarda un poco en ejecutarse la primera vez, pero bueno hemos visto que
aquí en este caso nos está indicando que ha podido coger nuestro modelo, el.csv.checkpoint de Google Drive.
Así que parece que está todo correcto.
Vamos a ver, perfecto.
Una vez esté todo listo nos va a salir aquí un enlace que vamos a poder clicar
y ahora sí nos va a llevar a la interfaz gráfica donde vamos a poder trabajar con StableDiffusion.
Básicamente la interfaz es esta de aquí y nosotros vamos a utilizar esta cajita de aquí arriba
para empezar a escribir pues qué imágenes queremos generar.
Por ejemplo a Photograph off y aquí pondría yo mi token el que he utilizado para entrenar a mi modelo,
en este caso.csv.
Le doy a generar, se está ejecutando en Google Collab y lo que deberíamos de ver en este caso
es que empiezan a aparecer por aquí imágenes donde yo debería de reconocer a personas que se parecen a mí.
Vamos a verlo.
Y efectivamente pues aquí tenemos una primera versión de.csv.
Vamos a darle de nuevo, vale.
Aquí tenemos otra y en este caso no os preocupéis si la cara no termina de parecerse a vosotros.
Por lo general cuando le ponemos un input tipo a Photograph off y tu token,
los resultados no suelen ser tan, tan, tan buenos, sino que tenemos que construir inputs
que sean un poco más complejos para llegar a resultados más espectaculares.
Para probar si todo funciona correctamente os voy a compartir abajo en la caja de descripción
un input que vais a probar para ver si vuestro modelo está bien entrenado.
En este caso el input es este de aquí y lo único que os voy a pedir es que sustituyáis
aquí el corchete token por vuestro token.
Vale y vamos a generar, vamos a subir el número de sampling steps que por defecto aquí viene a 20,
lo vamos a subir a 50 que yo creo que es la cantidad necesaria para obtener resultados
con buen nivel de detalle y le vamos a dar aquí con el botón secundario Generate Forever
para que esté continuamente generando imágenes.
Y un poco la regla que vamos a aplicar aquí es que si de las próximas 10 imágenes sale
alguna que tú digas wow, por ejemplo esta, pues empieza a ser bastante impresionante.
Si sale alguna imagen que tú digas wow, me gusta mucho lo que ha salido aquí,
podríamos dar por bueno el entrenamiento de este modelo y podrías empezar a jugar
para generar tus propias imágenes.
Pues por ejemplo esta imagen a veces salen mejores, a veces salen peores,
no siempre son resultados deseables, entonces vamos a hacer 10 imágenes diferentes y a ver qué tal.
Amigos y amigas, lo tenéis.
A partir de este momento ya contáis con un modelo.ckpt que podéis utilizar,
lo tenéis en Google Drive, lo podéis descargar y utilizarlo cuando os apetezca.
No necesitáis estar entrando siempre a este cuaderno para utilizar este notebook
si queréis generar imágenes, sino que yo recomiendo, voy a poner el enlace también abajo,
que entréis directamente a este modelo de aquí, al Automatic 1111,
que directamente es un notebook que te va a permitir conectarte a Google Drive,
enlazar con el archivo que acabamos de crear y directamente lanzar la interfaz de Stable Diffusion
para empezar a generar imágenes con Google Collab.
Conectamos con Google Drive, damos los permisos, aceptamos.
Tenemos aquí ya montado Google Drive, así que si nos vamos aquí a archivo vemos Google Drive,
buscamos el archivo.checkpoint, lo encontramos, botón secundario, copiar ruta,
nos venimos para acá y ponemos la ruta aquí.
Path to Trained Model, ruta hacia el modelo entrenado.
Ponemos la ruta a Google Drive, ejecutamos y ya directamente se nos va a abrir.
Instalamos lo que haga falta y ejecutamos para lanzar de nuevo el Stable Diffusion
como hemos hecho antes en Google.
Si tenéis una tarjeta gráfica de Nvidia de gama media o gama alta,
os recomiendo que trabajéis en local, generando imágenes en vuestro propio ordenador.
Va a ser mucho más cómodo y en ese sentido recomiendo esta herramienta de aquí.
Os voy a dejar el enlace también abajo.
La podéis descargar al precio que queráis.
Cuando instaléis la herramienta, pues vais a Google Drive, buscáis el archivo,
le dais a descargar y este archivo dentro de la carpeta del programa
que acabáis de instalar, buscáis la carpeta data,
buscáis la carpeta Models y lo guardáis ahí con el nombre que queráis.
Con eso, una vez dentro de la herramienta, pues os vais a ajustes,
seleccionáis el modelo que queráis utilizar, que en mi caso le he llamado.csv final.
Y una vez con el modelo seleccionado, pues ya podemos empezar a trabajar con él.
Pues podemos poner a Fotografo.csv person.
Vale, vamos a ponerlo, vamos a darle a generar.
La primera vez tarda un poquillo más porque tiene que cargar el modelo en memoria,
pero después, pues ya podéis generar imágenes infinitas en vuestro propio ordenador.
Ahí lo tenéis. Voy a probar con el otro input de antes que molaba más.
Y ahí vemos cómo pues ya vamos generando imágenes espectaculares
de cualquier concepto que hayamos entrenado.
Y a partir de este momento, qué?
Bueno, pues ya lo hemos visto en otros directos que para mí el mejor consejo
que os puedo dar para trabajar con estas herramientas es la página web de Léxica Art.
Allí podéis acudir para buscar un montón de inspiración,
de imágenes que os puedan resultar interesantes.
Pues por ejemplo, me gusta esta.
Vengo para acá, copio el input, me fijo en los parámetros que tendría que establecer,
pues Gaiden Scale y Dimensions 13 y 704.
Esto nos lo llevamos a la herramienta, lo vamos a poner por aquí.
Modificamos el input para añadir nuestro token,
pues por ejemplo Portrait of Teenage Archie Andrew.
Vamos a poner aquí dot C C V y vamos a darle a generar.
Ponemos a 13, lo que había que poner a 13 y las dimensiones más o menos estarían correctas.
Vamos a darle a generar y vamos a ver que va a salir una imagen
que a lo mejor no es parecida a lo que hemos visto en Léxica Art,
pero que al menos pues notar resultados interesantes.
Pues por ejemplo, esto de aquí.
Igualmente voy a dejar abajo en la caja descripción unos cuantos inputs más
para que juegues con el modelo.
Pues por ejemplo, este de aquí.
A Funko Pop of dot C C V y salen resultados bastante chulos que podéis probar.
Y también vais a encontrar un enlace a Twitter donde os propongo lo siguiente.
Voy a crear un hilo dentro de Twitter donde voy a ir compartiendo aquellos
resultados que me parezcan más atractivos, más interesantes.
Pues una estatua de bronce de dot C C V o al estilo de la película de Pixar.
Bueno, resultados que voy a compartir junto a sus prompts.
Voy a colocarlo como texto alternativo, con lo cual en cada imagen
vosotros podéis clicar en este botón de aquí para obtener cuál ha sido el input
que he utilizado en cada caso.
Con esto, vosotros tendréis una galería muy completa de resultados
que son interesantes y también me podéis compartir los vuestros.
Y a cambio a vosotros, si todo esto os ha servido,
pues lo que voy a pedir es que compartáis este hilo y también este vídeo de hoy.
Si te ha gustado y te parece interesante la inteligencia artificial,
échale un vistazo al resto de vídeos que hay por aquí, por el canal.
Y si te gusta, pues suscríbete.
Y si además quieres apoyar este proyecto y todo este contenido,
tienes también un enlace a Patreon abajo en la caja de descripción.
Chicos, chicas, nos vemos con más inteligencia artificial en el próximo vídeo.