Skip to content

Repository files navigation

withoutBG for Mac

withoutBG Mac app

Remove backgrounds on your Mac. Free, private, and local — nothing is uploaded.

A native macOS app powered by withoutBG Open Weights. Drag and drop images for cutouts, or start the optional Local API on http://127.0.0.1:8000 for scripts, the GIMP plugin, and CI.

Download → · Local API docs → · Headless / CI →

See the results

Example 1 Example 2 Example 3

Open Weights results → · Cloud API results → · Compare →

Features

Desktop

  • Drop, open (⌘O), or paste (⌘V) up to 20 images
  • Sequential auto-processing with Quick Look preview
  • Responsive thumbnail grid with Photos-style selection
  • Export transparent PNGs individually or as a zip
  • Light / dark / system appearance
  • Finder Services: Remove Background on selected images

Local API (optional)

  • Start/stop from the menu bar extra or Settings
  • POST /v1/remove-background — same inference engine as the desktop
  • GET /health, GET /openapi.json
  • Request log and operational metrics in the menu bar
  • Loopback-only (127.0.0.1) — sandboxed, private

Downloads

Product Audience Scheme
withoutBG (primary) Creators + developers WithoutBG
WithoutBG Server (headless) CI / automation-only WithoutBGServer

Most users should install withoutBG. The headless server build is for environments that only need the HTTP API.

Download withoutBG →

Requirements

  • macOS 14+
  • Xcode 16+ (Swift 5.9+) — for building from source
  • XcodeGen (brew install xcodegen) — for building from source

Local API quick start

  1. Launch withoutBG
  2. Click the menu bar icon → Start Local API
  3. Send a request:
curl -X POST \
  --data-binary @photo.jpg \
  -H "Content-Type: image/jpeg" \
  http://127.0.0.1:8000/v1/remove-background \
  -o result.png

OpenAPI spec: http://127.0.0.1:8000/openapi.json

Build & run

The Xcode project is generated from project.yml (gitignored).

xcodegen generate
open WithoutBG.xcodeproj
  • WithoutBG — windowed desktop app with menu bar Local API controls
  • WithoutBGServer — menu-bar-only headless distribution (LSUIElement)
# Primary app
xcodebuild -scheme WithoutBG -destination 'platform=macOS' build

# Headless server (advanced)
xcodebuild -scheme WithoutBGServer -destination 'platform=macOS' build

Release builds:

./scripts/release.sh                  # withoutBG DMG (primary)
./scripts/release.sh --server           # WithoutBG Server DMG (headless)

Background removal runs on-device via the bundled withoutBG Open Weights Core ML model (wbgnet_oss, fp32, v10). A MockProcessor is available behind the same BackgroundRemovalProcessor protocol for UI development without the model.

Monorepo layout

withoutbg-mac/
├── Packages/WithoutBGCore/     Shared inference, model, settings, product links
├── Apps/
│   ├── WithoutBG/              Primary desktop + embedded Local API
│   └── WithoutBGServer/        Headless menu-bar distribution
├── project.yml
└── scripts/release.sh

Inference

Both the desktop queue and Local API serialize through one SharedInferenceCoordinator actor backed by a single CoreMLProcessor instance — one model load, fair GPU scheduling.

Desktop UI ──┐
             ├── SharedInferenceCoordinator ── CoreMLProcessor ── wbgnet_oss
Local API ───┘

Shared code lives in Packages/WithoutBGCore. To run the UI without the model, inject MockProcessor() at app init.

Migration from WithoutBG Server

The standalone withoutbg-mac-server repository is consolidated into this monorepo. See docs/MIGRATION.md.

Existing com.withoutbg.mac.server installs continue to work via the WithoutBGServer target. New users should install withoutBG instead.

More than Mac

This app is the native desktop path: drag-and-drop cutouts plus an optional Local API. Same open-weights technology powers the rest of the ecosystem:

Surface Choose when
GIMP plugin You edit in GIMP 3 and want a private, mask-first workflow via this Local API or Docker
Docker / self-host You want an HTTP API or browser UI on your own server (CPU or NVIDIA GPU)
Python package You want to embed withoutBG in scripts, notebooks, or backends
Hugging Face · Space You want to try a demo or download the ONNX weights directly
Cloud API You need maximum quality without running inference yourself

Model

The withoutBG Open Weights Model is a unified Core ML graph hosted with the app. Depth, segmentation, matting, and refinement run in one pass. Built with DINOv3.

Licensed under the withoutBG Open Model License (Apache 2.0 for withoutBG portions; Meta DINOv3 License for DINOv3 backbone weights). See THIRD_PARTY_NOTICES for model attributions (DINOv3, Depth Anything V2).

License

This project’s source code is licensed under the Apache License 2.0.

Bundled withoutBG Open Weights are distributed under the withoutBG Open Model License (Apache 2.0 for withoutBG portions; Meta DINOv3 License for DINOv3 backbone weights). See THIRD_PARTY_NOTICES for model attributions (DINOv3, Depth Anything V2).

Support

About

Free, private, native macOS app for background removal — powered by withoutBG Open Weights

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages