Skip to content

Docker Image Tags

Stirling Image ships three Docker image variants to fit different use cases.

Full (default)

bash
docker pull stirlingimage/stirling-image:latest

Includes all tools: image processing, AI-powered background removal, upscaling, face blurring, object erasing, and OCR. Size is ~11 GB due to bundled ML models.

Lite

bash
docker pull stirlingimage/stirling-image:lite

Includes all image processing tools (resize, crop, rotate, convert, compress, watermark, collage, and 20+ more) but excludes AI/ML tools. Size is ~1-2 GB.

Use this if you:

  • Only need standard image processing (no AI features)
  • Are running on constrained hardware (Raspberry Pi, small VPS)
  • Want faster pulls and smaller disk footprint

Tools excluded from lite

ToolWhat it does
Remove BackgroundAI-powered background removal
UpscaleAI super-resolution upscaling
Blur FacesAI face detection and blurring
Erase ObjectAI inpainting to remove objects
OCROptical character recognition

All other tools (27+) work identically in both variants.

CUDA (GPU acceleration)

bash
docker pull stirlingimage/stirling-image:cuda

Same tools as the full image, but built with GPU-accelerated Python packages (onnxruntime-gpu, PyTorch CUDA, PaddlePaddle GPU). The image auto-detects your NVIDIA GPU at runtime and falls back to CPU if none is found.

Requires NVIDIA Container Toolkit on the host. Linux amd64 only.

Benchmarks

Tested on an NVIDIA RTX 4070 (12 GB VRAM) with a 572x1024 JPEG portrait. Both images ran on the same machine. "Warm" means the model is already loaded in memory (second request onward).

Warm performance

ToolCPUGPUSpeedup
Background removal (u2net)2,415ms879ms2.7x
Background removal (isnet)2,457ms1,137ms2.2x
Upscale 2x350ms309ms1.1x
Upscale 4x910ms310ms2.9x
OCR (PaddleOCR)137ms94ms1.5x
Face blur139ms122ms1.1x

Cold start (first request after container start)

ToolCPUGPUSpeedup
Background removal22,286ms4,792ms4.7x
Upscale 2x3,957ms2,318ms1.7x
OCR (PaddleOCR)1,469ms1,090ms1.3x

Cold start includes loading the model into memory. GPU cold starts are faster because CUDA parallelizes the model loading.

Larger images show bigger speedups, especially for upscaling. Non-AI tools (resize, crop, convert, etc.) are unaffected since they use Sharp (CPU-based).

GPU health check

After the first AI request, the admin health endpoint reports GPU status:

GET /api/v1/admin/health
{"ai": {"gpu": true}}

Docker Compose

Full

yaml
services:
  stirling-image:
    image: stirlingimage/stirling-image:latest
    ports:
      - "1349:1349"
    volumes:
      - stirling-data:/data
      - stirling-workspace:/tmp/workspace

volumes:
  stirling-data:
  stirling-workspace:

Lite

yaml
services:
  stirling-image:
    image: stirlingimage/stirling-image:lite
    ports:
      - "1349:1349"
    volumes:
      - stirling-data:/data
      - stirling-workspace:/tmp/workspace

volumes:
  stirling-data:
  stirling-workspace:

CUDA

yaml
services:
  stirling-image:
    image: stirlingimage/stirling-image:cuda
    ports:
      - "1349:1349"
    volumes:
      - stirling-data:/data
      - stirling-workspace:/tmp/workspace
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: 1
              capabilities: [gpu]

volumes:
  stirling-data:
  stirling-workspace:

Switching from lite to full

To upgrade from lite to full and unlock AI tools:

  1. Stop your container
  2. Pull the full image: docker pull stirlingimage/stirling-image:latest
  3. Update your compose file or run command to use :latest instead of :lite
  4. Start the container

Your data and settings are preserved in the volumes.

Version pinning

Both variants support semver tags for pinning:

TagDescription
latestLatest full release
liteLatest lite release
cudaLatest full release with GPU support
1.6.0Exact full version
1.6.0-liteExact lite version
1.6.0-cudaExact CUDA version
1.6Latest patch in 1.6.x (full)
1.6-liteLatest patch in 1.6.x (lite)
1.6-cudaLatest patch in 1.6.x (CUDA)