Cómo ejecutar la difusión estable localmente con GUI en Windows

Cómo ejecutar la difusión estable localmente con GUI en Windows

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

¿Qué es la difusión estable?

Stable Diffusion es un modelo de IA que puede generar imágenes a partir de sugerencias de texto o modificar imágenes existentes con una sugerencia de texto, como en 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 imaginar en casi cualquier estilo.

Sin embargo, hay dos diferencias importantes que distinguen a Stable Diffusion de la mayoría de los otros generadores de imágenes de IA populares:

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

El último punto aquí es realmente importante. Tradicionalmente, Stable Diffusion se instala y ejecuta a través de una interfaz de línea de comandos. Esto funciona, pero puede ser torpe, no intuitivo y presenta una barrera de entrada significativa para las 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 propias adiciones, incluidas optimizaciones para minimizar el uso de memoria de video (VRAM) y escalado y enmascaramiento incorporados.

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

Esta versión de Stable Diffusion es una bifurcación del repositorio principal (repository) creado y mantenido por Stability.ai . Tiene una interfaz gráfica de usuario (GUI) que lo 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 realiza la mayor parte de la configuración automáticamente.

Advertencia. Como siempre, tenga cuidado con las bifurcaciones de software de terceros que encuentre en GitHub. Hemos estado usando esto por un tiempo sin problemas, al igual que miles de otros, por lo que tendemos a decir que es seguro. Afortunadamente, el código y los cambios aquí son pequeños en comparación con algunas ramificaciones de proyectos de código abierto.

Esta bifurcación también contiene varias optimizaciones que deberían permitirle ejecutarse en PC con menos RAM, escalado incorporado y características faciales usando 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 una imagen sin distorsionar otras partes, un proceso comúnmente conocido como pintura interna.

Cómo instalar Stable Diffusion con GUI

El proceso de instalación se ha simplificado enormemente, pero aún debe completar algunos pasos manuales antes de poder usar 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. Siga este enlace, desplácese hacia abajo en la página y haga clic en » Instalador de Windows (64 bits) «.

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

Nota. Asegúrese de agregar Python 3.10.6 a su PATH si puede.

Instala Git y descarga el repositorio de GitHub

Debe descargar e instalar Git en Windows antes de poder 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 su programa de compresión preferido y luego extraiga el contenido a cualquier ubicación. Solo tenga en cuenta que deberá navegar a esta carpeta para ejecutar Stable Diffusion. En este ejemplo, se extraen al directorio C:\, pero esto no es obligatorio.

Arrastra la carpeta "stable-diffusion-webui-master" donde quieras.

Nota. Asegúrese de no arrastrar accidentalmente «stable-diffusion-webui-master» a una carpeta que no sea el espacio vacío; si lo hace, terminará en esa carpeta y no en la carpeta principal que pretendía.

Descargar todos los puntos de control

Para hacer esto, necesitará varios puntos de control. El primero y más importante son los puntos de control de difusión estable . Debe crear una cuenta para descargar puntos de control, pero no se necesita mucho para una cuenta: todo lo que necesitan es un nombre y una dirección de correo electrónico y listo.

Nota. La descarga de puntos de control requiere varios gigabytes. No esperes que se haga al instante.

Copie y pegue «sd-v1-4.ckpt» en la carpeta «stable-diffusion-webui-master» de la sección anterior, luego haga clic derecho en «sd-v1-4.ckpt» y haga clic en «Cambiar nombre». Escribe «model.ckpt» en el campo de texto y presiona Enter. Asegúrese de que sea «model.ckpt»; de lo contrario, no funcionará.

Nota. La función de cambio de nombre es un icono en Windows 11.

También necesita descargar puntos de control GFPGAN . El autor del repositorio que usamos solicitó puntos de interrupción GFPGAN v1.3 , pero puede usar v1.4 si quiere probarlo. Desplácese hacia abajo en la página y haga clic en «Modelo versión 1.3».

Coloque este archivo «GFPGANv1.3.pth» en la carpeta «stable-diffusion-webui-master» como lo hizo con el archivo «sd-v1-4.ckpt», pero no le cambie el nombre. La carpeta «stable-diffusion-webui-master» ahora debería contener los siguientes archivos:

Este es el aspecto que debería tener la carpeta después de cambiar el nombre del modelo Stable Diffusion y agregar el modelo GFPGAN.

También puede descargar tantos puntos de control de ESRGAN como desee. Por lo general, vienen como archivos ZIP. Una vez descargado, abra el archivo ZIP y luego extraiga el archivo «.pth» a la carpeta «ESRGAN». Aquí hay un ejemplo:

Lugar para modelos ESRGAN.

Los modelos ESRGAN tienden a proporcionar una funcionalidad más específica, así que elige el par que te guste.

Ahora solo necesita 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 descargar todos los demás archivos importantes, creando un entorno de Python y configurando la interfaz de usuario web. Se verá así:

Nota. Espere que el primer lanzamiento de esta aplicación tarde al menos unos minutos. Necesitas descargar un montón de todo de Internet. Si parece colgarse durante un tiempo irrazonablemente largo en una etapa, simplemente intente seleccionar una ventana de la consola y presione la tecla Intro.

El cliente WebUI descarga e instala todos los recursos.

Una vez hecho esto, 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 GUI

Bien, instaló la variante basada en web de Stable Diffusion y su consola le dijo que estaba «ejecutándose en la URL local: http://127.0.0.1:7860».

Nota: ¿qué significa exactamente esto, qué está pasando? 127.0.0.1 es la dirección localhost, la dirección IP que se da a sí misma su computadora. Esta versión de Stable Diffusion crea un servidor en su PC local accesible a través de su propia dirección IP, pero solo si se conecta en el puerto correcto: 7860.

Abra un navegador, escriba «127.0.0.1:7860» o «localhost:7860» en la barra de direcciones y presione Entrar. Verá esto en la pestaña txt2img:

La primera página del cliente WebUI en Google Chrome.

Si ha usado Stable Diffusion anteriormente, esta configuración le resultará familiar, pero aquí hay una descripción general rápida de lo que significan las opciones más importantes:

  • Sugerencia: una descripción de lo que desea crear.
  • Botón de desplazamiento: aplica un estilo de arte aleatorio a la información sobre herramientas.
  • Pasos de muestreo: la cantidad de veces que se refinará la imagen antes de obtener la salida. En general, más es mejor, pero hay rendimientos decrecientes.
  • Método de muestreo: las matemáticas subyacentes que determinan cómo se procesa una muestra. 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 artículo.
  • Restaurar rostros: utiliza GFPGAN para tratar de corregir rostros extraños o distorsionados.
  • Recuento de lotes: el número de imágenes que se generarán.
  • Tamaño del lote: El número de «lotes». Deje este valor en 1 a menos que tenga una gran cantidad de memoria de video.
  • Escala CFG: Cuán cuidadosamente Difusión Estable seguirá sus indicaciones. Los números más grandes significan que lo está siguiendo muy de cerca, mientras que los números más pequeños dan más libertad creativa.
  • Ancho: el ancho de la imagen que desea crear.
  • Alto: El ancho de la imagen que desea crear.
  • Semilla: el número que proporciona la entrada inicial para el generador de números aleatorios. Deje -1 para generar aleatoriamente una nueva semilla.

Vamos a crear cinco imágenes basadas en el mensaje: «vaca de montaña en un bosque mágico, fotografía en película de 35 mm, nitidez» y veamos qué obtenemos usando un muestreador PLMS, 50 pasos de muestreo y una escala CFG de 5.

Sugerencia: siempre puede hacer clic en el botón «Cancelar» para detener la generación si su trabajo está tardando demasiado.

La ventana de salida se verá así:

Conclusión para una pista sobre las vacas de montaña.  Cinco vacas de montaña, dos en blanco y negro.

Nota. Tus imágenes serán diferentes.

La imagen central superior es la que usaremos para enmascarar un poco más tarde. Realmente no hay razón para esta elección en particular aparte de la preferencia personal. Tome cualquier imagen que desee.

Encantadora vaca de montaña en el bosque.

Selecciónelo y haga clic en Enviar a Inpaint.

Cómo enmascarar imágenes que creas para inpaint

Repintar es una característica fantástica. Normalmente, Stable Diffusion se usa para crear imágenes completas a partir de una pista, pero volver a pintar le permite generar (o regenerar) partes de una imagen de manera selectiva. Aquí hay dos opciones críticas: inpaint está enmascarado, inpaint no está enmascarado.

Inpaint con una máscara usará la sugerencia para crear una imagen en el área seleccionada, mientras que inpaint sin máscara hará exactamente lo contrario: solo se guardará el área enmascarada.

Primero, hablaremos un poco sobre el enmascaramiento Inpaint. Mueva el mouse sobre la imagen mientras mantiene presionado el botón izquierdo del mouse y notará que aparece una capa blanca en la parte superior de su imagen. Dibuje la forma del área que desea reemplazar y asegúrese de completarla por completo. No circulas alrededor del área, enmascaras toda el área.

Sugerencia: si solo está agregando algo a una imagen existente, podría ser útil intentar alinear el área enmascarada con la forma aproximada que está tratando de crear. Enmascarar una forma triangular cuando lo desee, como un círculo, es contraproducente.

Tomemos, por ejemplo, nuestra vaca de montaña y pongámosle un gorro de cocinero. Enmascare un área con la forma aproximada de un gorro de chef y asegúrese de que el Tamaño del lote esté establecido en un valor superior a 1. Probablemente necesitará varios para obtener el resultado perfecto.

Además, debe seleccionar «Ruido oculto» y no «Relleno», «Original» o «Nada oculto». Tiende a dar los mejores resultados cuando desea crear un objeto completamente nuevo en la escena.

Nota: Notarás que el borde izquierdo del sombrero ha quitado parte de su cuerno. Esto se debió a que la configuración de «Desenfoque de máscara» era demasiado alta. Si ve este tipo de cosas en sus imágenes, intente reducir el valor de «Desenfoque de máscara».

Vaca de montaña con gorro de cocinero.
Pista: gorro de chef. Configuraciones: Enmascarado con pintura, Difusión latente, CFG 9.5, Nivel de reducción de ruido 0.75, Pasos de muestra = 50, Método de muestra = Euler_A.

De acuerdo, tal vez un sombrero de chef no sea la mejor opción para una vaca de montaña. Tu vaca de la montaña se parece más a las vibraciones de principios del siglo XX, así que vamos a darle un bombín.

Vaca de montaña en un bombín.
Sugerencia: Ajustes de sombrero de Bwel: Enmascarado con pintura, Difusión latente, CFG 9.5, Nivel de reducción de ruido 0.75, Pasos de muestreo = 50, Método de muestreo = Euler_A

Qué positivamente elegante.

Por supuesto, también puedes hacer exactamente lo contrario con Inpaint Not Masked. Es conceptualmente similar, excepto que las áreas que define están al revés. En lugar de resaltar el área que desea cambiar, resalte las áreas que desea conservar. Esto suele ser útil cuando desea mover un objeto pequeño a un fondo diferente.

Cómo reparar 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 crear imágenes más pequeñas. Stable Diffusion produce buenas imágenes, aunque muy diferentes, a 256×256.

Si tiene ganas de hacer imágenes grandes en una computadora que no tiene problemas con imágenes de 512×512, o si encuentra varios errores de «Memoria insuficiente», hay algunos cambios de configuración que deberían ayudar.

Abra «webui-user.bat» en el Bloc de notas o cualquier otro editor de texto. Simplemente haga clic derecho en «webui-user.bat», haga clic en «Editar» y seleccione «Bloc de notas». Defina la línea que dice set COMMANDLINE_ARGS=. Aquí es donde vas a colocar los comandos para optimizar la difusión estable.

Si solo desea tomar imágenes enormes o no tiene suficiente RAM en su GPU de la serie GTX 10XX, pruébelo --opt-split-attentionprimero. 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 agregarlos --medvrama la lista de argumentos de la línea de comando (COMMANDLINE_ARGS).

Puede agregar --always-batch-cond-uncondpara intentar solucionar problemas de memoria adicionales si los comandos anteriores no ayudaron. También existe una alternativa --medvram que puede reducir aún más el uso de VRAM --lowvram, pero no podemos confirmar si realmente funcionará.

Agregar una interfaz de usuario es un paso importante para hacer que estas herramientas basadas en IA sean accesibles para todos. Las posibilidades son casi infinitas, e incluso una mirada rápida a las comunidades en línea dedicadas al arte de la inteligencia artificial le mostrará cuán poderosa es esta tecnología, incluso cuando está en su infancia. Por supuesto, si no tienes una PC para juegos o no quieres preocuparte por la personalización, siempre puedes 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.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *