GUI para Stable Diffusion

Publicado el 01 marzo 2023 por Daniel Rodríguez @analyticslane

Stable Diffusion en un modelo de aprendizaje automático de código abierto entrenado para generar imágenes a partir de una cadena de texto ( prompt). Aunque se puede instalar desde un repositorio de GitHub, puede ser un poco complicado para la mayoría de los usuarios. Afortunadamente para aquellos que quieran una forma más sencilla existe DiffusionBee una GUI para Stable Diffusion con la que se pueden probar estos modelos en ordenadores con macOS y Windows en el futuro.

Instalación de DiffusionBee

La instalación de DiffusionBee es como cualquier otra aplicación en macOS, solamente es necesario descargar el archivo dmg con la versión adecuada para nuestro procesador desde la página de descarga del proyecto. Al terminar la descarga se debe abrir el paquete y copiar el ejecutaba a la carpeta de descargar.

La primera vez que se ejecuta la aplicación se descargan los datos del modelo. Una descarga que, dependiendo de la versión seleccionada, puede llegar a los 8 Gb, por lo que puede tardar un tiempo.

Uso basico de la aplicación

DiffusionBee es una aplicación sencilla en la que existen cuatro pestañas. La primera es Text to Image en la que se deben introducir un prompt con el que se generará una imagen diferente cada vez. Posiblemente la de la aplicación pestaña que se usará en más ocasiones.

La segunda pestaña es Image to Image, en la que se puede cargar una imagen y modificar esta mediante lo que se indique en el prompt. En tercer lugar, se encuentra la pestaña Inpanting, con la que se pude reemplazar partes de una imagen. La siguiente es Outpainting en la que se puede ampliar una imagen con lo que se le indique al modelo en el prompt.

Finalmente, existe una cuarta pestaña en la que se puede ver el historial de imágenes que se han creado con el programa junto a los prompt usados y la semilla. Algo necesario para refinar las imágenes.

Opciones para la generación de imágenes a partir de texto

En la pestaña Text to Image de DiffusionBee existen varios botones. El primer es Prompt ideas que abre un navegador en ArtHub.ai para consultar algunos resultados que se han obtenido con diferentes prompts. Lo que usar como inspiración. A continuación, se puede encontrar Styles, una colección de etiquetas que se puede agregar al prompt para definir el estilo de las imágenes.

Posiblemente el botón más interesante sea Options, con el que se puede configurar las opciones del programa. Las opciones que tenemos son:

  • Num images: el número de imágenes que se generan cada vez, lo mejor es dejarlo en una.
  • Batch size: otra opción para aumentar el número de imágenes que se desean crear.
  • Image height/width: con el que se puede indicar las dimensiones de las imágenes
  • Steps: los pasos en los que se generarán las imágenes. A más pasos la imagen será más detallada, pero también tardará más en generarse. Lo mejor es unas un valor bajo para probar y posteriormente aumentar cuando se tenga algo que nos pueda interesar.
  • Guidance scale: indica la libertad que se le da Stable Diffusion para interpretar la imagen. Un valor más alto significa una interpretación más estricta.
  • Seed: la semilla usada para generar la imagen.
  • Negative prompt: permite activar un segundo prompt en el que se le puede indicar al modelo opciones que no se desea en la imagen.

Primeros resultados

Lo primero que se puede probar es qué imágenes puede generar el modelo con el nombre del blog. Obteniendo como resultado la imagen que se usa para ilustrar la entrada. Además de esto, uno de los resultados que más me llamó la atención ha sido el siguiente.

Una imagen que puede ser interesante. Otro resultado ha sido una nube de términos, aunque sin mucho sentido.

Posible uso para ilustrar el blog

Un posible uso de las imágenes generadas por DiffusionBee se podría usar para crear las ilustraciones de las entradas del blog. Por ejemplo, para las publicaciones de la semana pasada se podrían haber creado las siguientes ilustraciones como las siguientes.

Para la publicación del lunes pasado he usado el siguiente prompt: Optimize code, Python code, speed, Profiler. Lo que ha generado imágenes como la siguiente.

En la publicación del miércoles he usado como prompt: Chat, text, Python, generate.

Arquitecturas de almacenamiento de datos: Data Lake, Data Warehouse y Data Mart

Finalmente, para la publicación del viernes he probado con: Data Lake, Data Warehouse, Data Mart

Una ilustración que se podria entender como un centro de datos.

Conclusiones

En esta entrada se ha evaluado una GUI para Stable Diffusion que puede simplificar el uso de estos modelos en Mac (aunque está anunciada una versión para Windows). Algo que puede ser de gran utilidad para acercar esta tecnología a los usuarios menos técnicos.

En cuanto al uso para ilustrar las publicaciones, por el momento seguiré usando bancos de imágenes. Como se ha comprobado mi habilidad para producir prompts tiene que mejorar bastante.