Guía integral de difusión estable: de novato a experto
Me interesé en utilizar SD para generar imágenes para aplicaciones militares. La mayoría de los recursos se toman de los foros NSFW de 4chan, ya que los anons usan SD para hacer hentai. Curiosamente, la SD WebUI canónica tiene una funcionalidad incorporada con tableros de imágenes de anime/hentai... Uno de los primeros casos de uso de SD justo después de que DALL-E generara chicas anime, por lo que el salto al hentai no es sorprendente.
De todos modos, las técnicas de estos bichos raros son aplicables a una variedad de aplicaciones, más específicamente a los LoRA, que son como afinadores de modelos. La idea es trabajar con LoRA específicos (por ejemplo, vehículos militares, aviones, armas, etc.) para generar datos de imágenes sintéticas para entrenar modelos de visión. También es de interés formar LoRA nuevos y útiles. Las cosas posteriores pueden incluir pintura para perturbar.
Descargo de responsabilidad y fuentes
Every link here may contain NSFW content, as most of the cutting-edge work on SD and LoRAs is with porn or hentai. So, please be wary when you are working with these resources. ALSO, Rentry.org pages are the main resources linked to in this guide. If any of the rentry pages do not work, change the .org to .co and the link should work. Otherwise, use the Wayback machine.
-TP
¡Juega con él!
¿Qué puedes hacer realmente con SD? Huggingface y algunos otros tienen algunas aplicaciones en el navegador para ti. ¡Juega con ellos para ver el poder! Lo que haremos en esta guía es obtener la WebUI completa y extensible que nos permita hacer lo que queramos.
- Huggingface Texto a imagen SD Playground
- Aplicación Dreamstudio Texto a Imagen SD
- Aplicación Dezgo Texto a Imagen SD
- Huggingface Imagen a Imagen SD Playground
- Abrazando la cara en el patio de recreo
Tabla de contenido
- Conceptos básicos de la interfaz de usuario web
- Configurar el uso de GPU local
- Configuración de Linux
- Profundizando
- Incitación
- Modelo novedoso de IA
- lora
- Jugando con modelos
- VAEs
- Ponlo todo junto
- El proceso general de SD
- Mensajes de guardado
- Configuración de txt2img
- Regenerar una imagen generada previamente
- Solución de errores
- Ponerse cómodo
- Pruebas
- Interfaz de usuario web avanzada
- Edición rápida
- Xformers
- Img2Img
- en pintura
- Extras
- Redes de control
- Hacer cosas nuevas (WIP)
- Fusión de puntos de control
- Entrenamiento de LoRA
- Entrenamiento de nuevos modelos
- Configuración de Google Colab (WIP)
- A mitad del viaje
- Parámetros de MJ
- Indicaciones avanzadas de MJ
- DreamStudio (WIP)
- Horda estable (WIP)
- Cabina de sueños (WIP)
- Difusión de vídeo (WIP)
Conceptos básicos de la interfaz de usuario web
Es algo desalentador entrar en esto... pero 4channers ha hecho un buen trabajo haciéndolo accesible. A continuación se detallan los pasos que tomé, en los términos más simples. Su intención es hacer que la WebUI de Stable Diffusion (creada con Gradio) se ejecute localmente para que pueda comenzar a solicitar y crear imágenes.
Configurar el uso de GPU local
Configuraremos Google Colab Pro más tarde, para que podamos ejecutar SD en cualquier dispositivo donde queramos; pero para comenzar, configuremos la WebUI en una PC. Necesita 16 GB de RAM, una GPU con 2 GB de VRAM, Windows 7+ y más de 20 GB de espacio en disco.
- Finalice la guía de configuración inicial
- Seguí esto hasta el paso 7, después del cual pasa al tema hentai.
- El paso 3 tarda entre 15 y 45 minutos con una velocidad promedio de Internet, ya que los modelos tienen más de 5 GB cada uno
- El paso 7 puede tardar más de media hora y puede parecer "atascado" en la CLI
- En el paso 3 descargué SD1.5, no las versiones 2.x, ya que la 1.5 produce resultados mucho mejores.
- CivitAI dispone de todos los modelos SD; Es como HuggingFace pero específicamente para SD.
- Verifique que la WebUI funcione
- Copie la URL que genera la CLI una vez hecho, por ejemplo,
127.0.0.1:7860
( NO use Ctrl + C porque este comando puede cerrar la CLI) - Pega en el navegador y listo; prueba un mensaje y estarás listo para las carreras
- Las imágenes se guardarán automáticamente cuando se generen en
stable-diffusion-webuioutputstxt2img-images
- Recuerde, para actualizar, simplemente abra una CLI en la carpeta stable-diffusion-webui e ingrese el comando
git pull
Configuración de Linux
Ignora esto por completo si tienes Windows. También logré ejecutarlo en Linux, aunque es un poco más complicado. Comencé siguiendo esta guía, pero está bastante mal escrita, por lo que a continuación se detallan los pasos que seguí para ejecutarla en Linux. Estaba usando Linux Mint 20, que es una distribución de Ubuntu 20.
- Comience clonando el repositorio webui:
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
- Obtenga un modelo SD (por ejemplo, SD 1.5, como en la sección anterior)
- Coloque el archivo ckpt del modelo en
stable-diffusion-webui/models/Stable-diffusion
- Descarga Python (si aún no lo tienes):
sudo apt install python3 python3-pip python3-virtualenv wget git
- Y la WebUI es muy particular, por lo que necesitamos instalar Conda, un administrador de entorno virtual, para trabajar dentro de:
wget https://repo.anaconda.com/miniconda/Minconda3-latest-Linux-x86_64.sh
chmod +x Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
- Ahora crea el entorno:
conda create --name sdwebui python=3.10.6
- Activar el entorno:
conda activate sdwebui
- Navegue a su carpeta WebUI y escriba
./webui.sh
- Debería ejecutarse por un momento hasta que aparezca un error sobre no poder acceder a CUDA/tu GPU... esto está bien, porque es nuestro siguiente paso.
- Comience limpiando los controladores de Nvidia existentes:
sudo apt update
sudo apt purge *nvidia*
- Ahora, siguiendo algunos fragmentos de esta guía, descubra qué GPU tiene su máquina Linux (la forma más fácil de hacerlo es abrir la aplicación Driver Manager y su GPU aparecerá en la lista; pero hay una docena de formas, solo busque en Google)
- Vaya a esta página y haga clic en "Última rama de funciones nuevas" en Linux x86_64 (para mí, era 530.xx.xx)
- Haga clic en la pestaña "Productos compatibles" y Ctrl + F para encontrar su GPU; si aparece en la lista, continúe; de lo contrario, retroceda e intente con la "Última versión de la rama de producción"; anote el número, por ejemplo, 530
- En una terminal, escriba:
sudo add-apt-repository ppa:graphics-drivers/ppa
- Actualizar con
sudo apt-get update
- Inicie la aplicación Driver Manager y debería ver una lista de ellos; NO seleccione el recomendado (por ejemplo, nvidia-driver-530-open), seleccione exactamente el anterior (por ejemplo, nvidia-driver-530) y aplique cambios; O instálelo en la terminal con
sudo apt-get install nvidia-driver-530
- EN ESTE PUNTO, debería aparecer una ventana emergente a través de su CLI sobre Arranque seguro, solicitándole una contraseña de 8 dígitos: configúrela y escríbala
- Reinicie su PC y antes de cifrar/iniciar sesión de usuario, debería ver una pantalla similar a BIOS (estoy escribiendo esto desde la memoria) con una opción para ingresar una clave MOK; haga clic en él e ingrese su contraseña, luego envíela y arranque; algo de información aquí
- Inicie sesión como normalmente y escriba el comando
nvidia-smi
; si tiene éxito, debería imprimir una tabla; De lo contrario, dirá algo como "No se pudo conectar a la GPU; asegúrese de que esté instalado el controlador más actualizado". - Ahora, para instalar CUDA (el último comando aquí debería imprimir información sobre su nueva instalación de CUDA); de esta guía:
sudo apt update
sudo apt install apt-transport-https ca-certificates gnupg
sudo apt install nvidia-cuda-toolkit
nvcc-version
- Ahora regresa y sigue los pasos 7-9; Si recibe este "ERROR: No se puede activar Python Venv, abortando...", vaya al siguiente paso (de lo contrario, estará listo y copiará la dirección IP de la CLI como de costumbre y podrá comenzar a jugar con SD)
- Este problema de Github tiene alguna solución para este problema de venv... para mí, lo que funcionó fue ejecutar
python3 -c 'import venv'
python3 -m venv venv/
Y luego vamos a la carpeta /stable-diffusion-webui
y ejecutamos:
rm -rf venv/
python3 -m venv venv/
Después de eso, funcionó para mí.
Profundizando
- Lea sobre técnicas de estímulo, porque hay muchas cosas que saber (por ejemplo, estímulo positivo versus estímulo negativo, pasos de muestreo, método de muestreo, etc.)
- Guía del libro de instrucciones de OpenArt
- Guía definitiva de indicaciones SD
- Una guía sucinta
- Consejos de indicaciones de 4chan (NSFW)
- Colección de indicaciones e imágenes.
- Guía paso a paso de indicaciones para chicas anime
- Lea sobre el conocimiento de SD en general:
- Publicación seminal de difusión estable
- CompVis / Stability AI Github (hogar de los modelos SD originales)
- Compendio de difusión estable (buen recurso externo)
- Centro de enlaces de difusión estable (increíble recurso de 4chan)
- Mina de oro de difusión estable
- Mina de oro SD simplificada
- Aleatorio/Varios. Enlaces SD
- Preguntas frecuentes (NSFW)
- Otras preguntas frecuentes
- Únase a la discordia de difusión estable
- Manténgase al día con las novedades de Difusión Estable
- ¿Sabía que a partir de marzo de 2023, estará disponible un modelo de difusión de texto a vídeo con 1,700 millones de parámetros?
- Juega con la WebUI, juega con diferentes modelos, configuraciones, etc.
Incitación
El orden de las palabras en una indicación tiene un efecto: las palabras anteriores tienen prioridad. La estructura general de un buen mensaje, desde aquí:
Y otra buena guía dice que el mensaje debe seguir esta estructura: