Instalación de Stable Diffusion WebUI en Linux
Stable Diffusion WebUI (AUTOMATIC1111) es la interfaz web más popular para generación de imágenes con IA en servidores Linux. Con una GPU NVIDIA y los drivers correctamente instalados, puedes ejecutar modelos de Stable Diffusion localmente en tu VPS y acceder a la interfaz desde el navegador para generar, editar y mejorar imágenes sin depender de servicios externos. Esta guía cubre la instalación completa, la configuración de la GPU, la descarga de modelos y el acceso remoto seguro.
Requisitos Previos
- Ubuntu 20.04 o 22.04 (recomendado)
- GPU NVIDIA con al menos 4 GB VRAM (6+ GB recomendado)
- Drivers NVIDIA instalados y funcionando (
nvidia-smiresponde) - CUDA Toolkit instalado
- Al menos 20 GB de espacio libre en disco
- Python 3.10 o superior
# Verificar GPU y VRAM disponible
nvidia-smi
# Verificar la versión de Python
python3 --version
Instalación de Dependencias
# Actualizar el sistema
sudo apt-get update && sudo apt-get upgrade -y
# Instalar dependencias del sistema
sudo apt-get install -y \
git wget curl \
python3 python3-pip python3-venv \
libgoogle-perftools-dev \
libgl1 libglib2.0-0 \
build-essential
# Instalar dependencias para el procesamiento de imágenes
sudo apt-get install -y \
libjpeg-dev libpng-dev libtiff-dev \
libavcodec-dev libavformat-dev libswscale-dev
Instalación de Stable Diffusion WebUI
# Crear el directorio de instalación
mkdir -p /opt/stable-diffusion
cd /opt/stable-diffusion
# Clonar el repositorio oficial de AUTOMATIC1111
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
cd stable-diffusion-webui
# Crear y activar el entorno virtual
python3 -m venv venv
source venv/bin/activate
# El script de inicio (webui.sh) instala automáticamente todas las dependencias
# Solo necesitamos preparar el entorno
# Verificar el contenido del repositorio
ls -la
Instalación automática de dependencias con webui.sh
# El primer inicio descarga e instala automáticamente:
# - PyTorch con soporte CUDA
# - Todas las dependencias de Python
# - Los repositorios necesarios
# Ejecutar el script de inicio (acepta el primer inicio largo)
./webui.sh --xformers --skip-torch-cuda-test
# El proceso puede tardar 10-30 minutos la primera vez
# Cuando aparezca "Running on local URL: http://127.0.0.1:7860" está listo
Descarga de Modelos
Los modelos son los archivos que definen el estilo y calidad de las imágenes generadas.
Estructura de directorios de modelos
# Los modelos se colocan en estos directorios
ls /opt/stable-diffusion/stable-diffusion-webui/models/
# Stable-diffusion/ <- Modelos principales (checkpoint .safetensors)
# VAE/ <- VAE (mejora la calidad de colores)
# Lora/ <- LoRA para estilos específicos
# ControlNet/ <- ControlNet para control de composición
Descargar modelos populares
cd /opt/stable-diffusion/stable-diffusion-webui/models/Stable-diffusion/
# Modelo base SDXL (mejor calidad, requiere 8+ GB VRAM)
wget -O "sdxl-base-1.0.safetensors" \
"https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/resolve/main/sd_xl_base_1.0.safetensors"
# Modelo SD 1.5 (más ligero, 4 GB VRAM suficiente)
wget -O "v1-5-pruned-emaonly.safetensors" \
"https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned-emaonly.safetensors"
# Modelo Realistic Vision (fotorrealista, basado en SD 1.5)
# Descargar desde CivitAI: https://civitai.com/models/4201
# wget -O "realisticVisionV60B1.safetensors" "URL_CIVITAI"
Descargar un VAE (recomendado)
cd /opt/stable-diffusion/stable-diffusion-webui/models/VAE/
# VAE de Stability AI para SD 1.5 (mejora los colores y detalles)
wget -O "vae-ft-mse-840000-ema-pruned.safetensors" \
"https://huggingface.co/stabilityai/sd-vae-ft-mse-original/resolve/main/vae-ft-mse-840000-ema-pruned.safetensors"
Configuración de Inicio
Crea el script de inicio personalizado con los parámetros correctos:
cat > /opt/stable-diffusion/stable-diffusion-webui/webui-user.sh << 'EOF'
#!/bin/bash
# Directorio de instalación de Stable Diffusion
export STABLE_DIFFUSION_DIR="$(dirname "$0")"
# Argumentos para el lanzador
export COMMANDLINE_ARGS="--listen \
--port 7860 \
--xformers \
--enable-insecure-extension-access \
--api \
--no-half-vae \
--theme dark"
# Optimizaciones de memoria VRAM
# Para GPUs con 4 GB VRAM, añadir: --medvram
# Para GPUs con menos de 4 GB, añadir: --lowvram
# export COMMANDLINE_ARGS="$COMMANDLINE_ARGS --medvram"
# Variable de entorno para optimización de memoria
export PYTORCH_CUDA_ALLOC_CONF=max_split_size_mb:512
EOF
chmod +x /opt/stable-diffusion/stable-diffusion-webui/webui-user.sh
Parámetros importantes
| Parámetro | Descripción |
|---|---|
--listen | Escuchar en todas las interfaces (no solo localhost) |
--xformers | Usar xformers para menor uso de VRAM (recomendado) |
--medvram | Modo memoria media (4 GB VRAM) |
--lowvram | Modo memoria baja (2 GB VRAM, muy lento) |
--api | Habilitar la API REST |
--no-half-vae | Evitar errores de precisión con VAE |
Acceso Remoto Seguro
Opción 1: Tunnel SSH (más seguro, sin exponer el puerto)
# Desde tu máquina local, crear el tunnel SSH
ssh -L 7860:localhost:7860 usuario@IP_SERVIDOR -N
# Acceder desde el navegador local
# http://localhost:7860
Opción 2: Proxy Nginx con autenticación
# Instalar Nginx y Certbot
sudo apt-get install -y nginx certbot python3-certbot-nginx
# Obtener certificado SSL
sudo certbot --nginx -d sd.tudominio.com
# /etc/nginx/sites-available/stable-diffusion
server {
listen 443 ssl http2;
server_name sd.tudominio.com;
ssl_certificate /etc/letsencrypt/live/sd.tudominio.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/sd.tudominio.com/privkey.pem;
# Autenticación básica obligatoria
auth_basic "Stable Diffusion - Acceso Restringido";
auth_basic_user_file /etc/nginx/.htpasswd;
# Subidas grandes para img2img
client_max_body_size 100M;
location / {
proxy_pass http://127.0.0.1:7860;
proxy_set_header Host $host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 300;
}
}
# Crear usuario para acceso
sudo apt-get install -y apache2-utils
sudo htpasswd -c /etc/nginx/.htpasswd tu-usuario
sudo ln -s /etc/nginx/sites-available/stable-diffusion /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
Opción 3: Protección con contraseña incorporada en WebUI
# Añadir al COMMANDLINE_ARGS en webui-user.sh
# --gradio-auth usuario:contraseña
Configurar como Servicio
# Crear usuario dedicado
sudo useradd -r -s /bin/false -d /opt/stable-diffusion stable-diffusion
sudo chown -R stable-diffusion:stable-diffusion /opt/stable-diffusion/
# Crear el servicio systemd
sudo cat > /etc/systemd/system/stable-diffusion.service << 'EOF'
[Unit]
Description=Stable Diffusion WebUI
After=network.target
[Service]
Type=simple
User=stable-diffusion
Group=stable-diffusion
WorkingDirectory=/opt/stable-diffusion/stable-diffusion-webui
ExecStart=/opt/stable-diffusion/stable-diffusion-webui/webui.sh
Restart=on-failure
RestartSec=30
# Necesario para acceso a la GPU
Environment="HOME=/opt/stable-diffusion"
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable stable-diffusion
sudo systemctl start stable-diffusion
# Ver los logs (el primer inicio tarda varios minutos)
sudo journalctl -u stable-diffusion -f
Extensiones Útiles
# Las extensiones se instalan desde la interfaz web: Extensions > Available
# O manualmente clonando los repositorios
cd /opt/stable-diffusion/stable-diffusion-webui/extensions/
# ControlNet - control preciso de la composición
git clone https://github.com/Mikubill/sd-webui-controlnet
# ADetailer - mejora automática de caras y manos
git clone https://github.com/Bing-su/adetailer
# Infinite Image Browsing - galería de imágenes generadas
git clone https://github.com/zanllp/sd-webui-infinite-image-browsing
# After State - filtros y ajustes post-generación
git clone https://github.com/altoiddealer/--sd-webui-ar
# Reiniciar el WebUI para cargar las extensiones
sudo systemctl restart stable-diffusion
Solución de Problemas
Error: CUDA out of memory
# Añadir --medvram o --lowvram a los argumentos de inicio
# En webui-user.sh:
export COMMANDLINE_ARGS="... --medvram"
# O reducir el batch size y el tamaño de imagen en la interfaz
La generación es muy lenta
# Verificar que xformers está instalado y activo
# En la interfaz web: Settings > System Info
# Verificar que se usa la GPU y no la CPU
nvidia-smi # Debe mostrar uso de VRAM durante la generación
# Instalar xformers si no está
source /opt/stable-diffusion/stable-diffusion-webui/venv/bin/activate
pip install xformers
Error al cargar el modelo
# Verificar que el archivo del modelo no está corrupto
ls -lh /opt/stable-diffusion/stable-diffusion-webui/models/Stable-diffusion/
# Verificar el hash del archivo
sha256sum modelo.safetensors
El WebUI no carga tras actualizar
# Actualizar el repositorio y las dependencias
cd /opt/stable-diffusion/stable-diffusion-webui
git pull
source venv/bin/activate
pip install -r requirements.txt
sudo systemctl restart stable-diffusion
Conclusión
Stable Diffusion WebUI instalado en un servidor VPS con GPU proporciona una plataforma completa de generación de imágenes con IA totalmente bajo tu control. Con el proxy Nginx configurado, la autenticación activada y el servicio systemd en marcha, puedes acceder a la interfaz desde cualquier dispositivo y generar imágenes sin límites de tiempo, sin coste por imagen y con total privacidad.


