Qué es Stable Diffusion, cómo instalarlo y utilizarlo

NUEVO PROYECTO: Recibe una curiosidad diaria con nuestra Newsletter. Pequeños asombros diarios para Personas Altamente Curiosas
imagenes generadas con stable diffusion

Esto es una guía para conocer Stable Diffusion y enseñar cómo puedes utilizar esta herramienta.

La imagen de arriba está generado con Stable Diffusion. Se ha generado a partir del siguiente texto (prompt)

City skyline with skycrapers, by Stanislav Sidorov, digital art, ultra realistic, ultra detailed, photorealistic, 4k, character concept, soft light,blade runner, futuristic

Stable Diffusion es un modelo de aprendizaje automático text-to-image. Un modelo de deep learning, de inteligencia artificial que nos permite generar imágenes a partir de texto que le metemos como input o entrada.

No es el primero modelo ni la primera herramienta que sacan de este estilo,ahora mismo se habla mucho de Dall-e 2, MidJourney, Image de Google, pero sí que es el más importante por lo que representa. Stable Diffusion es un proyecto Open Source, de forma que cualquiera puede utilizarlo y modificarlo. En su versión 1.4 tenemos un archivo .cpxt de 4G donde viene todo el modelo pre-entrenado, y esto, es una auténtica revolución.

Tanto es así que en tan solo 2 o 3 semanas desde su liberación, encontramos plugins para PhotoShop, GIMP, Krita, WordPress, Blender, etc. prácticamente cualquier herramienta que traaje con imágenes está implementando Stable Diffusion, tanto es así que hasta los competidores como Midjourney están utilizándolo para mejorar sus herramientas. Pero no solo sirve para generar herramientas, sino que nosotros como usuarios podemos instalarlo en nuestro PC y ejecutarlo para obtener las imágenes en local.

Porque además que sea Open Source no quiere decir que sea menos potente que los anteriores. Es una auténtica maravilla. Para mí ahora mismo es la mejor herramienta que podemos utilizar si queremos generar nuestras imágenes pra cualquier proyecto.

Formas de instalar y usar Stable Diffusion

Hay diferentes formas de utilizarlo. Yo ahora mismo recomiendo 2. Si tu ordenador tiene la potencia necesaria, es decir una gráfica de unos 8Gb de RAM, entonces instálatelo en tu ordenador. Si tu hardware no es lo suficientemente potente usa un Colab de Google, ahora mismo te recomiendo el de Altryne, porque viene con interfaz gráfica y es más fácil de utilizar.

NUEVO PROYECTO: Recibe una curiosidad diaria con nuestra Newsletter. Pequeños asombros diarios para Personas Altamente Curiosas

Paso a detallar.

Colab de Altryne

Esta es la opción que yo te recomiendo si tu ordenador no es lo suficientemente potente (GPU con 8Gb de RAM) o si quieres probarlo con todas sus funcionalidades sin tener que estar instalando nada.

La recomiendo porque tiene una interfaz gráfica muy cómoda con muchas opciones para controlar las imágenes y otras herramientas del modelo como el image to image y el upscale

Utilizamos el Colab de Google creado por Altryne y Google Drive para guardar el modelos y los resultados.

Es todo gratis. Dejo un vídeo de todo el proceso que como verás es muy sencillo.

Instalar en PC

Para instalarlo desde PC puedes seguir las indicaciones que dan en su GitHub, https://github.com/CompVis/stable-diffusion o en su versión con interfaz gráfica que me gusta mucho más https://github.com/AUTOMATIC1111/stable-diffusion-webui y en windows y Linux puedes usar este ejecutable para instalarlo Stable Diffusion UI v2

Ya sabes que necesitas una GPU potente de unos 8Gb de RAM mínimo para que funcione fluidamente. Puedes hacer que tire de CPU, pero es muchísimo más lento y también dependerá del procesador que tengas. Así que si tu equipo es antiguo tendrás que resignarte a utilizar los Colab o algún método de pago para usar Stable Diffusion

Las ventajas de tenerlo en tu PC, es que es mucho más rápido utilizarlo, no tienes que instalar ni configurar nada, tan solo haciéndolo una vez es suficiente, a partir de ahí todo es mucho más rápido.

Además otra razón por la que me gusta mucho es porque puedo integrarlo en otros scripts y aprovechar las imágenes generadas metiéndolas directamente en el workflow de las tareas lo que es un punto muy importante.

Colab oficial Diffusers

Es muy similar al Colab que he recomendado arriba, se ejecuta casi igual, NO hay que subir el modelo, pero no tiene interfaz gráficay apra modificar cualquier opción hay que ir cambiando las opcines de los bloques de código y modificándolos para ajustarlo a lo que necesitamos.

Además no podemos utilizar la opción de image to image que es muy atractiva.

Puedes acceder desde este https://colab.research.google.com/github/huggingface/notebooks/blob/main/diffusers/stable_diffusion.ipynb

Tenemos filtro para imágenes adultas, el famoso NSFW pero puedes desactivarlo utilizando este código, es decir creando una celda en el documento con

def dummy_checker(images, **kwargs): return images, False
http://pipe.safety_checker = dummy_checker

Hay que ponerlo justo después de la celda

pipe = pipe.to("cuda")

y ejecutarlo

Colab Stable Diffusion Infinity

En este Colab podemos utilizar la herramienta Infinity, que nos permite completar imágenes. Crea contenido a partir de la imagen existente. Una auténtica pasada.

https://colab.research.google.com/github/lkwq007/stablediffusion-infinity/blob/master/stablediffusion_infinity_colab.ipynb#scrollTo=lVLSD0Dh0i-L

Dreamboth con Stable Diffusion

Esta es la implementación de Dreamboth de Google con Stable Diffuision que permite a partir de unas pocas imágenes de un apersona obtener resultados personalizados con la cara que el demos.

Una forma increíble de personalizar las imágenes

https://github.com/XavierXiao/Dreambooth-Stable-Diffusion

Otros Colabs

Ya sabes como se trabaja en Colab, pues te dejo otros que voy encontrando pra que utilices el que más te gusta. Incluso si quieres puedes hacer una copia y modificarlo a tu gusto para tener tu propia versión

Desde su web oficial

Una forma sencilla de utilizarlo, como si usas Dall-e 2 en OpenAI, pero si usas la plataforma el servicio es de pago. https://stability.ai/

Desde HuggingFace

Una opción interesante para probarlo rápidamente y sacarnos unas imágenes, solo para ver como funciona, pro faltan muchas opciones que utilizaremos si vamos a ponernos en serio con esto.

https://huggingface.co/spaces/stabilityai/stable-diffusion

Utilizando AWS o algún servicio Cloud

Se puede utilizar el modelo de Stable Diffusion haciéndolo correr en hardware en cloud, un servicio clásico es AWS de Amazon. Ahora mismo estoy ahciendo pruebas con instancias EC2 para trabajar con diferentes algoritmos. Os contaré qué tal.

Otros servicios de pago

Hay muchos y cada vez salen más, desde implemetnaciones en stock de fotos a webs que nos permiten integraciones con API. De momento me ha llamado la atención esta, aunque personalmente voy a utilizar los servicios gratuitos

Herramientas para prompt engineering

El prompt engineering es la parte referida ala generación del prompt, es decir la frase con la que alimentamos el modelo para que genere nuestras imágenes. No es un tema trivial y hay que saber muy bien como utilizarlo para obtener grandes resultados.

Una herramienta muy útil para aprender es Lexica, donde vemos imágenes y el prompt que han usado, el seed y el guidance scale.

Navegando por ahí aprenderás que tipo de elementos tienes que asignar al promp para obtener e tipo de resultado que buscas.

Deja un comentario