Stable-diffusion model runing on local machine
Tags: linux, stablediffusion, txt2image, photography
Published: 2024-01-26 14:04:44

Después de realizar varias pruebas del modelo Stable-Diffusion en diferentes webs me he quedado sin "credits", por lo que tenía dos opciones:

- a. Pagar para continuar probando y experimentando.
- b. ¿Puedo tener en mi ordenador instalado Stable-Diffusion y continuar probando?

Es evidente que este artículo lo escribo porque sí que se puede.

Tengo instalada la distro https://neon.kde.org/ (iso: neon-user-20231221-0716.iso), y explicaré lo que tuve que hacer.


## Previo

Antes de empezar, tenía que saber si mi PC podría ejecutarlo.

Lo primero: necesitamos una *GPU Nvidia* con *Cuda* funcionando.

Lo segundo: no sirve cualquiera, recomendable una con al menos 12gb de VRAM. Aunque puedes saltarte este requisito si utilizas la memoria *swap* como indiqué en el artículo anterior.

Problema encontrado: aunque mi equipo tiene una *GPU Nvidia*, y he podido instalar *Cuda* (mira mi anterior artículo), no tiene todas las caracerísticas necesarias para poderse ejecutar, así que dependiendo de la aplicación habrá que obligarla a utilizar la CPU en vez de la GPU.

Pero vayamos al meollo.

## Documentación

Documéntate en [https://stable-diffusion-art.com/automatic1111/](https://stable-diffusion-art.com/automatic1111/). [https://andrewongai.gumroad.com/l/stable_diffusion_quick_start](https://andrewongai.gumroad.com/l/stable_diffusion_quick_start) y en [https://huggingface.co/runwayml/stable-diffusion-v1-5](https://huggingface.co/runwayml/stable-diffusion-v1-5)

## Instalación

Los pasos que yo seguí fueron los siguientes:

Descargar el repo de **AUTOMATIC1111** y el modelo de **Stable-Diffusion**:

```
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git

cd stable-diffusion-webui/models/Stable-diffusion

git clone https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned-emaonly.ckpt

cd ../..
```

Instalamos algunos requisitos previos (recomendable python 3.11, ni más, ni menos):

```
sudo apt install python3.11 python3-pip python3.11-venv libgl1 libglib2.0-0
sudo apt install ffmpeg
pip install virtualenv
pip install --upgrade pip
```

Ahora vamos preparar la aplicación:

```
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
```

Si tienes problemas con las versiones que se intentan instalar con *requirements*, puedes lanzar el *requirements* versionado:

```
pip install -r requirements_versions.txt
```

Finalmente hacemos varios retoques:

```
pip install xformers
pip install imageio-ffmpeg
pip install numpy
```

Lanzamos la aplicacion. En mi caso, aunque mi portátil tiene una *GPU* y *Cuda* instalado, no es suficiente para que utilice todo su potencial, por lo que será necesario arrancar la aplicación saltándose la comprobación de Cuda:

```
./webui.sh --no-half --skip-torch-cuda-test 
```

La primera vez tarda más porque todavía se instalarán más dependencias. Una vez terminada podremos acceder por web a la interfaz:

```
http://127.0.0.1:7860/
```

Ahora solo te queda empezar a disfrutar de tu generador de imágenes *txt2img* (y otras muchas) en tu máquina.

## Advertencia

Para cualquier fallo acude a las respectivas páginas.