Instalar Stable Disffusion en Ubuntu

Si quieres instalar de forma rápida y sencilla, solo copia y pega.

sudo apt-get update
sudo apt-get install python3.8
wget https://repo.anaconda.com/miniconda/Miniconda3-py38_4.12.0-Linux-x86_64.sh
bash Miniconda3-py38_4.12.0-Linux-x86_64.sh
git clone https://github.com/CompVis/stable-diffusion.git
cd stable-diffusion/
conda env create -f environment.yaml

Hasta aquí es todo instalación de lo necesario, python para procesar el código, anaconda para gestionar los paquetes necesarios y finalmente stable-diffusion. Con todo instalado, solo creamos el entorno con conda 😉

Y una vez creado lo activamos. A tener en cuenta que para poder lanzarlo hace falta:

conda activate ldm
curl https://f004.backblazeb2.com/file/aai-blog-files/sd-v1-4.ckpt > sd-v1-4.ckpt

Estando en el entorno, descargamos el paquete necesario de stable diffusion con curl.

Todo listo para empezar…. Te dejo un ejemplo a mi yo de futuro para que no se me olvide:

python scripts/txt2img.py --prompt "A PIG FLYING" --plms --ckpt sd-v1-4.ckpt --skip_grid --n_samples 1

Bueno… llegado aquí no me funcionó y me dio el error:

runtimeerror no cuda gpus are available ubuntu

Así que posiblemente mi gráfica no estuviera bien configurada, lo cual tras casi 30 min de instalación/descargas era pa matarlo. A ver si reinstalándola de otra manera… si os pasó lo mismo, entrad en: https://developer.nvidia.com/cuda-downloads

Finalmente tuve que instalar una versión de nvidia privativa, ya que la open me estaba cascando… y el error siguiente fue:

RuntimeError: CUDA out of memory. Tried to allocate 114.00 MiB (GPU 0; 3.82 GiB total capacity; 2.22 GiB already allocated; 132.75 MiB free; 2.29 GiB reserved in total by PyTorch) If reserved memory is >> allocated memory try setting max_split_size_mb to avoid fragmentation.  See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF

Demasiado programa para tan poca GPU… pero hay otras formas de conseguirlo y os lo expongo… Utilizar otras mejoras de repositorios mejoradas, os dejo el enlace:

https://github.com/basujindal/stable-diffusion

La diferencia es la carpeta optimizedSD, así que al lanzar el comando solo pon algo como esto:

python optimizedSD/optimized_txt2img.py --prompt "a big house in the montain" --H 512 --W 512 --seed 27 --n_iter 2 --n_samples 5 --ddim_steps 50

De nada 😀

Carlos Dk

Apasionado por la enseñanza y el SEO

Deja una respuesta

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

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.