Cómo usar Stable Diffusion en tu ordenador

La inteligencia artificial ha obtenido una gran relevancia en los últimos años, con herramientas como Chat GPT ganando mucha fama al ayudar en la realización de numerosas tareas, pero no sin levantar grandes polémicas llevando a algunos países como Italia a llegar a prohibirla. Pero opiniones aparte, es imposible negar el avance que supone la introducción de la inteligencia artificial a muchas tareas, y es que, aunque Chat GPT sea el ejemplo más relevante de este avance, hay otras muchas inteligencias artificiales con diferentes especialidades a las que también podemos acceder y usar libremente como por ejemplo Stable Diffusion, la cual explicaremos en este artículo.

Hay muchas tareas aceleradas por IA, por ejemplo, el DLSS de Nvidia hace uso de la inteligencia artificial para subir la resolución de las imágenes en tiempo real de la forma más realista posible y en su versión más reciente incorpora una técnica para generar fotogramas y aumentar aún más el rendimiento que también está basada enteramente en inteligencia artificial. Otros ejemplos pueden ser Demucs, la IA que separa los diferentes instrumentos en una canción, o los modelos destinados a la generación de video u imágenes como Midjourney o DALL-E, que funcionan de forma similar a Stable Diffusion.

Así pues, Stable Difusión es un modelo de generación de imágenes basado en inputs de texto, pero contando con una ventaja clave frente a sus competidoras, ya que esta es de código abierto completamente gratuito y está abierta para que cualquiera pueda descargar, crear y usar sus modelos de inteligencia artificial. Incluso es posible crear y fusionar diferentes modelos generadores personalizados para usarlos con Stable Diffusion.

Toda esta libertad y la posibilidad de correrla por nuestra cuenta en cualquier sistema la hacen perfecta si queremos jugar con la posibilidad de crear imágenes con inteligencia artificial en nuestro ordenador y por eso en este artículo explicaremos como instalarla y usarla de forma sencilla a través del lanzador interactivo Easy Diffusion para obtener las mejores imágenes generadas por IA sin necesitar de conocimientos avanzados sobre el tema.

La instalación de Stable Diffusion es muy sencilla dado que usaremos un lanzador simplificado y visual que ha ido avanzando hasta que el proceso de instalación es igual que el de cualquier otro programa, así que la parte de instalación no es muy compleja en sí misma.

Los requisitos que tendremos que cumplir para poder usar Stable Difusion son muy básicos, ya que en principio podrá funcionar en cualquier sistema con un procesador e incluso sin tarjeta gráfica dedicada, porque tiene la opción de usar solo la CPU para renderizar a un ritmo mucho menor por lo que no es la opción recomendada, aunque para probar la herramienta y hacer imágenes a baja resolución sirve.

Así pues, los requisitos mínimos será tener una CPU, 8GB de RAM de sistema y un espacio en el disco duro de al menos 25GB para reservar al programa. Si tenemos gráficos integrados necesitaremos que tengan al menos 2GB de memoria dedicada, por lo que en ese caso igual puede ser mejor usar la CPU para el renderizado.

Respecto al hardware recomendado en la web piden contar con una gráfica dedicada de Nvidia o AMD con al menos 2GB de memoria dedicada, aunque siendo realistas si queremos hacer imágenes más o menos grandes y detalladas en un tiempo razonable lo ideal sería contar con 8GB de memoria gráfica como poco, ya que cuanta más tengamos más rápido será el proceso y podremos usar más opciones durante el mismo.  Desde el programa hay varias opciones para ajustar el uso de memoria VRAM y dependiendo de lo que generemos usará más o menos, por lo que siempre podremos adaptar el proceso a la cantidad de memoria que tengamos.

Respecto al modelo cualquier gráfica moderna servirá siendo lo mejor tener gráficas con un bus de memoria rápido. El programa no soporta el uso de los núcleos tensores dedicados para inteligencia artificial que incorporan las tarjetas gráficas de Nvidia de la gama RTX y la última generación de AMD, por lo que solo hará los cálculos con el poder de rasterización de las tarjetas.

A continuación, explicaremos paso a paso como instalarlo en Windows, aunque también se puede usar en sistemas Linux o MacOs.

  1. Descargar el instalador. Para obtener el instalador tendremos que irnos a la siguiente página de GitHub y elegir el sistema operativo en el cual queremos instalarlo, en nuestro caso, Windows
  2. Ejecutar el instalador. Una vez descargado el instalador tendremos que ejecutarlo para comenzar con su instalación e ir pulsando en el botón de “Next” para ir avanzando en los pasos.
  3. Seguir los pasos en pantalla. Aquí seguiremos avanzando por los pasos, pero es importante prestar atención a la hora de elegir la ubicación de instalación, la cual deberá ser en la carpeta raíz de un disco duro, quedando una ruta similar a C:/(carpeta de Easy Diffusion)

    El proceso tardará un rato, ya que tiene que descargar algunos archivos adicionales. Una vez terminada la instalación es recomendable marcar la opción de crear un acceso directo en el escritorio para iniciar la herramienta más fácilmente antes de cerrar la ventana.

Una vez seguidos estos pasos podremos ejecutar Stable Diffusion desde el icono del escritorio o yéndonos a la ruta de instalación y pulsando en el script con el nombre de “Start Stable Diffusion UI”.

 

 

Cuando iniciemos la aplicación nos aparecerá una ventana negra del CMD que se quedará abierta mientras usemos el programa, esta ventana no deberemos cerrarla, ya que es la que va ejecutando el programa, de hecho, podemos consultarla si queremos saber el progreso cuando iniciemos el proceso o saber más información del estado del programa. Esta ventana será el programa que se esté ejecutando, mientras que la que se abre en el navegador es la interfaz, por lo que si queremos salir del programa tendremos que cerrar la ventana del CMD.

Después de que se abra esta ventana se nos debería abrir una ventana en el navegador por defecto del ordenador con la interfaz para usar Stable Diffusion, esta ventana puede tardar en abrirse, puesto que el CMD que se ha abierto antes se asegura de que todos los archivos estén correctamente y si no, los vuelve a instalar. Por eso si hay alguna actualización o error puede tardar más de los normal en abrirse la interfaz. Si queremos abrir la interfaz en otro navegador o si la hemos cerrado sin querer, podremos hacerlo metiendo la siguiente dirección en la barra de navegación de cualquier navegador: http://localhost:9000/ que es la dirección por defecto para acceder a la herramienta.

En la interfaz una vez abierta está dividida en pestañas, siendo las principales y las cuales explicaremos en la guía las de “Generate” que es la pestaña principal en la cual se generarán las imágenes de la IA y la de “Settings” en la cual podremos configurar el rendimiento y otros aspectos de la herramienta. Luego tenemos las pestañas de “Help and Comunity” donde hay links a diferentes recursos y tutoriales relacionados con la aplicación, “Merge Models” que es para combinar modelos de IA y la de “What’s new?” que es el log de cambios de Easy Diffusion. A medida que se va actualizando Easy Diffusion es probable que se añadan más pestañas incorporando más funcionalidades.

Adicionalmente, Tendremos arriba a la derecha un indicador del estado del programa, para saber si está renderizando o si hay algún error.

Pestaña de ajustes

En la pestaña de "Settings" tendremos varios ajustes que afectarán al funcionamiento de la herramienta, por eso es recomendable revisarlas antes de usarla. A continuación, explicaremos los más relevantes:

  • Auto-Save Images. Permite guardar automáticamente todas las imágenes que generemos, pudiendo elegir el directorio donde se guardarán y el formato de la metadata (información que se ha usado para generarla)
  • Block NSFW Images. Si se activa desenfocará el contenido para adultos que se genere.
  • GPU Memory Usage. Elige cuanta memoria de la gráfica se usa para generar imágenes. Usar “Low” si tenemos una gráfica de 2-4GB, “Balanced” de 4-8 GB y “Fast” si tenemos más de 8GB.
  • Use CPU. Elegir esta opción si SOLO queremos usar la CPU para renderizar, útil para probar la IA en sistemas sin gráfica dedicada, aunque como decíamos antes es muy lento. No activar si se tiene gráfica dedicada, ya queno se pueden usar a la vez.
  • Confirm dangerous actions. Si se activa nos pedirá confirmación a la hora de eliminar archivos u otras acciones que puedan significar perder información dentro de la interfaz.
  • Make Stable Diffusion available on your network. Es posible usar el programa en modo servidor accediendo desde otros dispositivos, si activamos esto será posible acceder desde otros dispositivos en la misma red local que pongan la ip del dispositivo seguida del puerto en el que está abierto. Tendremos la dirección exacta para conectarnos desde otro dispositivo si bajamos hasta abajo del todo de la página a la sección de “Server Addresses”.

Siempre que cambiemos los ajustes tendremos que aplicarlos pulsando en el botón de “Save” justo debajo de la lista de ajustes y encima del resumen del hardware de nuestro ordenador.

 

Pestaña para generar imágenes

Una vez revisados los ajustes podremos empezar a generar imágenes. El proceso es muy simple en teoría, ya que solo tendremos que escribir el texto de lo que queremos que genere en inglés en el cuadro de arriba a la izquierda, justo debajo de donde pone “Enter Prompt” y donde aparece el texto “a photograph of an astronaut riding a horse” que se traduce como una fotografía de un astronauta montando a caballo, que es la "prompt" o texto de entrada para la IA que aparece de muestra. Si no tenemos muy dominado el inglés podemos usar un traductor como el de Google para escribir allí el texto en español y copiar la traducción para luego pegarla en el recuadro.

Una vez escrito lo que queremos solo tendremos que pulsar en el botón morado grande que lee “Make Image” para añadir a la cola de renderizado la imagen con el texto que queremos.

También existe la opción de poner cosas que no queremos que haga la IA al generar la imagen o que no queremos que aparezcan en la imagen final si las escribimos en el recuadro justo debajo del texto “Negative Prompt”.

Pero como hemos dicho antes esto no se queda aquí en cuanto a complejidad, ya que nos habremos fijado en que hay varios desplegables debajo del botón de generar imágenes ambos conteniendo un gran número de ajustes que afectarán a como se genera la imagen que generaremos, los cuales explicaremos a continuación para que se entiendan un poco y así poder obtener mejores resultados. Aun así, hay que tener en cuenta que los resultados pueden variar según el texto de entrada que se le dé a la IA, así que lo mejor es ir cambiando los ajustes para experimentar como van afectando al resultado e ir así viendo que es lo que funciona mejor con cada entrada de texto.

Sección de ajustes de imagen

Este primer desplegable nos dejará ajustar todos los parámetros relacionados con la generación de la imagen los cuales explicaremos a continuación.

  • Seed. Es la semilla usada para generar la imagen, generalmente queremos tener la opción “Random” activada para que nos dé una semilla aleatoria con cada renderizado.
  • Number of Images. Estos ajustes permiten generar varias imágenes en una misma orden de renderizado. El primer número será el total de imágenes generadas usando semillas sucesivas para cada una, y el segundo el número de imágenes generadas en paralelo, lo cual significa que procesará ese número de imágenes del total al mismo tiempo, consumiendo más recursos, pero aprovechándolos más en gráficas con mucha memoria VRAM (16 o 24GB). Importante que el número de imágenes en paralelo sea siempre múltiplo del número de imágenes totales, si no, el programa no terminará de renderizar y habrá que reiniciarlo.
  • Model. Es el modelo de Stable Difusion que estaremos usando para procesar la orden de entrada, el cual podremos seleccionar de entre todos los que tengamos instalados. Más adelante explicaremos como instalarlos y obtenerlos.
  • Custom VAE. Los VAE son modelos de IA especializados en mejorar partes específicas de las imágenes generadas, por ejemplo, podemos tener VAEs especializados en mejorar los ojos (como el que viene incluido) las caras u otras partes del cuerpo, paisajes u objetos de las imágenes…
  • Sampler. Esta opción se refiere al algoritmo que se usará para procesar y quitar el ruido de la imagen para sacar el producto final. Dependiendo del sampler puede no ser determinista y tener diferentes comportamientos según el resto de configuración, por lo que es recomendable ir viendo los resultados que da cada uno dependiendo de la situación o no tocarlo.
  • Image Size. Aquí seleccionaremos el ancho y alto sucesivamente de la imagen que generaremos en píxeles. Es recomendable mantener el ratio de aspecto en 1:1 para tener mejores resultados.
  • Interference Steps. Es el número de pasos que hará la IA a la hora de generar la imagen. Usualmente, un número mayor de pasos significará una mayor calidad de imagen, aunque dependiendo de los demás ajustes y sobre todo del Sampler esto puede no cumplirse siempre.
  • Guidance Scale. A mayor valor más a rajatabla se tomará la orden de entrada la IA a la hora de generar la imagen, y en valores menores le daremos más libertad creativa.
  • Hypernetwork. Estos son modificadores que cambian o mejoran la orden de renderizado para adaptarla mejor a un estilo u cosa específica que queramos generar.
  • Output Format. El formato de imagen que se generará.
  • Image Quality. Hace referencia a la calidad del formato de la imagen generada a la hora de mostrarla, pero no afecta a la imagen generada.
  • Render Settings. Opciones para el renderizado, como la opción para que nos muestre como va creando la imagen (no recomendable con poca VRAM), la opción de arreglar caras y ojos en durante el renderizado, la posibilidad de escalar las imágenes a mayores resoluciones eligiendo el factor de escalado y el método y si queremos que solo muestre esa imagen en vez de la original.

 

Sección de modificadores de imagen

Aquí tendremos ajustes que añadirán modificadores a la orden de renderizado para que la imagen tenga un estilo determinado. Aunque viene la descripción en inglés se puede conocer cada efecto por el icono que acompaña a cada opción. Añadir que esas opciones no son todas las posibilidades de la IA, ya que también reconocerá otros estilos u artistas si se los escribimos manualmente en el prompt para generar la imagen.

 

Opciones para imágenes ya generadas

Una vez generada una imagen si pasamos el cursor por encima de ella podremos ver que aparecen algunas opciones además de la semilla usada para generarla. Si pulsamos en la opción de “Use as Input” la IA reutilizará las opciones usadas para generar esa imagen y generar otras similares o hacer modificaciones a la misma, con “Make Similar Images” la ia se pondrá a generar imágenes que se parezcan a la ya generada. Si pulsamos en la de descargar como imagen descargaremos la imagen generada tal y como se ve en el formato que tengamos seleccionado y si descargamos el JSON tendremos un archivo con toda la información usada para generar la imagen.

La opción de “Draw another 25 Steps” seguirá generando la imagen durante otros 25 pasos, útil si queremos refinar una imagen ya generada. Finalmente, la opción de “upscale” nos permitirá escalar una imagen generada.

 

Opciones para generar a partir de bocetos y otras imágenes

La IA permite generar imágenes a partir de fotos ya existentes, bien usando una ya generada con las opciones que comentábamos antes o seleccionando una imagen cualquiera de nuestro ordenador. Además, también podremos pintar un boceto para que la IA se base en él a la hora de generar una imagen si usamos la opción de "Draw". Al final estas fotos servirán como una guía visual para la IA a la hora de renderizar en combinación con el texto de entrada que le demos, aunque los resultados son muy dispares entre ellos y cuesta un poco pillarle el truco.

 

Como ya habíamos comentado antes en algunas secciones es posible descargar más modelos de IA de Stable Diffusion y complementos adicionales para usar con la herramienta y obtener mejores fotos en algunos temas. Por ejemplo, hay modelos especializados en dibujar mejores las personas, otros especializados en pintar casas más realistas… Todo depende de cómo y con qué imágenes se haya entrenado el modelo y como se haya modificado (De ahí la pestaña de fusionar modelos)

Muy importante analizar y tener cuidado con los modelos que se descargan, ya que es fácil ocultar malware en el archivo. Por eso es recomendable siempre analizar los modelos descargados y obtenerlos de sitios de confianza.

Para obtener nuevos modelos simplemente tendremos que buscar en internet archivos en formato .ckpt o .safetensors, pudiendo encontrar modelos de versiones superiores de Stable Diffusion. Una de las webs más conocidas es CivitAI, pero hay muchos más sitios donde obtener modelos y complementos. Adicionalmente, también podremos descargar otros modelos como hypernetworks, VAEs o similares para corregir ciertos aspectos de las fotos.

Para instalarlos tendremos que descargar el archivo, irnos a la instalación de Easy Diffusion y ahí en la carpeta de “Models” meterlo en la subcarpeta correspondiente al tipo de archivo. En cada subcarpeta tendremos un archivo de texto que al abrirlo indicará la extensión de archivos admitidos en cada carpeta.

Por último, si queremos desinstalar la aplicación en algún momento podremos hacerlo simplemente eliminando la carpeta de la aplicación en la ruta del sistema y con eso habremos quitado la aplicación del sistema.