Stirling-PDF but for images. 30+ tools and local AI in a single Docker container - resize, compress, remove backgrounds, upscale, OCR, and more. No cloud, no telemetry. Your images never leave your machine.
Find a file
stirling-image f00a86aa18 fix(docker): rename duplicate download_codeformer_model function
The ONNX variant shadowed the .pth variant due to identical function
names, so codeformer.pth was never downloaded. Renamed the ONNX
function to download_codeformer_onnx_model so both run.
2026-04-14 18:00:47 +08:00
.github fix(ci): install exiftool in test job for edit-metadata tests 2026-04-13 01:02:28 +08:00
.husky refactor: rename Tool.alpha to Tool.experimental 2026-03-26 01:10:51 +08:00
apps fix(optimize-for-web): break infinite preview loop caused by store dependency cycle 2026-04-14 16:20:25 +08:00
docker fix(docker): rename duplicate download_codeformer_model function 2026-04-14 18:00:47 +08:00
images chore: add docs screenshot 2026-04-03 23:17:06 +08:00
packages fix(docker): close remaining airgap gaps for fully offline operation (#70) 2026-04-14 16:51:46 +08:00
scripts feat: add semantic-release for automated versioning and help dialog 2026-03-22 21:25:14 +08:00
tests feat(noise-removal): SOTA noise removal with 4 quality tiers (#57) 2026-04-13 19:50:23 +08:00
.dockerignore chore: remove dead code, add test infrastructure, update docs 2026-03-23 11:46:45 +08:00
.env.example feat: multi-arch Docker support, security hardening, and test improvements 2026-03-28 11:19:09 +08:00
.gitignore fix(passport-photo): support both old and new mediapipe APIs for face landmarks 2026-04-14 12:21:00 +08:00
.releaserc.json fix: streamline CI/CD — remove broken AI docs updater, fix Docker publish 2026-03-23 15:14:34 +08:00
biome.json refactor: rename Tool.alpha to Tool.experimental 2026-03-26 01:10:51 +08:00
CHANGELOG.md Merge branch 'main' of https://github.com/stirling-image/stirling-image 2026-04-10 23:02:47 +08:00
CONTRIBUTING.md refactor: remove lite variant, fix release workflow 2026-04-10 17:38:54 +08:00
LICENSE chore: use first-person voice in license and CLA text 2026-04-03 23:11:19 +08:00
package.json feat: SOTA overhaul of automate pipeline page (#53) 2026-04-13 16:26:38 +08:00
playwright.config.ts feat: multi-arch Docker support, security hardening, and test improvements 2026-03-28 11:19:09 +08:00
pnpm-lock.yaml feat: SOTA overhaul of automate pipeline page (#53) 2026-04-13 16:26:38 +08:00
pnpm-workspace.yaml feat: initialize Turborepo monorepo with pnpm workspaces 2026-03-22 02:41:44 +08:00
README.md refactor: remove lite variant, fix release workflow 2026-04-10 17:38:54 +08:00
tsconfig.base.json feat: initialize Turborepo monorepo with pnpm workspaces 2026-03-22 02:41:44 +08:00
turbo.json feat: initialize Turborepo monorepo with pnpm workspaces 2026-03-22 02:41:44 +08:00
vitest.config.ts fix: resolve multiple API and e2e test bugs 2026-04-04 17:44:51 +08:00

We're renaming! The Stirling PDF team asked us to pick a new name, and we want you to choose it.
Vote on the new name →
Voting closes April 10, 2026

Stirling Image logo

Stirling Image

Stirling-PDF but for images. 30+ tools and local AI in a single Docker container.

Docker CI License Stars

Stirling Image - Dashboard

Key Features

  • 30+ image tools - Resize, crop, compress, convert, watermark, color adjust, and more
  • Local AI - Remove backgrounds, upscale images, erase objects, blur faces, extract text (OCR). All running on your hardware with pre-downloaded models, no internet required
  • Pipelines - Chain tools into reusable workflows. Batch process up to 200 images at once
  • REST API - Every tool available via API. Interactive docs included at /api/docs
  • Single container - One docker run, no Redis, no Postgres, no external services
  • Multi-arch - Runs on AMD64 and ARM64 (Intel, Apple Silicon, Raspberry Pi)
  • Your data stays yours - No telemetry, no tracking, no external calls. Images never leave your machine

Quick Start

docker run -d -p 1349:1349 -v stirling-data:/data stirlingimage/stirling-image:latest

Open http://localhost:1349 in your browser.

Have an NVIDIA GPU? Click here for GPU acceleration.

Add --gpus all for GPU-accelerated background removal, upscaling, and OCR:

docker run -d -p 1349:1349 --gpus all -v stirling-data:/data stirlingimage/stirling-image:latest

Requires an NVIDIA GPU and Container Toolkit. Falls back to CPU if no GPU is found. See Docker Tags for benchmarks and Docker Compose examples.

Default credentials:

Field Value
Username admin
Password admin

You will be asked to change your password on first login. This is enforced for all new accounts and cannot be skipped in production.

For Docker Compose, persistent storage, and other setup options, see the Getting Started Guide. For GPU acceleration and tag details, see Docker Tags.

Documentation

Feedback

Found a bug or have a feature idea? Open a GitHub Issue. We don't accept pull requests, but your feedback directly shapes the project. See CONTRIBUTING.md for details.

License

This project is dual-licensed under the AGPLv3 and a commercial license.

  • AGPLv3 (free): You may use, modify, and distribute this software under the AGPLv3. If you run a modified version as a network service, you must make your source code available under the AGPLv3. This applies to personal use, open-source projects, and any use that complies with AGPLv3 terms.
  • Commercial license (paid): If you want to use Stirling Image in proprietary software or SaaS without the AGPLv3 source-disclosure requirement, a commercial license is available. Contact me for pricing and terms.