Búsqueda de sitios web

Cómo ejecutar Stable Diffusion localmente con una GUI en Windows


Puede instalar Stable Diffusion localmente en su PC, pero el proceso típico implica mucho trabajo con la línea de comandos para instalar y usar. Afortunadamente para nosotros, la comunidad de Stable Diffusion ha resuelto ese problema. ¡Aquí se explica cómo instalar una versión de Stable Diffusion que se ejecuta localmente con una interfaz gráfica de usuario!

¿Qué es la difusión estable?

Stable Diffusion es un modelo de IA que puede generar imágenes a partir de indicaciones de texto o modificar imágenes existentes con una indicación de texto, como MidJourney o DALL-E 2. Stability.ai lo lanzó por primera vez en agosto de 2022. Comprende miles de palabras diferentes y se puede usar para crear casi cualquier imagen que su imaginación pueda evocar en casi cualquier estilo.

Sin embargo, hay dos diferencias críticas que distinguen a Stable Diffusion de la mayoría de los otros generadores de arte de IA populares:

  • Se puede ejecutar localmente en su PC
  • Es un proyecto de código abierto

El último punto es realmente el tema importante aquí. Tradicionalmente, Stable Diffusion se instala y ejecuta a través de una interfaz de línea de comandos. Funciona, pero puede ser torpe, poco intuitivo y es una barrera importante para la entrada de personas que de otro modo estarían interesadas. Pero, dado que es un proyecto de código abierto, la comunidad creó rápidamente una interfaz de usuario para él y comenzó a agregar sus propios aumentos, incluidas optimizaciones para minimizar el uso de memoria RAM de video (VRAM) y aumentar la escala y el enmascaramiento.

¿Qué necesita para ejecutar esta versión de Stable Diffusion?

Esta versión de Stable Diffusion es una bifurcación, una rama, del repositorio principal (repo) creado y mantenido por Stability.ai. Tiene una interfaz gráfica de usuario (GUI), lo que la hace más fácil de usar que Stable Diffusion normal, que solo tiene una interfaz de línea de comandos, y un instalador que manejará la mayor parte de la configuración automáticamente.

Esta bifurcación también contiene varias optimizaciones que deberían permitirle ejecutarse en PC con menos RAM, capacidades faciales y de escalado integradas utilizando GFPGAN, ESRGAN, RealESRGAN y CodeFormer, y enmascaramiento. El enmascaramiento es un gran problema: le permite aplicar selectivamente la generación de imágenes de IA a ciertas partes de la imagen sin distorsionar otras partes, un proceso que generalmente se denomina pintura interna.

  • Un mínimo de 10 gigabytes libres en su disco duro
  • Una GPU NVIDIA con 6 GB de RAM (aunque es posible que puedas hacer que 4 GB funcionen)
  • Una PC con Windows 11, Windows 10, Windows 8.1 o Windows 8
  • El repositorio GitHub de WebUI, por AUTOMATIC1111
  • Python 3.10.6 (las versiones más recientes y la mayoría de las versiones anteriores también deberían estar bien)
  • Los puntos de control oficiales de Stable Diffusion (¡Cuidado con los puntos de control v1.5!)
  • Los puntos de control de GFPGAN v1.4 
  • Cualquier modelo ESRGAN adicional que desee. Puede utilizar tantos como desee.

Cómo instalar Stable Diffusion con una GUI

El proceso de instalación se ha simplificado significativamente, pero todavía hay algunos pasos que debe realizar manualmente antes de poder utilizar el instalador.

Instalar Python primero

Lo primero que debes hacer es instalar la versión de Python, 3.10.6, recomendada por el autor del repositorio. Dirígete a ese enlace, desplázate hacia la parte inferior de la página y haz clic en Instalador de Windows (64 bits).

Haga clic en el ejecutable que descargó y siga las indicaciones. Si ya tiene instalado Python (y ciertamente lo tiene), simplemente haga clic en Actualizar. De lo contrario, siga las indicaciones recomendadas.

Instale Git y descargue el GitHub Repo

Debe descargar e instalar Git en Windows antes de que se pueda ejecutar el instalador de Stable Diffusion. Simplemente descargue el ejecutable Git de 64 bits, ejecútelo y use la configuración recomendada a menos que tenga algo específico en mente.

A continuación, debe descargar los archivos del repositorio de GitHub. Haga clic en el botón verde Código, luego haga clic en Descargar ZIP en la parte inferior del menú.

Abra el archivo ZIP en el Explorador de archivos o en su programa de almacenamiento de archivos preferido y luego extraiga el contenido en cualquier lugar que desee. Solo tenga en cuenta que esa carpeta es donde deberá ir para ejecutar Stable Diffusion. Este ejemplo los extrajo al directorio C:\, pero eso no es esencial.

Descargar todos los puntos de control

Hay algunos puntos de control que necesita para que esto funcione. El primero y más importante son los puntos de control de difusión estable. Debe crear una cuenta para descargar los puntos de control, pero no se requiere mucho para la cuenta; todo lo que necesitan es un nombre y una dirección de correo electrónico, y está listo para comenzar.

Copie y pegue sd-v1-4.ckpt en la carpeta C:\stable-diffusion-webui-master\models\Stable-diffusion, luego haga clic derecho en sd-v1-4.ckpt y presione cambiar nombre . Escribe model.ckpt en el campo de texto y presiona Enter. Asegúrese de que sea model.ckpt; de lo contrario, esto no funcionará.

También necesita descargar los puntos de control de GFPGAN. El autor del repositorio que estamos usando solicitó puntos de control de GFPGAN v1.4. Desplácese hacia abajo en la página, luego haga clic en Modelo V1.4.

Coloque ese archivo, GFPGANv1.4.pth, en la carpeta stable-diffusion-webui-master, pero no cambie el nombre. La carpeta stable-diffusion-webui-master ahora debería contener estos archivos:

También puede descargar tantos puntos de control ESRGAN como desee. Por lo general, vienen empaquetados como archivos ZIP. Después de descargar uno, abra el archivo ZIP y luego extraiga el archivo .pth en la carpeta models/ESRGAN. Aquí hay un ejemplo:

Los modelos ESRGAN tienden a proporcionar una funcionalidad más específica, así que elija un par que le atraiga.

Ahora, solo tiene que hacer doble clic en el archivo webui-user.bat, que se encuentra en la carpeta principal stable-diffusion-webui-master. Aparecerá una ventana de consola y comenzará a buscar todos los demás archivos importantes, crear un entorno de Python y configurar una interfaz de usuario web. Se verá así:

Cuando haya terminado, la consola mostrará:

Running on local URL: http://127.0.0.1:7860
To create a public link, set `share=True` in `launch()`

Cómo generar imágenes usando difusión estable con una GUI

Muy bien, ha instalado la variante WebUI de Stable Diffusion y su consola le informa que se está ejecutando en la URL local: http://127.0.0.1:7860.

Abra su navegador, ingrese 127.0.0.1:7860 o localhost:7860 en la barra de direcciones y presione Enter. Verás esto en la pestaña txt2img:

Si ha usado Difusión estable antes, esta configuración le resultará familiar, pero aquí hay una breve descripción general de lo que significan las opciones más importantes:

  • Aviso: la descripción de lo que le gustaría crear.
  • Botón Paleta del pintor: aplica un estilo artístico aleatorio a tu solicitud.
  • Pasos de muestreo: la cantidad de veces que se refinará la imagen antes de recibir una salida. Por lo general, más es mejor, pero hay rendimientos decrecientes.
  • Método de muestreo: Las matemáticas subyacentes que rigen cómo se maneja el muestreo. Puede usar cualquiera de estos, pero euler_a y PLMS parecen ser las opciones más populares. Puede leer más sobre PLMS en este documento.
  • Restaurar rostros: utiliza GFPGAN para tratar de corregir rostros extraños o distorsionados.
  • Recuento de lotes: la cantidad de imágenes que se generarán.
  • Tamaño del lote: la cantidad de lotes. Mantenga esto en 1 a menos que tenga una enorme cantidad de VRAM.
  • Escala CFG: Con qué cuidado seguirá Stable Diffusion las instrucciones que le des. Los números más grandes significan que lo sigue con mucho cuidado, mientras que los números más bajos le dan más libertad creativa.
  • Ancho: El ancho de la imagen que desea generar.
  • Alto: El ancho de la imagen que desea generar.
  • Semilla: el número que proporciona una entrada inicial para un generador de números aleatorios. Déjelo en -1 para generar aleatoriamente una nueva semilla.

Generemos cinco imágenes basadas en el mensaje: una vaca de las tierras altas en un bosque mágico, fotografía de película de 35 mm, nítida y veamos qué obtenemos con el muestreador PLMS, 50 pasos de muestreo y una escala CFG de 5.

La ventana de salida se verá así:

La imagen superior central es la que usaremos para probar el enmascaramiento un poco más tarde. Realmente no hay una razón para esta elección específica que no sea la preferencia personal. Toma cualquier imagen que te guste.

Selecciónelo y luego haga clic en Enviar a Inpaint.

Cómo enmascarar las imágenes que crea para Inpaint

Repintar es una característica fantástica. Normalmente, Stable Diffusion se usa para crear imágenes completas a partir de un mensaje, pero la pintura le permite generar (o regenerar) partes de la imagen de manera selectiva. Hay dos opciones críticas aquí: pintura enmascarada, pintura no enmascarada.

Inpaint masked usará el indicador para generar imágenes dentro del área que resalte, mientras que inpaint not masked hará exactamente lo contrario: solo se conservará el área que enmascare.

Cubriremos un poco sobre Inpaint enmascarado primero. Arrastre el mouse sobre la imagen manteniendo presionado el botón izquierdo y notará que aparece una capa blanca sobre la parte superior de su imagen. Dibuje la forma del área que desea reemplazar y asegúrese de completarla por completo. No estás rodeando una región, estás enmascarando toda la región.

Tomemos el ejemplo de nuestra vaca de las tierras altas y démosle un gorro de cocinero. Enmascare una región con la forma aproximada de un gorro de chef y asegúrese de configurar el Tamaño del lote en más de 1. Probablemente necesitará varios para obtener un resultado ideal (más o menos).

Además, debe seleccionar Ruido latente en lugar de Relleno, Original o Nada latente. Tiende a producir los mejores resultados cuando desea generar un objeto completamente nuevo en una escena.

Muy bien, tal vez un sombrero de chef no sea la elección adecuada para tu vaca de las tierras altas. A tu vaca de las tierras altas le gustan más las vibraciones de principios del siglo XX, así que vamos a darle un bombín.

Qué positivamente elegante.

Por supuesto, también puedes hacer exactamente lo contrario con Inpaint Not Masked. Es conceptualmente similar, excepto que las regiones que define están invertidas. En lugar de marcar la región que desea cambiar, marque las regiones que desea conservar. Suele ser útil cuando desea mover un objeto pequeño a un fondo diferente.

Cómo solucionar el error CUDA sin memoria

Cuanto más grande sea la imagen que cree, más memoria de video necesitará. Lo primero que debes intentar es generar imágenes más pequeñas. Stable Diffusion produce buenas imágenes, aunque muy diferentes, a 256×256.

Si está ansioso por hacer imágenes más grandes en una computadora que no tiene problemas con las imágenes de 512 × 512, o si se encuentra con varios errores de Memoria insuficiente, hay algunos cambios en la configuración que deberían ayudar.

Abra webui-user.bat en el Bloc de notas o cualquier otro editor de texto sin formato que desee. Simplemente haga clic derecho en webui-user.bat, haga clic en Editar y luego seleccione Bloc de notas. Identifique la línea que dice set COMMANDLINE_ARGS=. Ahí es donde colocará los comandos para optimizar el funcionamiento de Stable Diffusion.

Si solo quieres hacer fotos enormes o te estás quedando sin RAM en una GPU de la serie GTX 10XX, prueba --opt-split-attention primero. Se verá así:

Luego haga clic en Archivo > Guardar. Alternativamente, puede presionar Ctrl+S en su teclado.

Si aún recibe errores de memoria, intente agregar --medvram a la lista de argumentos de la línea de comando (COMMANDLINE_ARGS).

Puede agregar --always-batch-cond-uncond para intentar solucionar problemas de memoria adicionales si los comandos anteriores no ayudaron. También hay una alternativa a --medvram que podría reducir aún más el uso de VRAM, --lowvram, pero no podemos dar fe de si funcionará o no. .

La adición de una interfaz de usuario es un paso fundamental para hacer que este tipo de herramientas impulsadas por IA sean accesibles para todos. Las posibilidades son casi infinitas, e incluso un rápido vistazo a las comunidades en línea dedicadas al arte de la IA le mostrará cuán poderosa es la tecnología, incluso en sus inicios. Por supuesto, si no tiene una computadora para juegos o no quiere preocuparse por la configuración, siempre puede usar uno de los generadores de arte de IA en línea. Solo tenga en cuenta que no puede asumir que sus entradas son privadas.