Run This Ai
EN DE

How to Install Stable Diffusion WebUI on Ubuntu 24.04

A step-by-step installation guide.

SD WebUI — Ubuntu 24.04 SD WebUI

Stable Diffusion WebUI

Ubuntu 24.04 • Docker • NVIDIA • Run This AI

AUTOMATIC1111's SD WebUI is the most popular Stable Diffusion interface — a Gradio UI for txt2img, img2img, ControlNet, LoRA, and hundreds of extensions. This guide covers Docker deployment on Ubuntu 24.04 with NVIDIA acceleration.

1 — Prerequisites

ResourceMinRec
CPU4 cores8+
RAM8 GB16+ GB
GPUNVIDIA 4 GB VRAM8+ GB VRAM
Disk20 GB50+ GB

NVIDIA GPU required. GTX 1060 6 GB entry; RTX 3060 12 GB+ ideal.

2 — Docker & NVIDIA Toolkit

sudo apt-get update && sudo apt-get install -y ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc && sudo chmod a+r /etc/apt/keyrings/docker.asc
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu noble stable" | sudo tee /etc/apt/sources.list.d/docker.list
sudo apt-get update && sudo apt-get install -y docker-ce docker-ce-cli containerd.io
sudo usermod -aG docker $USER
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -sL https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit
sudo nvidia-ctk runtime configure --runtime=docker && sudo systemctl restart docker
# Verify: docker run --rm --gpus all nvidia/cuda:12.4.1-base-ubuntu22.04 nvidia-smi

3 — Docker Compose

mkdir -p ~/sd-webui/{outputs,models,config} && cd ~/sd-webui
cat > docker-compose.yml << 'EOF'
services:
  sd-webui:
    image: ghcr.io/automatic1111/stable-diffusion-webui:latest
    container_name: sd-webui
    restart: unless-stopped
    ports: ["7860:7860"]
    volumes:
      - ./outputs:/output
      - ./models:/models
      - ./config:/config
    environment:
      - COMMANDLINE_ARGS=--medvram --xformers --api
      - GRADIO_SERVER_NAME=0.0.0.0
      - GRADIO_SERVER_PORT=7860
      - XFORMERS=true
      - CUDA_VISIBLE_DEVICES=0
      - SAFETENSORS_FAST_GPU=true
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: 1
              capabilities: [gpu]
EOF
docker compose up -d

Image from ghcr.io. Port 7860:7860 maps the UI. Volumes persist outputs, models, config. Deploy block with driver:nvidia exposes GPU. Visit http://YOUR_IP:7860 ~60s later.

4 — Nginx Reverse Proxy

sudo apt-get install -y nginx certbot python3-certbot-nginx
cat > /etc/nginx/sites-available/sd-webui << 'EOF'
server {
    listen 80;
    server_name sd.yourdomain.com;
    location / {
        proxy_pass http://127.0.0.1:7860;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        proxy_read_timeout 300s;
    }
    location /queue/ {
        proxy_pass http://127.0.0.1:7860/queue/;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_read_timeout 86400s;
    }
}
EOF
sudo ln -s /etc/nginx/sites-available/sd-webui /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
sudo certbot --nginx -d sd.yourdomain.com

5 — Environment Variables

VariableDefaultDescription
COMMANDLINE_ARGSemptyCLI flags for launch.py
GRADIO_SERVER_NAME127.0.0.1Bind. 0.0.0.0 for external
GRADIO_SERVER_PORT7860Web UI port
MEDIA_DIR/outputGenerated images dir
NO_HALFfalseDisable FP16. Doubles VRAM
XFORMERSfalseEnable xformers. VRAM -20-40%
CUDA_VISIBLE_DEVICESallGPU selection. "0"=first
SAFETENSORS_FAST_GPUfalseDirect GPU load

6 — Extra CLI Arguments

FlagDescription
--medvramMedium VRAM. 6-8 GB GPUs
--lowvramMax savings. 4 GB GPUs
--xformersMem-efficient attention
--enable-insecure-extension-accessThird-party URLs
--no-halfFP32 only
--apiREST API at /sdapi/v1/

Combine: COMMANDLINE_ARGS=--medvram --xformers --api --enable-insecure-extension-access

7 — Download Models

cd ~/sd-webui/models/Stable-diffusion/
wget -c https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/resolve/main/sd_xl_base_1.0.safetensors
wget -c https://huggingface.co/Lykon/dreamshaper-8/resolve/main/dreamshaper_8.safetensors
docker compose restart

Use .safetensors. -c resumes. Sources: HF, CivitAI.

8 — Backup & Update

Backup: tar czf ~/sd-backup-$(date +%F).tar.gz -C ~/sd-webui outputs models config

Update: cd ~/sd-webui && docker compose pull && docker compose up -d

9 — Troubleshooting

CUDA OOM: Add --medvram/--lowvram + --xformers. Lower resolution/batch. Restart.

Model not found: File in ./models/Stable-diffusion/ on host (.ckpt/.safetensors/.pt). docker compose down && up -d.

xformers: Pull latest. Verify XFORMERS=true. Fallback: --opt-split-attention.

Extensions: Add --enable-insecure-extension-access. Mount ./extensions:/stable-diffusion-webui/extensions. Check docker compose logs -f. Disable: --disable-extension <dir>.


AUTOMATIC1111's SD WebUI • Ubuntu 24.04 • Run This AI

#install_guide