What you get at the end of this guide:
Offline AI cataloguing of naturalistic photos: semantic search, taxonomic classification, EXIF metadata, geolocation and aesthetic/technical score — all without an internet connection after the first launch.
| Component | Minimum | Recommended |
|---|---|---|
| Operating System | Windows 10 64-bit / Linux 64-bit / macOS 12+ | Windows 11 / Ubuntu 22.04+ / macOS 13+ |
| RAM | 8 GB | 16 GB |
| Disk Space | 15 GB | 25 GB |
| GPU (optional) | — | NVIDIA with 4+ GB VRAM (Windows/Linux) · Apple Silicon M1+ (macOS) |
| Internet Connection | Required only on first launch | — |
GPU note Windows/Linux: OffGallery works without an NVIDIA GPU, but processing will be slower. You can choose CPU/GPU in the settings.
GPU note macOS: On Apple Silicon (M1/M2/M3/M4) PyTorch automatically uses Metal/MPS for GPU acceleration. On Intel Mac it runs in CPU mode.
Linux note: Tested on Ubuntu, Fedora and Arch Linux. Other distributions with conda support should work.
macOS note: Supported on Apple Silicon (arm64) and Intel (x86_64). Requires macOS 12 Monterey or later.
This step is only required if you downloaded the ZIP from GitHub. If you used
git clone, skip directly to "Quick Installation".
The GitHub ZIP contains an OffGallery-main folder inside — that is the application root.
Common mistake: doing "Extract all" into a folder already named OffGallery creates a double folder:
OffGallery\
OffGallery-main\ ← the real root (contains installer\, gui\, etc.)
In this case the installer cannot find the files it expects.
How to extract correctly:
- Choose the parent folder where you want OffGallery to live — for example
C:\Programs\orC:\Users\YourName\ - Open the ZIP and click "Extract all", setting that parent folder as the destination
C:\Programs\OffGallery-main\is created automatically- (Optional) Rename the folder as you prefer, e.g.
OffGallery
The folder that contains installer\, gui\, gui_launcher.py is the correct root. Enter it before proceeding.
The wizard handles everything automatically: Miniconda, Python environment, libraries, ExifTool and (optional) Ollama.
If the wizard fails or you prefer manual control, go directly to Installation — Method 2: Manual (Plan B).
Download OffGallerySetup.exe, double-click and follow the wizard. No terminal, no manual configuration needed. Automatically installs Miniconda, Python environment, libraries and AI models (~8 GB).
SmartScreen note: on first launch Windows may show a security warning. Click "More info" → "Run anyway". The warning is due to the absence of an EV code signing certificate, not a security issue.
Alternative method — terminal scripts: If you downloaded the ZIP from GitHub and prefer the traditional method, open the
installer\folder and double-clickINSTALLA_OffGallery.bat, then follow the on-screen instructions (answer Y/N).
Download OffGallerySetup, make it executable and run it:
chmod +x OffGallerySetup && ./OffGallerySetupThe wizard installs everything graphically — no terminal needed after launch.
Alternative method — terminal script: open a terminal in the OffGallery folder and run
bash installer/install_offgallery_linux_en.sh, then follow the on-screen instructions (answer y/n to questions).
- Open a Terminal in the OffGallery folder
- Run:
bash installer/install_offgallery_mac_en.sh
- Follow the on-screen instructions (answer y/n to questions)
Apple Silicon: the wizard automatically detects the architecture (arm64 or x86_64) and downloads the correct version of Miniconda.
Gatekeeper (macOS): on the first launch of
OffGallery.apporOffGallery.command, macOS may show a security warning. Use right-click → Open to confirm. The installer already removes the quarantine attribute, so the warning normally does not appear.Re-runnable: if the wizard is interrupted, you can re-run it. Steps already completed are detected and skipped automatically.
| Windows | Linux | macOS | |
|---|---|---|---|
| Miniconda | Downloads and installs (default C:\miniconda3) |
Downloads and installs (~/miniconda3) |
Downloads and installs (~/miniconda3), detects arm64/x86_64 |
| Python environment | Creates OffGallery with Python 3.12 |
Creates OffGallery with Python 3.12 |
Creates OffGallery with Python 3.12 |
| Python libraries | Installs everything from requirements | Installs everything from requirements | Installs everything from requirements |
| ExifTool | Bundled in exiftool_files/ |
Via apt/dnf/pacman/zypper or local tar.gz | Via Homebrew or local tar.gz |
| Ollama | Optional | Optional | Optional (via Homebrew or official script) |
| Shortcut | OffGallery.lnk on the Desktop |
Entry in the applications menu | OffGallery.app in ~/Applications + OffGallery.command on the Desktop |
Estimated time: varies depending on connection speed — most of the time is download. On first launch, OffGallery will automatically download ~6.7 GB of AI models. Subsequent launches will be completely offline.
Use this method only if the wizard had problems, or if you prefer to control each step individually. The end result is identical.
Run the following scripts in order from the installer\ folder:
| Step | Script | What it does | Estimated time |
|---|---|---|---|
| 1 | 01_install_miniconda.bat |
Checks/installs Miniconda | 5 min |
| 2 | 02_create_env.bat |
Creates Python environment | 2 min |
| 3 | 03_install_packages.bat |
Installs Python libraries | 15–20 min |
| 4 | 06_setup_ollama.bat |
Installs local LLM (optional) | 5–10 min |
| — | First app launch | Automatic AI model download | 10–20 min |
For details on each step, see the sections below.
# 1. Install Miniconda (if not present)
curl -fSL https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -o /tmp/miniconda.sh
bash /tmp/miniconda.sh -b -p $HOME/miniconda3
$HOME/miniconda3/bin/conda init bash
# Reopen the terminal after this command
# 2. Create Python environment
conda create -n OffGallery python=3.12 --override-channels -c conda-forge -y
# 3. Install Python libraries
conda run -n OffGallery pip install -r installer/requirements_offgallery.txt
# 4. Install ExifTool
# Ubuntu/Debian:
sudo apt install libimage-exiftool-perl
# Fedora/RHEL:
sudo dnf install perl-Image-ExifTool
# Arch Linux:
sudo pacman -S perl-image-exiftool
# 5. Ollama (optional)
curl -fsSL https://ollama.com/install.sh | sh
ollama pull qwen3-vl:8b-instruct-q4_K_M# 1. Install Miniconda (if not present)
# Apple Silicon:
curl -fSL https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-arm64.sh -o /tmp/miniconda.sh
# Intel (uncomment the line below and comment the one above):
# curl -fSL https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-x86_64.sh -o /tmp/miniconda.sh
bash /tmp/miniconda.sh -b -p $HOME/miniconda3
$HOME/miniconda3/bin/conda init zsh # zsh is the default shell on macOS
$HOME/miniconda3/bin/conda init bash
# Reopen the terminal after this command
# 2. Create Python environment
conda create -n OffGallery python=3.12 --override-channels -c conda-forge -y
# 3. Install Python libraries
conda run -n OffGallery pip install -r installer/requirements_offgallery.txt
# 4. Install ExifTool
brew install exiftool
# If you don't have Homebrew: https://brew.sh
# Alternatively download the package from https://sourceforge.net/projects/exiftool/files/
# (exiftool.org currently does not serve downloads — see the notice on its home page)
# 5. Ollama (optional)
brew install ollama
# or: curl -fsSL https://ollama.com/install.sh | sh
ollama pull qwen3-vl:8b-instruct-q4_K_M
# 6. Launch
conda run -n OffGallery python gui_launcher.pyMiniconda is a program that lets you install Python and the libraries needed for OffGallery in an isolated way, without interfering with other programs on your computer. It is free and safe.
- Double-click
01_install_miniconda.bat - A black window (terminal) will open
- Read the message:
- If you see
[OK] Conda already installed→ Go to Step 2 - If you see
[!!] Conda not found→ Continue reading below
- If you see
- When the script asks
Do you want to open the download page now? (Y/N): - Type
Yand press ENTER - The browser will open on the download page
- Find the Windows section and click Miniconda3 Windows 64-bit
- Wait for the download to complete (about 80 MB)
-
Go to the Downloads folder and double-click the downloaded file (the name will be similar to
Miniconda3-latest-Windows-x86_64.exe) -
The installer starts. Follow these steps:
Screen What to do Welcome Click Next License Agreement Click I Agree Select Installation Type Select Just Me (recommended) → Click Next Choose Install Location Leave the default path → Click Next Advanced Options IMPORTANT — Check BOTH boxes: Add Miniconda3 to my PATH environment variable Register Miniconda3 as my default Python 3.x Then click Install Installing Wait for completion (1–2 minutes) Completed Click Next then Finish Warning: If you do not check "Add to PATH", the subsequent scripts will not work!
- Close all open terminal windows
- Double-click
01_install_miniconda.batagain - You should now see:
[OK] Conda already installed on the system conda 24.x.x - If you see this message, Step 1 complete!
| Problem | Solution |
|---|---|
| Still "Conda not found" after installation | Restart the computer and try again |
| "Add to PATH" was greyed out/disabled | Uninstall Miniconda, reinstall selecting "Just Me" |
| Error during installation | Temporarily disable antivirus |
- Double-click
02_create_env.bat - Wait for the message
[OK] Environment "OffGallery" created successfully!
This step downloads about 3 GB of libraries.
- Double-click
03_install_packages.bat - Wait for completion (depends on your connection)
- You will see
[OK] All packages installed successfully!
Ollama is completely optional. OffGallery works fully without it for semantic search (CLIP), BioCLIP taxonomy, aesthetic/technical scores, EXIF metadata and geolocation. Install Ollama only if you want to generate automatic descriptions, tags and titles with an LLM.
If the one-click installation fails on this step, do not worry: finish the main installation, then install Ollama separately with 06_setup_ollama.bat whenever you want — you will have more control over the process.
PC with little RAM or very slow? Consider not installing Ollama: OffGallery without LLM remains a complete tool for semantic indexing and visual similarity search.
- Double-click
06_setup_ollama.bat - If Ollama is not installed:
- Press
Yto open the download page - Download and install Ollama for Windows
- Re-run the script
- Press
- Press
Yto download the modelqwen3-vl:8b-instruct-q4_K_M(~5.2 GB, requires 8 GB VRAM)
Note: Ollama installs autonomously (%LOCALAPPDATA%\Programs\Ollama) and models are saved in %USERPROFILE%\.ollama\models. It does not depend on the OffGallery directory — you can install or remove it at any time without touching the rest of the installation.
OffGallery requires specific versions of some libraries to guarantee compatibility with the SigLIP so400m model. If you encounter problems with semantic search (scores always close to zero) or shape mismatch errors, run:
conda run -n OffGallery pip install transformers==4.57.3 huggingface-hub==0.36.0 open-clip-torch==3.2.0Then re-import the affected photos (reprocess the same folder with "Reprocess all").
The wizard already installs the correct pinned versions. This step is only needed if you have manually updated these packages.
Method 1 — Desktop shortcut (Recommended):
The wizard automatically creates the OffGallery shortcut on the Desktop:
- OffGallerySetup.exe (preferred method): creates OffGallery.lnk (main launcher) and OffGallery Manager.lnk (for updates and maintenance)
- INSTALLA_OffGallery.bat (script method): creates OffGallery.lnk
Double-click the OffGallery shortcut to launch the app.
Warning: do not copy or move
OffGallery_Launcher.batto the Desktop or other folders — the.batfile uses its own path to find the application and will not work if moved. Always use the.lnkshortcut. If you have lost it: right-clickinstaller\OffGallery_Launcher.bat→ Send to → Desktop (create shortcut).
Method 2 — From Terminal:
- Open the Anaconda Prompt
- Type:
conda activate OffGallery cd C:\path\to\OffGallery python gui_launcher.py
Method 1 — Applications menu (Recommended):
If you used the wizard, OffGallery appears in the applications menu. Search for it by name.
Method 2 — From terminal:
bash installer/offgallery_launcher_linux.shMethod 3 — Manual:
conda activate OffGallery
cd ~/path/to/OffGallery
python gui_launcher.pyMethod 1 — Spotlight / Launchpad (Recommended):
If you used the wizard, OffGallery.app is installed in ~/Applications and is immediately searchable:
- Spotlight:
Cmd+Space→ type OffGallery → Enter - Launchpad: search OffGallery among the apps
- Dock: drag
OffGallery.appfrom the~/Applicationsfolder
Method 2 — Double-click on the Desktop:
The wizard also creates OffGallery.command on the Desktop as a quick shortcut.
On first launch macOS may ask for confirmation. Use right-click → Open.
Method 3 — From terminal:
bash installer/offgallery_launcher_mac.shMethod 4 — Manual:
conda activate OffGallery
cd ~/path/to/OffGallery
python gui_launcher.pyOn the first launch, OffGallery automatically downloads the required AI models:
| Model | Use | Size |
|---|---|---|
| SigLIP | Multilingual semantic search | ~1.8 GB |
| DINOv2 | Visual similarity | ~330 MB |
| Aesthetic | Aesthetic scoring | ~1.6 GB |
| BioCLIP v2 + TreeOfLife | Flora/fauna classification | ~4.2 GB |
| Argos Translate | IT→EN translation | ~92 MB |
Estimated time: varies depending on connection (~6.7 GB to download)
Models are downloaded from the frozen repository HEGOM/OffGallery-models and saved in the OffGallery/Models/ folder (not in the system cache). Subsequent launches will be completely offline.
If the download is interrupted, restart the app: models already downloaded are not re-downloaded.
OffGallery includes a plugin system to extend analysis and enrichment capabilities. All plugins are distributed separately from the source code during the beta testing period.
They enable automatic generation of textual content via local LLM Vision models. Two backends are available:
| Plugin | Backend | Default endpoint |
|---|---|---|
| Ollama | Local Ollama | http://localhost:11434 |
| LM Studio | LM Studio server | http://localhost:1234 |
LLM generation is optional. Without LLM plugins, OffGallery works normally for CLIP, DINOv2, BioCLIP, aesthetic/technical scores, search and geolocation.
They add information derived from GPS, date/time and BioCLIP taxonomy to photos already in the database:
| Plugin | Function |
|---|---|
| GeoNames | Full geographic hierarchy from GPS (continent → city) |
| GeoSpecies | BioCLIP restricted to species expected at the GPS location |
| NaturArea | Protected area (WDPA) and habitat (ESA WorldCover) |
| Weather | Historical weather conditions at the time of the shot |
| BioNomen | Common biological names in 6 languages (GBIF) |
Beta access: During the beta testing period all plugins are distributed free of charge. To receive them, write to offgallery.ai.info@gmail.com stating:
- Operating system (Windows / Linux / macOS) and version
- System RAM
- GPU (model and VRAM) — or "CPU only" if you do not have a dedicated GPU
- Desired plugins (LLM: Ollama or LM Studio; data plugins: list which ones)
The address will be used exclusively for sending plugins and any update notifications, with no other purposes or sharing with third parties.
- Extract the contents of the zip into the
plugins/folder of your OffGallery installation - The resulting structure must be:
plugins/ └── plugin_name/ ├── __init__.py ├── plugin.py (or main file indicated in the manifest) └── manifest.json - Restart OffGallery — the plugin is detected automatically
- Windows: Restart the terminal after installing Miniconda. Verify that "Add to PATH" was selected during installation
- Linux: Run
~/miniconda3/bin/conda init bashand reopen the terminal - macOS: Run
~/miniconda3/bin/conda init zsh(orinit bash) and reopen the terminal
- Normal if you do not have an NVIDIA GPU
- Go to Settings > Device and select "CPU"
- Check your internet connection
- Restart the app (models already downloaded are not re-downloaded)
- Alternatively, use
python gui_launcher.py --download-modelsto force the download
If the one-click installer fails on the Ollama step (network errors, timeouts, etc.):
- Ignore the error and complete the installation — OffGallery works without Ollama
- When you want to add LLM support, run
06_setup_ollama.batmanually: you will have more control and can choose the best moment
- Windows: Make sure Ollama is running (icon in the system tray). Restart Ollama
- Linux: Check with
systemctl status ollamaor start withollama serve - macOS: Launch Ollama from the app or run
ollama servefrom the terminal - No Ollama? No problem — semantic search and all other AI models work normally. Tag/description/title generation will simply be disabled.
- Install via the system package manager:
- Ubuntu/Debian:
sudo apt install libimage-exiftool-perl - Fedora:
sudo dnf install perl-Image-ExifTool - Arch:
sudo pacman -S perl-image-exiftool
- Ubuntu/Debian:
- Try from terminal:
bash installer/offgallery_launcher_linux.sh - Check that conda is initialised:
conda --version
- Install via Homebrew:
brew install exiftool - Alternatively download the package from SourceForge
- Note: exiftool.org no longer serves downloads (its provider disabled the
service); old
.pkglinks return 404. The project home page points to SourceForge until the situation is resolved.
- Use right-click → Open on
OffGallery.apporOffGallery.command - Or from terminal:
xattr -cr ~/Applications/OffGallery.app xattr -c ~/Desktop/OffGallery.command
- Check that Xcode Command Line Tools are installed:
xcode-select --install - If on macOS 11+, make sure
QT_MAC_WANTS_LAYER=1is set (the launcher does this automatically)
- Embeddings were probably generated with an incompatible version of the library
- Run:
conda run -n OffGallery pip install transformers==4.57.3 huggingface-hub==0.36.0 open-clip-torch==3.2.0 - Then reprocess the affected photos with "Reprocess all" in the Processing tab
- This was a bug in versions prior to 10 Mar 2026 affecting photos taken West or South of the Greenwich meridian
- Reprocess the affected photos after updating to the latest version
GPU note: the Python environment size varies greatly depending on the GPU. PyTorch CPU weighs ~700 MB; PyTorch CUDA 11.8 weighs ~2.2 GB + ~1 GB of CUDA runtime libraries. The estimates below show both cases.
| Component | Location | CPU only | NVIDIA GPU (CUDA) |
|---|---|---|---|
| Miniconda base | C:\miniconda3 |
~400 MB | ~400 MB |
| OffGallery environment | C:\miniconda3\envs\OffGallery |
~3.5 GB | ~7 GB |
| AI Models | OffGallery\Models\ |
~6.7 GB | ~6.7 GB |
| Argos Translate | %USERPROFILE%\.local\share\argos-translate |
~92 MB | ~92 MB |
| Ollama + model | %LOCALAPPDATA%\Ollama |
~3.5 GB | ~3.5 GB |
| Total | ~14 GB | ~18 GB |
| Component | Location | CPU only | NVIDIA GPU (CUDA) |
|---|---|---|---|
| Miniconda base | ~/miniconda3 |
~400 MB | ~400 MB |
| OffGallery environment | ~/miniconda3/envs/OffGallery |
~3.5 GB | ~7 GB |
| AI Models | OffGallery/Models/ |
~6.7 GB | ~6.7 GB |
| Argos Translate | ~/.local/share/argos-translate |
~92 MB | ~92 MB |
| Ollama + model | ~/.ollama |
~3.5 GB | ~3.5 GB |
| Total | ~14 GB | ~18 GB |
CUDA is not available on macOS. Apple Silicon uses Metal/MPS (included in standard PyTorch, no additional overhead).
| Component | Location | Size |
|---|---|---|
| Miniconda base | ~/miniconda3 |
~400 MB |
| OffGallery environment | ~/miniconda3/envs/OffGallery |
~3.5 GB |
| AI Models | OffGallery/Models/ |
~6.7 GB |
| Argos Translate | ~/Library/Application Support/argos-translate |
~92 MB |
| Ollama + model | ~/.ollama |
~3.5 GB |
| Total | ~14 GB |
If the main drive does not have enough space, you can move the Models/ folder to another drive after installation.
- Move the folder
OffGallery/Models/to the desired destination (e.g.E:\MyModels\OffGallery) - Launch OffGallery and go to the Configuration tab
- In the Paths & Database section, AI Models field, enter the absolute path of the new location (e.g.
E:\MyModels\OffGallery) - Click Save
- Restart the app
Warning: change the path only after physically moving the folder. If the path does not exist, OffGallery will consider the models missing and attempt to re-download them.
For problems or questions, consult the documentation or open an issue on GitHub.
