# SD.Next only — Windows GPU box (RTX 2080), not the NAS, not the full stack. # # The Unraid/NAS Compose file never requests a GPU. This file is the workstation # sidecar: generate covers / icon-pack drawings here, then copy results into the # repo or point the NAS app at this host with AI_ARTWORK_URL. # # Prerequisites (Docker Desktop + NVIDIA Container Toolkit / WSL2 GPU): # docker run --rm --gpus all nvidia/cuda:12.4.0-base-ubuntu22.04 nvidia-smi # # Start (from this directory, on the GPU machine only): # docker compose -f docker-compose.artwork-local.yml up -d # # Then either: # - generate in the SD.Next UI at http://127.0.0.1:7860 # - or on the NAS .env: AI_ARTWORK_URL=http://:7860 # # SD.Next has NO login, and anyone who can reach its port can queue generation # jobs on this GPU. So the port is published on loopback only by default. The # NAS route needs one explicit opt-in on THIS machine, set before `up -d`: # SDNEXT_HOST_BIND= (preferred: only that adapter) # SDNEXT_HOST_BIND=0.0.0.0 (every adapter, VPN included) # in the shell or in the .env next to this file, then recreate the container. # Scope the Windows Firewall rule for TCP 7860 to the NAS's address, not Any. # See docs/runbooks/artwork-gpu-workstation.md. # # Stop: docker compose -f docker-compose.artwork-local.yml down services: sdnext: image: ${SDNEXT_IMAGE:-saladtechnologies/sdnext:latest} container_name: oneirodex-sdnext-local restart: unless-stopped environment: - SD_NOHASHING=true command: - --listen - --no-download - --docs - --skip-requirements - --skip-extensions - --skip-git - --skip-torch - --quick volumes: - sdnext_models:/webui/data/models - sdnext_outputs:/webui/outputs ports: # Loopback unless SDNEXT_HOST_BIND says otherwise (see the header). - "${SDNEXT_HOST_BIND:-127.0.0.1}:${SDNEXT_HOST_PORT:-7860}:7860" deploy: resources: reservations: devices: - driver: nvidia count: 1 capabilities: [gpu] healthcheck: test: ['CMD', 'wget', '-q', '-O', '/dev/null', 'http://localhost:7860/sdapi/v1/sd-models'] interval: 30s timeout: 10s retries: 3 volumes: sdnext_models: sdnext_outputs: