Cómo entrenar la IA de difusión estable con tu rostro para crear arte usando DreamBooth

Publicado: 2022-10-10

Mensaje invitado por Tarunabh Dutta.

Si 2021 fue el año de los modelos de lenguaje de IA basados ​​en palabras, 2022 ha dado un salto hacia los modelos de IA de texto a imagen. Hay muchos modelos de IA de texto a imagen disponibles en la actualidad que pueden producir imágenes de alta calidad. Stable Diffusion es una de las opciones más populares y conocidas. Es un modelo rápido y estable que produce resultados consistentes.

how to train stable diffusion

El proceso de generación de imágenes sigue siendo algo misterioso, pero está claro que Stable Diffusion produce excelentes resultados. Se puede utilizar para generar imágenes a partir de texto o para modificar imágenes existentes. Las opciones y parámetros disponibles permiten mucha personalización y control sobre la imagen final.

Si bien es relativamente más fácil trabajar con imágenes de celebridades y figuras populares, simplemente debido al conjunto de imágenes ya disponible, no es tan fácil hacer que la IA funcione en tu propia cara. La lógica dice alimentar el modelo de IA con tus imágenes y luego dejar que haga su magia, pero ¿cómo se puede hacer eso exactamente?

En este artículo, intentaremos demostrar cómo entrenar un modelo de difusión estable utilizando la inversión textual de DreamBooth en una referencia de imagen para crear representaciones de IA de su propio rostro o cualquier otro objeto y generar fotos de resultados con resultados, precisión y consistencia increíbles. Si suena demasiado técnico, espere e intentaremos que sea lo más fácil posible para principiantes.

Tabla de contenido

¿Qué es la difusión estable?

Vamos a olvidarnos de lo básico. El modelo Stable Diffusion es un modelo de aprendizaje automático de texto a imagen de última generación entrenado en un gran conjunto de imágenes. Es costoso entrenar, cuesta alrededor de $ 660,000. Sin embargo, el modelo Stable Diffusion se puede usar para generar arte usando lenguaje natural.

Los modelos de inteligencia artificial de texto a imagen de aprendizaje profundo se están volviendo cada vez más populares debido a su capacidad para traducir texto con precisión en imágenes. Este modelo es de uso gratuito y se puede encontrar en Hugging Face Spaces y DreamStudio. Los pesos del modelo también se pueden descargar y utilizar localmente.

Stable Diffusion utiliza un proceso llamado "difusión" para generar imágenes que se parecen al mensaje de texto.

En resumen, el algoritmo de difusión estable toma una descripción textual y genera una imagen basada en esa descripción. La imagen generada se verá similar al texto pero no será una réplica exacta. Las alternativas a Stable Diffusion incluyen los modelos Dall-E de OpenAI e Imagen de Google.

Guía para entrenar IA de difusión estable con su cara para crear imágenes usando DreamBooth

Hoy demostraré cómo entrenar un modelo de Difusión Estable usando mi rostro como referencia inicial para generar imágenes con un estilo muy consistente y preciso que es a la vez original y fresco.

Entonces, para este propósito, usaremos un Google Colab llamado DreamBooth para entrenar Stable Diffusion.

Antes de lanzar este Google Colab, debemos preparar ciertos activos de contenido.

Etapa 1: Google Drive con suficiente espacio libre

Para esto, necesita una cuenta de Google Drive con al menos 9 GB de espacio libre.

Una cuenta gratuita de Google Drive viene con 15 GB de espacio de almacenamiento gratuito, que es suficiente para esta tarea. Por lo tanto, puede crear una cuenta de Gmail nueva (desechable) solo para este propósito.

google drive

Etapa 2: Imágenes de referencia para entrenar la IA

En segundo lugar, debe tener al menos una docena de retratos de su rostro o cualquier objeto de destino listos para usar como referencias.

  • Asegúrese de que los rasgos faciales estén visibles y adecuadamente iluminados en las imágenes capturadas. Evite el uso de sombras fuertes, especialmente en la cara.
  • Además, el sujeto debe mirar a la cámara o tener un perfil lateral en el que ambos ojos y todos los rasgos faciales sean claramente visibles.
  • La cámara debe ser capaz de capturar rasgos faciales de alta calidad. La mejor opción es una DSLR de nivel profesional o una cámara sin espejo. Una cámara de teléfono inteligente de excelente calidad también puede ser suficiente.
  • La composición debe colocarse en el centro del marco con un poco de espacio libre.
  • Como imágenes de entrada, un mínimo de doce fotos de primer plano de la cara, cinco fotos de medio plano que cubran desde la cabeza hasta por encima de la cintura y aproximadamente tres fotos de figura completa deberían ser adecuadas.
  • Un mínimo de veinte fotografías de referencia debería ser suficiente para este propósito.

birme faces

En mi caso, he fotografiado y recopilado una colección de aproximadamente 50 autorretratos, que he recortado a 512 x 512 píxeles con la herramienta online Birme. También puede usar cualquier editor de imágenes alternativo para este propósito.

Tenga en cuenta que la imagen de salida final debe optimizarse para la web y reducir el tamaño del archivo con una pérdida mínima de calidad.

Etapa 3: Google Colab

Ahora se puede ejecutar el tiempo de ejecución de Google Colab.

Hay versiones gratuitas y de pago de la plataforma Google Colab. Dreambooth puede ejecutarse en la versión gratuita, pero el rendimiento es significativamente más rápido y consistente en la versión Colab Pro (de pago), que prioriza el uso de una GPU de alta velocidad y asigna al menos 15 GB de VRAM a la tarea en cuestión.

Si no le importa gastar unos cuantos dólares, una suscripción de $10 a Colab Pro que incluye 100 unidades de cómputo cada mes es más que suficiente para esta sesión.

google colab signup

También tendrá acceso a memoria RAM adicional y GPU que son relativamente más potentes y rápidas.

Permítame reiterar esto: NO necesita ser un especialista técnico para ejecutar este Colab. Tampoco necesita ninguna experiencia previa en codificación.

Una vez que se registre en Google Colab (versión gratuita o de pago), inicie sesión con sus credenciales y diríjase a este enlace para abrir DreamBooth Stable Diffusion .

Un Google Colab tiene secciones o celdas de "tiempo de ejecución" con botones de reproducción en los que se puede hacer clic en el lado izquierdo, que se organizan secuencialmente. Para reproducir el tiempo de ejecución comenzando desde arriba, simplemente haga clic en los botones de reproducción uno por uno. Cada segmento consta de un tiempo de ejecución que debe ejecutarse. Cuando hace clic en un botón de reproducción, la sección correspondiente se ejecuta como un tiempo de ejecución. Después de un tiempo, aparecerá una marca de verificación verde a la izquierda del botón de reproducción para indicar que el tiempo de ejecución se ejecutó correctamente.

Asegúrese de ejecutar manualmente solo un tiempo de ejecución a la vez y vaya a la siguiente sección de "tiempo de ejecución" solo cuando el tiempo de ejecución actual haya terminado.

En la parte de tiempo de ejecución de la barra de menú superior, tiene la opción de ejecutar todos los tiempos de ejecución simultáneamente. Como sea, esto no es recomendable.

change runtime type dreambooth

Debajo hay una opción etiquetada como "Cambiar tipo de tiempo de ejecución". Si está suscrito a una suscripción profesional, puede elegir y guardar una GPU "premium" y una RAM alta para su ejecución.

choose high ram

Ahora está listo para iniciar DreamBooth Colab.

run dream booth

10 pasos para completar con éxito un modelo de IA entrenado en DreamBooth

PASO 1: Decide la GPU y la VRAM

El paso inicial es determinar el tipo de GPU y VRAM disponible. Los usuarios profesionales tendrán acceso a GPU rápida y VRAM mejorada que es más estable.

determine GPU VRAM

Una vez que haga clic en el botón de reproducción, se mostrará una advertencia porque se está accediendo a GitHub, el sitio web de origen del desarrollador. Solo necesita hacer clic en " Ejecutar de todos modos " para continuar.

choose vram

PASO 2: Ejecute DreamBooth

En el siguiente paso, debe instalar ciertos requisitos y dependencias. Solo necesita hacer clic en el botón de reproducción y dejar que se ejecute.

dreambooth play

PASO 3: Inicie sesión en Hugging Face

Después de hacer clic en el botón de reproducción, el siguiente paso requerirá que inicie sesión en su cuenta de Hugging Face. Puede crear una cuenta gratuita si aún no tiene una. Una vez que haya iniciado sesión, navegue a su página de Configuración desde la esquina superior derecha.

hugging face settings

Luego, haga clic en la sección ' Tokens de acceso ' y en el botón ' Crear nuevo ' para generar un nuevo "token de acceso" y cambiarle el nombre como desee.

access tokens

Copie el token de acceso, luego regrese a la pestaña Colab e ingréselo en el campo proporcionado, luego haga clic en " Iniciar sesión ".

login to huggingface

PASO 4: Instalar xformers

En este paso, puede hacer clic en el tiempo de ejecución para instalar xformers simplemente presionando el botón de reproducción.

install xformers

PASO 5: Conecta Google Drive

Después de hacer clic en el botón de reproducción , se le pedirá permiso para acceder a su cuenta de Google Drive en una nueva ventana emergente. Haga clic en "Permitir" cuando se le soliciten permisos.

access google drive folder

Después de otorgar los permisos, debe confirmar que está seleccionado " guardar en Google Drive ". También debe establecer un nuevo nombre para la variable ' NOMBRE DE LA CLASE '. Si desea enviar imágenes de referencia de una persona, simplemente escriba 'persona', 'hombre' o 'mujer'. Si sus imágenes de referencia son de un perro, escriba 'perro' y así sucesivamente. Puede mantener los campos restantes sin cambios. Alternativamente, puede cambiar el nombre del directorio de entrada: 'INSTANCE DIR' o el directorio de salida: 'OUTPUT DIR'.

dreambooth settings

PASO 6: Sube fotos de referencia

Después de hacer clic en el botón de reproducción en el paso anterior, verá la opción de cargar y agregar todas sus fotos de referencia.

upload images

Yo recomendaría un mínimo de 6 y un máximo de 20 fotografías. Consulte la "ETAPA 2" anterior para obtener una explicación concisa de cómo seleccionar la mejor imagen de referencia en función de cómo se captura el sujeto.

select images

Una vez que haya cargado todas sus imágenes, puede verlas en la columna de la izquierda. Hay un icono de carpeta. Una vez que haga clic en él, podrá ver las carpetas y subcarpetas en las que se almacenan actualmente sus datos.

En el directorio de datos, puede ver su directorio de entrada, donde se almacenan todas sus fotos cargadas. En mi caso, se conoce como "sks" (nombre predeterminado).

Además, tenga en cuenta que este contenido solo se almacena temporalmente en su almacenamiento de Google Colab y no en Google Drive.

input directory

start training

PASO 7: Entrena el modelo de IA con DreamBooth

Este es el paso más crucial, ya que entrenará un nuevo modelo de IA basado en todas sus fotos de referencia cargadas usando DreamBooth.

train images dreambooth

Solo debe centrarse en dos campos de entrada. El primer parámetro es “—solicitud de instancia”. Aquí, debe ingresar un nombre único. En mi caso, usaré mi primer nombre seguido de mis iniciales. La idea es mantener el nombre completo único y preciso.

El segundo campo de entrada crucial es el parámetro '—class prompt'. Debe cambiarle el nombre para que coincida con el que utilizó en el 'PASO 4'. En mi caso, utilicé el término “hombre”. Así que lo volveré a escribir en este campo y sobrescribiré cualquier entrada anterior.

dreambooth parameters

El resto de los campos se pueden dejar intactos. He observado a usuarios experimentar modificando campos como '—imágenes de clase numérica' a 12 y '—pasos máximos de tren' a 1000, 2000 o incluso más. Sin embargo, recuerde que la modificación de estos campos puede hacer que Colab se quede sin memoria y se bloquee, lo que requerirá que reinicie desde el principio. Por lo tanto, es recomendable no editarlos en el intento inicial. Podría experimentar con ellos en el futuro después de obtener suficiente experiencia.

Una vez que ejecute este tiempo de ejecución haciendo clic en el botón de reproducción, Colab comenzará a descargar los archivos ejecutables necesarios y luego podrá entrenar usando sus imágenes de referencia.

Entrenar al modelo tomará entre 15 minutos y más de una hora. Debe ser paciente y realizar un seguimiento del progreso hasta que se complete el tiempo de ejecución. Si su Google Colab está inactivo durante demasiado tiempo, es posible que se reinicie. Así que sigue revisando el progreso y haciendo clic en la pestaña de vez en cuando.

colab executing

execution complete

PASO 8: Convierta el modelo AI al formato ckpt

Una vez completada la capacitación, tendrá la opción de convertir el modelo entrenado en un archivo en formato ckpt, que es directamente compatible con Stable Diffusion.

La conversión se puede realizar en dos fases de tiempo de ejecución. El primero es " Descargar script " y el segundo es " Ejecutar conversión ", donde tiene la opción de reducir el tamaño de descarga del modelo entrenado. Sin embargo, hacerlo degradará significativamente la calidad de la imagen resultante.

Por lo tanto, para mantener el tamaño original, la opción ' fp16 ' debe permanecer sin marcar.

run conversion

Al final de este tiempo de ejecución en particular, se guardará un archivo llamado " model.ckpt " en su Google Drive conectado.

model ckpt

Podemos guardar este archivo para uso futuro porque sus tiempos de ejecución se eliminan inmediatamente cuando cierra la pestaña del navegador DreamBooth Colab. Cuando vuelva a abrir la versión Colab de DreamBooth más tarde, tendrá que empezar desde cero.

Suponga que guarda el archivo del modelo entrenado en su Google Drive. En ese caso, puede recuperarlo más tarde para usarlo con su GUI Stable Diffusion instalada localmente, DreamBooth o cualquier computadora portátil Stable Diffusion Colab que requiera que se cargue el archivo "model.ckpt" para que el tiempo de ejecución funcione de manera efectiva. También puede guardarlo en sus discos duros locales para su uso posterior.

PASO 9: Prepárese para la indicación textual

Los siguientes dos procesos de tiempo de ejecución en la categoría "Inferencia" preparan el modelo recién entrenado para el indicador de texto utilizado para la generación de imágenes. Simplemente presione el botón de reproducción para cada tiempo de ejecución y terminará en cuestión de minutos.

inference

PASO 10: Genere imágenes de IA

Este es el paso final, donde puede escribir las indicaciones de texto y se generarán las imágenes de IA.

Debe usar el nombre exacto de 'instance_prompt' y '–class_prompt' juntos del PASO 6 al comienzo del mensaje de texto. Por ejemplo, en mi caso, usé "un retrato de un hombre tarunabhtd, pintura digital" para generar nuevas imágenes de IA que se parezcan a mí.

image prompt

image generation

A continuación puede ver algunos resultados de imágenes generados con el modelo entrenado de DreamBooth.

sample generated images

Juegue con las indicaciones para obtener los mejores resultados

Si sigue cuidadosamente los pasos descritos anteriormente, podrá generar imágenes de IA que se parezcan mucho a las características faciales de sus imágenes de referencia. Este método solo requiere que la plataforma en línea Google Colab ejecute una versión mejorada de la tecnología AI para la inversión textual.

Para obtener mejores ideas para las indicaciones de texto, puede consultar sitios como:

  • IA de OpenArt
  • Krea IA
  • Arte léxico

También necesita aprender el arte de crear mensajes de texto mejores y más efectivos usando una variedad de estilos artísticos y varias combinaciones. Un buen punto de partida sería Stable Diffusion SubReddit.

Reddit tiene una gran comunidad dedicada a Stable Diffusion. También hay una serie de grupos de Facebook y comunidades de Discord que discuten, comparten y exploran activamente nuevas vías de difusión estable.

A continuación, también comparto enlaces a algunos videos tutoriales de DreamBooth que puedes ver en Youtube:

Espero que encuentre útil esta guía. Si tiene alguna pregunta, no dude en comentar a continuación e intentaremos ayudarlo.

Autor:
Tarunabh Dutta es un cineasta galardonado que ha completado más de 45 proyectos en los últimos 16 años, incluidos largometrajes, cortometrajes, videos musicales, documentales y anuncios comerciales, bajo su marca independiente 'TD Film Studio'.