El otro día veíamos cómo generar imágenes de nosotros mismos entrenando y utilizando Stable Diffusion con Dreambooth, por aquellas fechas el método aun no había sido perfeccionado y requería de instancias virtuales de pago, además de ser un proceso largo y tedioso para alguien sin experiencia. Lo primero es acceder a la página de Google Colab dónde ejecutaremos un script paso a paso, consta de siete, el último de todos es para generar las imágenes con nuestro modelo ya entrenado haciendo uso de la herramienta creada por AUTOMATIC1111. El entrenamiento se realiza una única vez, al terminar se nos generará un fichero ckpt con nuestro concepto ya integrado en Stable Diffusion, ese fichero lo tendremos que utilizar cuando vayamos a generar las imágenes incluyendo nuestro concepto. Al ejecutar el primer paso nos solicitará permisos para conectar con nuestra cuenta de Google Drive, en ella se almacenarán los ficheros necesarios para el proceso. El tercer paso nos pide conectar nuestra cuenta a HuggingFace a través de su API, es necesario para descargar el modelo original previamente entrenado para poder trabajar sobre él. Es necesario también solicitar acceso al mismo para que este paso se complete satisfactoriamente. Una vez terminado de descargar el modelo original de Stable Diffusion vamos a configurar las condiciones del entrenamiento en el paso 4. With_Prior_Preservation: Indica que el concepto se ha de integrar sobre el modelo original de Stable Diffusion y no será lo único que aparezca en las imágenes a generar. Llegados al paso del entrenamiento, número 6 podemos ejecutarlo sin más y dejarlo el tiempo requerido, puede tardar bastante dependiendo de la capacidad de procesamiento que se te haya asignado. Con nuestro fichero ya entrenado estamos preparados para utilizar la herramienta de AUTOMATIC1111. La primera caja para introducir el texto de entrada (prompt). Para resultados óptimos se recomienda que sean en Inglés. Un buen catálogo de creaciones con Stable Diffusion y sus textos de entrada puede encontrarse en Lexica Art para ayudar a inspirarte. Desarrollador de software, informático, emprendedor y entusiasta por la tecnología desde tiempos inmemoriales. A medida que vamos generando imágenes y vemos toda la variedad de resultados increíbles que vamos obteniendo, es inevitable pensar en cómo podríamos indicarle al modelo que nos genere a nosotros o a otra persona específica. Pues la noticia hoy es que ya es posible. En este espacio afirma que en la implementación original de DreamBooth se basa en el modelo Imagen de Google, sin embargo, un usuario común no tiene acceso a ese modelo ni a los pesos preentrenados del mismo. DreamBooth requiere las imágenes de entrada, el token con el que la queremos asociar y una clase a la que pertenece. 1. Hacer clic en el enlace anterior para abrir Google Colab. 2. Nos desplazamos hasta la primera sección, Initial Setup y ejecutamos el código haciendo clic en el icono de Play. 3. 4. Una vez logueados, debemos ir a buscar nuestro token de acceso. 5. 6. 7. 8. 9. 10. 11. Una vez configurada la clase, pasamos al proceso principal, el entrenamiento del modelo. 12. Ejecutar el nuevo modelo. Y esto es todo. Vamos a explicarte cómo entrenar a una IA con tu cara para generar tus propios avatares e imágenes personalizadas. Concretamente, lo que haremos es entrenar a Stable Diffusion por nuestra cuenta para que nos conozca, y luego utilizar esta popular IA para generar imágenes con nuestra cara. El conseguir resultados como los avatares de Lensa dependerá de la paciencia que le dediquemos luego a explorar los comandos escritos que podemos pedirle a la IA para generar los avatares. Realmente, este proceso es más sencillo de lo que parece, aunque puede tardar horas en hacer el aprendizaje, ya que se basa en cuadernos de entrenamiento creados por personas para que tú solo tengas que cambiar algunos parámetros. Vamos a empezar explicándote un poco los conceptos básicos de lo que vamos a hacer, de forma que entiendas por qué hay varios procedimientos para hacer lo mismo. Antes de empezar com el proceso, debes saber que hay varias maneras de hacer esto, tanto el entrenamiento de modelo de IA para aprender a usar tu cara hasta luego su utilización dentro de Stable Diffusion. Para democratizar estos procesos, los desarrolladores y expertos en Inteligencia Artificial crean los denominados cuadernos en la plataforma Google Colab. Se trata de una plataforma que te permite programar y ejecutar código Python, y compartir tus creaciones con otros usuarios. Entonces, lo que vamos a hacer hoy es utilizar dos de estos cuadernos para entrenar la IA y usar el resultado en Stable Diffusion. Para ambos pasos, tienes varios tipos de cuadernos con pasos diferentes y formas diferentes de proceder, pero yo te voy a proponer el que yo he utilizado personalmente. Para entrenar a la IA primero vas a necesitar tener preparada una serie de fotografías de tu cara, ya te lo especificaremos en el primer paso. Lo que vamos a hacer nosotros es entrenar a la IA con nuestras fotos utilizando el modelo de generación de aprendizaje Dreambooth a través de un cuaderno. El resultado será un archivo donde podríamos decir que está "lo aprendido". Estas herramientas que vamos a utilizar tienen múltiples opciones para entrenar tus modelos de distintas maneras y usar diferentes versiones de Dreambooth. Lo primero que tienes que hacer es elegir las fotografías que vas a querer usar para entrenar a la IA con tu cara. Lo ideal es que crees una carpeta para esto en tu ordenador y guardes en ella unas 30 fotos tuyas. Yo he usado algunas menos, pero lo recomendado para entrenar la IA son 30 fotos, o sea que con ellas tendrás unos mejores resultados.Deben ser fotografías en los que solo aparezcas tú, no debería aparecer ninguna otra persona ni animal junto a ti. Sobre qué tipo de fotos debes utilizar, lo más importante es que la mayoría de ellas sean de tu cara, primeros planos o fotos que se te vea básicamente solo la cabeza. Para entrenar mejor a la IA, también puedes incluir algunas fotografías de medio cuerpo, y quizá incluso también alguna de cuerpo entero. Por último, para optimizar el entrenamiento es recomendable recortar las fotos para que todas sean cuadradas, preferiblemente en un tamaño de 768x768. En el caso de que tuvieras alguna fotografía que aparezca una segunda cara junto a ti, puedes intentar borrarla tapándola con color blanco aprovechando la edición. En cualquier caso, presta cuidado a la hora de crear tu dataset de fotos propias para entrenar a la IA. También debes ponerles a todas las fotos un mismo nombre, con un número entre paréntesis para diferenciarlas. El nombre que debes ponerlas es ese nombre que quieras luego usar en los comandos o input de la inteligencia artificial para referirte a ti. Ahora, tienes que entrar en la página de Google Colab de Fast DreamBooth, donde está el cuaderno de entrenamiento automatic1111 que vamos a utilizar. drive.mount('/content/gdrive'), y cuando pases el ratón sobre él tendrás un icono de reproducción sobre el que tienes que pulsar para lanzarlo. Al hacerlo te aparecerá una advertencia, y al aceptarla procederás a vincular el cuaderno con tu cuenta de Google Drive. Tienes que iniciar sesión y aceptar el procedimiento dándole todos los permisos para conectarse a tu Google Drive. A continuación, tienes que hacer lo mismo y ejecutar el elemento de Dependencies que te aparecerá en segundo lugar. Esto va a instalar las dependencias necesarias en tu cuenta de Google Drive. Ahora toca pasar al bloque de Model Download, que es uno de los pasos más importantes. Aquí, lo que tienes que hacer es desplegar las pestañas de Model_Version y Custom_Model_Version, y en ambos casos eligiendo la v2.1-768px. Como ves, puedes elegir entre 768px y 512px, pero si has editado las fotos de tu dataset a 768x768 píxeles, debes usar la 768px. Cabe la posibilidad de usar fotos a 512x512, pero la recomendada es la de 768px para tener mejores resultados. Espera unos segundos hasta que aparezca Done! Ahora vamos al bloque de Dreambooth, que está dividido en varias celdas ejecutables, siendo la primera la Create/Load a Session. Tienevarias cosas que puedes rellenar, de las cuales no todas son importantes. Realmente, solo es suficiente con rellenar Model_Version, pero aunque los dos elementos anteriores no son necesarios para el procedimiento sencillo, vamos a explicártelos igualmente. Session_Name: Puedes crear una sesión poniéndole un nombre. De esta manera, si no te gusta cómo se ha entrenado una IA, puedes añadir más pasos a la sesión en vez de empezar desde cero. Pero la primera vez que uses esto no hace falta poner nada ni rellenarlo. Session_Link_optional: En el caso de que no uses Google Drive sino que hayas creado una IA en otra cuenta, puedes añadir su enlace aquí. Model_Version: De nuevo tienes que indicar el nombre de la sesión. Cuando termines con todo, ejecuta la celda Create/Load a Session con el botón de reproducción que hay a la izquierda del titular del cuadro. Si has dejado los dos primeros libres, te pedirá escribir un nombre de sesión en un texto en rojo, y puedes escribir el que quieras, como prueba. Ahora, vamos con la celda de Instance Images. Estas son las diferentes cosas que debes anotar o cambiar antes de ejecutar el elemento, te las explicamos una a una. Remove_existing_instance_images: Elimina las fotos que estuvieras usando en otras sesiones. IMAGES_FOLDER_OPTIONAL: Si quieres, te meterá tus fotos en una carpeta que le digas que cree. Smart_Crop_images: En el caso de que no recortaras las imágenes ni les cambiaras el tamaño como te hemos dicho antes, con este campo puedes pedir que se haga automáticamente. Crop_size: En el caso de que vayas a recortarlas o cambiarles el tamaño, aquí puedes elegir cuál utilizar. Pero en este caso, habiendo hecho el trabajo antes no hace falta que las pongamos a 768 con este método. Cuando ejecutes esta celda, abajo del todo te aparecerá la opción de seleccionar archivos abriendo un explorador de archivos. Con ella, tienes que elegir y añadir las fotos que hemos preparado al principio de todo. En los siguientes dos puntos, Captions solo lo tienes que ejecutar tal y como está, y el siguiente te lo puedes saltar porque es opcional para usuarios avanzados. El apartado Training es lo más importante, y significa que vamos a empezar a entrenar a nuestra IA con las imágenes que hemos subido. Resume_Training: En el caso de que hayas entrenado ya a la IA y no estés satisfecho con el resultado, puedes marcar esto para seguir entrenándola durante unos cuantos pasos más tras cargar la sesión. UNet_Training_Steps y UNet_Learning_Rate: Son los pasos y el tipo de entrenamiento de la IA. El creador establece 650 pasos por cada 10 imágenes cuando usas el modelo 1e- que aparece por defecto, y que no deberías modificar si no sabes nada. Save_Checkpoint_Every_n_Steps: Esto es opcional, para que se vayan guardando los cambios a cada determinados pasos por si hay algún fallo. Disconnect_after_training: Si quieres desconectarlo todo después de entrenar. Una vez tengas todo hecho, pulsa en el botón de ejecutar de Start DreamBooth. Una vez hayamos hecho el entrenamiento, es turno de empezar a utilizar los resultados y generar los avatares. Para eso, vamos a utilizar el cuaderno de Stable Diffusion 2.1 del proyecto AUTOMATIC1111, que es una interfaz web para usar Stable Diffusion. En él, ve ejecutando las primeras celdas para vincular la misma cuenta de Drive que hayas usado antes. A continuación, en Model Download/Load tienes que elegir la opción v2.1-768, ya que es la misma que hemos utilizado en el punto anterior. Ahora, llegarás al último paso llamado Start stable-diffusion, que sirve para lanzar Stable Diffusion. Cuando termine, abajo del todo de la última celda verás el mensaje Running on public URL: seguido de una dirección. Antes de empezar a usar Stable Diffusion, tienes que ir a la página de Google Drive e iniciar sesión con la cuenta que hayas estado utilizando. Aquí dentro tendrás un archivo .ckpt, que es donde se ha guardado el modelo de IA entrenado. Lo que tienes que hacer es clic derecho sobre él, y elegir la opción de Mover a. Ahora, tendrás que ir a la raíz de tu Drive, y entrar en sd > stable-diffusion-webui > models > Stable-diffusion y pulsa en Mover aquí. Ahora ya puedes ir a la pestaña donde hayas ejecutado Stable Diffusion en su interfaz web, y arriba del todo abre la pestaña Stable Diffusion checkpoint arriba a la izquierda para seleccionar el modelo que acabamos de mover en el paso anterior. Si no aparece porque lo habías abierto antes de mover la carpeta, pulsa en el botón azul de actualizar para que aparezca. Ahora, simplemente ve a la pestaña txt2img, que es la de generar una imagen a través de texto. En ella, tienes que escribir el Prompt o comando para generar la imagen. Realmente, la parte complicada empieza ahora. Lo único que tienes que tener en cuenta es que para que utilice tu cara, debes mencionar el nombre que hubieras puesto en tus fotos. Por ejemplo, para una retrato mío solo tengo que poner portrait of yubal. Y a partir de aquí ya depende todo de ti. La verdadera aventura comienza ahora, porque encontrar un prompt que genere una imagen tal y como tú la quieres puede ser complicado. Puedes empezar explorando, y poco a poco ir añadiendo más detalles a tu petición. Esto ves así porque la parte más complicada de crear imágenes a través de IA es el comando de petición o prompt que le envías a la IA. Aquí solo recordarte que los comandos los puedes poner también en español. En mi caso, después de copiar y pegar algunos prompts de Internet empecé a buscar combinaciones por mi cuenta. Empecé con "retrato de yubal", luego pasé a "retrato de yubal, pintado por van gogh", y así poco a poco fui añadiéndole elementos separándonos por una coma. Además de el prompt, verás que debajo tienes otros elementos con los que puedes configurar la imagen. Aquí lo que elijas determinará también el resultado, pudiendo determinar el método de sampleo, que le da diferentes estilos al dibujo. Lo único importante de cambiar es width y height, la anchura y altura de la imagen, que deben ser de 768 por haber entrenado a la IA con estos tamaño. Lo demás, lo mejor es que vayas explorando. Otra cosa importante es el campo Sampling steps, que son los pasos que da la IA para crear la imagen. Cuantos más pasos, más detalles y precisión tendrá la imagen, aunque un poco menos de creatividad. Para terminar, cabe la posibilidad de que a veces algunos de estos cuadernos den fallos temporales, ya que el código del que están compuestos tiene muchas variantes y son proyectos colaborativos en los que alguien toca una cosa en un sitio y todo lo demás puede fallar. La startup londinense stability.ai ha logrado la hazaña de imponer una IA generativa de imágenes frente a dos gigantes estadounidenses. Si se le pregunta al gran público sobre la inteligencia artificial (IA), dos nombres surgen espontáneamente. El primero es, por supuesto, ChatGPT, que domina ampliamente el mercado de la IA. Sin embargo, no es raro escuchar también la mención de Midjourney. Para generar una imagen, se parte de un prompt, como en ChatGPT. Si falta inspiración, se puede tomar inspiración de creaciones ya realizadas copiando su prompt. Stable Diffusion no es sólo bueno para crear imágenes. También puede partir de una imagen existente y proponer variaciones de la misma. Además, si quieres aprender a visualizar datos con herramientas modernas, es posible aplicar técnicas de IA para obtener representaciones gráficas avanzadas. La IA generativa se basa en dos tecnologías esenciales: el machine learning y el deep learning, que se basa en modelos matemáticos más elaborados. Emad Mostaque, fundador de Stability AI, fundó su empresa en Londres a finales del año 2020, y por lo tanto dos años antes de la explosión de ChatGPT. El desarrollo de Stable Diffusion involucró a investigadores de un grupo de la Universidad Ludwig Maximilian y a datos de entrenamiento que, según Mostaque, habrían sido proporcionados por organizaciones sin ánimo de lucro. Stable Diffusion no fue la primera IA generativa de imágenes ofrecida al público. En enero de 2021, OpenAI pudo presentar la primera aplicación concreta de sus investigaciones: Dall-e. El 12 de julio de 2022, otra IA generativa entró en el mercado (en versión beta): Midjourney. Stable Diffusion, por su parte, apareció en agosto de 2022 y también se hizo notar por su capacidad para generar imágenes sofisticadas. Hasta mediados del verano de 2023, Midjourney demostró ser ampliamente superior a Stable Diffusion. A finales de julio, Stable Diffusion XL 1.0 fue lanzado. Si bien muchas fórmulas son gratuitas, otras requieren la compra de créditos a un precio razonable. Muchos creativos aprecian el hecho de que es posible instalar Stable Diffusion en versión local en un ordenador equipado con una buena tarjeta gráfica. Lamentablemente, el año 2023 ha sido difícil para Stability AI que ha visto su tesorería disminuir como la nieve al sol debido a los costes de explotación de Stable Diffusion y numerosos reclutamientos. La startup londinense ha intentado recaudar 400 millones de dólares, pero en vano. Stability AI también es objeto de dos procedimientos legales. Colectivos de artistas, así como Getty Images afirman que Stability AI habría utilizado sus obras sin consentimiento para entrenar su IA. Stable Diffusion debería sin embargo recuperarse con su versión 3 anunciada a finales de febrero de 2024 y que mejora notablemente la capacidad de generar textos precisos en una imagen, lo que sigue siendo un punto débil de sus competidores. Con el tiempo han aparecido diferentes métodos para entrenar modelos con Stable Diffusion, mejorando los tiempos de ejecución y el peso de los archivos resultantes. Dreambooth fue la primera opción que apareció para entrenar modelos con Stable Diffusion, desarrollado por Google en 2022. Para conseguir buenos resultados con Dreambooth necesitaremos un conjunto de imágenes, entre unas 20 o 30, para empezar a entrenar con ellas. Una vez finalizado el entrenamiento tendremos un archivo de aproximadamente 2-4Gb de tamaño. A continuación os dejo un par de videos explicando el proceso con más detalle. A continuación debemos hacer una llamada al modelo directamente en el prompt con la siguiente nomenclatura
Qué es DreamBooth y cómo se integra con Stable Diffusion
Dreambooth fue la primera opción que apareció para entrenar modelos con Stable Diffusion, desarrollado por Google en 2022. Para conseguir buenos resultados con Dreambooth necesitaremos un conjunto de imágenes, entre unas 20 o 30, para empezar a entrenar con ellas. Una vez finalizado el entrenamiento tendremos un archivo de aproximadamente 2-4Gb de tamaño. Dreambooth requiere las imágenes de entrada, el token con el que la queremos asociar y una clase a la que pertenece. Emplea cuadernos de Google Colab para democratizar el proceso y facilitar la ejecución paso a paso.
Pasos prácticos y organización del entrenamiento
- Hacer clic en el enlace para abrir Google Colab y seguir la Initial Setup.
- Conectar Google Drive para almacenar ficheros y dependencias.
- Descargar el modelo original de Stable Diffusion y seleccionar la versión adecuada (768px es la recomendada si tus imágenes son 768x768).
- Configurar DreamBooth: Create/Load a Session, Instance Images y Training con parámetros como UNet_Training_Steps y UNet_Learning_Rate.
- Ejecutar Start DreamBooth y esperar a que finalice el entrenamiento para obtener el nuevo modelo.
Del modelo entrenado a la generación de imágenes
Con el fichero entrenado, se utiliza AUTOMATIC1111 como interfaz para generar imágenes a partir de prompt en inglés para mejores resultados. Una vez entrenado, se mueve el archivo .ckpt dentro de la estructura sd stable-diffusion y se selecciona en Stable Diffusion checkpoint. Luego se crea una imagen con txt2img escribiendo un prompt que incluya el nombre asociado a tu rostro, por ejemplo: portrait of yubal. A partir de aquí, las iteraciones explorarán combinaciones y ajustes de parámetros como width, height (768), Sampling steps (recomendado 50) y otros parámetros de configuración del modelo. La variabilidad de los prompts permite obtener retratos, avatares y variaciones estilísticas, desde estilos clásicos hasta interpretaciones modernas.
Análisis de contexto y evolución de Stable Diffusion
La startup Stability AI impulsó Stable Diffusion, posicionándola como alternativa abierta frente a OpenAI y otros jugadores. Emad Mostaque, fundador de Stability AI, recalcó que Stable Diffusion ofrece posibilidades de instalación local, acceso a modelos gratuitos y opciones de entrenamiento que evolucionan con el tiempo. DreamBooth es una de las primeras metodologías para entrenar con Stable Diffusion, seguido por Embeddings (Textual Inversion) para definir palabras clave a partir de un modelo sin modificarlo. En 2024 se esperaba la versión 3 de Stable Diffusion con mejoras en la generación de textos dentro de las imágenes.
Elementos técnicos y recomendaciones
- La integración de DreamBooth utiliza un concepto de “lo aprendido” que se guarda en un archivo ckpt para su uso posterior.
- La elección de resolución de entrada (768x768) es clave para obtener resultados coherentes cuando las imágenes de entrenamiento fueron preparadas en ese formato.
- Embeddings/Textual Inversion ofrece una alternativa para incorporar nuevas palabras clave sin modificar el modelo base.
- Los cuadernos de Google Colab permiten entrenar mediante diferentes variantes de DreamBooth y versiones de Stable Diffusion, con varias posibilidades de configuración.
