jueves, noviembre 10, 2022

Cómo hacer retratos de personas con IA usando Stable Diffusion: Retratos de Chema Alonso hechos con IA

Hace unos días, Javier del Pino Díaz contaba en el blog cómo funcionan algunas Inteligencias Artificiales de generación de imágenes como Stable Difussion o Dalle-2. Hoy os traigo un pequeño tutorial para que puedas aprender a utilizar esta tecnología y crear todo tipo de imágenes a partir de fotos tuyas o de una persona, que te permitiría obtener resultados desde cómo habría sido un retrato pintado por Velázquez, Picasso, Okuda, Goya o Sorolla, hasta cómo sería un fotograma en la última película de Spiderman, las posibilidades son infinitas.

Figura 1: Cómo hacer retratos de personas con IA usando Stable Diffusion.
 Retratos de Chema Alonso hechos con IA

Para ello, utilizaremos los servidores de Google, en vez cargar la computación a la tarjeta gráfica de nuestro ordenador, y un cuaderno de Google Colab que ya está preparado para utilizar DreamBooth

Figura 2: Un Chema Alonso hecho con Generative-AI

Yo voy a hacer una demostración de cómo hacer este trabajo con Chema Alonso, para obtener imágenes como esta que puedes ver justo arriba de estas líneas.

Preparación de las imágenes

Antes de empezar debes recopilar 15-20 fotografías donde se te vea la cara de cerca en distintos ambientes y con distintos ángulos, tanto de cuerpo entero como de medio cuerpo como primeros planos, cuanto más rica sea esta base de fotografías mejores resultados obtendrás. 

Figura 3: Fotos de Chema Alonso para entrenar el modelo

Para esta demo vamos a entrenar nuestro modelo con Chema Alonso, así que no hay mucho problema. Entre Google Images y su Instagram tenemos las que necesitamos. Una vez recopiladas, deberás recortarlas en formato 1:1 con un tamaño de 512x512 píxeles, y renombrarlas con un token único, en este caso utilizaremos “eldm”.

DreamBooth en Google Colab

Accediendo al siguiente cuaderno de Google Colab tan solo tendremos que ir siguiendo los pasos que vienen cargados para generar una interfaz que nos permita utilizar Stable Diffusion.

Figura 4: Paso 1 - Conectar el cuaderno con nuestro Google Drive

Figura 5: Paso 2- Instalar las dependencias

En este paso necesitamos descargar el modelo de Stable Diffusion de huggingface, para ello es necesario crear una cuenta gratuita y acceder a la sección de tokens, como se puede ver a continuación.

Figura 6: Paso 3- Descargar el modelo de Huggingface

Una vez añadido en el cuaderno, podemos ejecutar esa instancia como se ve en esta imagen.

Figura 7: Paso 3- Descargar el modelo de Huggingface (descarga)

Aquí llega el paso en el que subimos las fotos, es importante que todas ellas tengan este formato: “token (1)”, “token (2)”, en nuestro caso: “eldm (1)”, “eldm (2)”… ya que esta será nuestra keyword para utilizar el modelo
Figura 8: Paso 4- Crear la sesión de Dreambooth y subir las fotos

Este paso puede durar entre media y una hora. Por defecto aparecen 3.000 training steps, pero por mi experiencia personal puedo decirte que 1.500 - 1.600 es suficiente, pero si el modelo no funcionase puedes regresar y dejarlo en 3.000 aunque el tiempo de espera será mayor.

Figura 9: Paso 5 - Entrenar el modelo

Una vez ejecutes la última instancia, Google generará una URL dinámica que te permitirá utilizar una interfaz gráfica en tu navegador.

Figura 10: Paso 6 - Testear el modelo

Esta interfaz es muy sencilla e intuitiva de utilizar, en la caja de prompt defines la acción (recuerda utilizar tu token) y tras pulsar el botón de generar habrás obtenido tu primera imagen.

Figura 11: Paso 7 - ¡A jugar!

También puedes cambiar los parámetros para obtener mejores resultados (training steps, métodos de sampling, tamaño de la foto…) Estos son algunos ejemplos que he generado con este modelo entrenado con Chema Alonso.

Figura 12: Un retrato detallado y vívido de Chema Alonso

Figura 13: Un retrato al estilo de Greg Rutkovski de Chema Alonso

Figura 14: Otro retrato de Chema Alonso... con otro estilo

Figura 15: Con el pelo en coleta, gorro y pajarita.

Figura 16: Chema Alonso en una peli de Spiderman

Prompts

Si no se te ocurren comandos ingeniosos para obtener imágenes, puedes probar con páginas web como https://lexica.art/ donde puedes ver los prompts que hay detrás de cada imagen. También te invito a utilizar los comentarios de este artículo (deja tus comentarios y tus resultados) para compartir con los demás los que más te gusten.

Reutilizar el modelo

En tu carpeta de Google Drive encontrarás un fichero con la extensión “.ckpt”, este es el modelo que has entrado. Si quieres volver a utilizarlo te dejo a continuación otro cuaderno de Google Colab que tras conectarse con tu cuenta de Google Drive y cuando hayas definido la ruta del archivo en los pasos que te indica, te permitirá utilizar de nuevo un enlace dinámico con la interfaz de Stable Diffusion. Si quieres compartir tus creaciones o tus prompts, también puedes mencionarme en Twitter.


3 comentarios:

Unknown dijo...

Hola buenas , en la celda de Test The Trained Model me pide esto "It seems that you did not perform training during this session or you chose to use a custom path,
provide the full path to the model (including the name of the model):" y he marcado las dos opciones en esa celda, no se continuar si alguien me puede ayudar :)

Unknown dijo...

Hola buenas , en la celda de Test The Trained Model me pide esto "It seems that you did not perform training during this session or you chose to use a custom path,
provide the full path to the model (including the name of the model):" y he marcado las dos opciones en esa celda, no se continuar si alguien me puede ayudar :)

Andres Zambrano dijo...

Es seguro conectar mi Drive a este bloc? porque Google me advierte lo siguiente:

Es posible que solicite acceso a tus datos almacenados en Google o que lea información y credenciales de otras sesiones. Revisa el código fuente antes de ejecutar el bloc de notas.

Entrada destacada

Tokenomics 101: Una explicación con gráficos

He tenido que explicar muchas veces por qué alguien va a pagar algo por un Token . Es verdad que cuando se habla de Tokens , es muy diferent...

Entradas populares