# Advanced Use

To get the most out of your new tool.

Many of these settings are targeted for advanced users, and for those who would like to fine-tune settings to maximize the accuracy and the quality of the search results. If the Settings Window is not enough, feel free to check these pages out.

# Default models included with LumiFind

### Introduction

LumiFind uses a collection of specialized AI models to analyze documents, images, voice recordings, and videos. Each model is downloaded once and then reused, and larger models generally offer better accuracy at the cost of higher memory and processing needs.

### Document Models

These models handle text understanding and semantic search. Each one is downloaded once. Larger models generally provide better accuracy but require more memory and processing power. If you are using the Pro Edition, voice and video analysis will also use the selected document model for their text processing steps.

#### all-MiniLM-L6-v2 ~90MB

Fast and lightweight. Ideal for general text search, support articles, notes and low resource systems.

#### paraphrase-multilingual-MiniLM-L12-v2 ~420MB

Better semantic accuracy across many languages. Good for mixed-language documents and everyday multilingual search.

#### distiluse-base-multilingual-cased-v2 ~540MB

Cased model that preserves capitalization. Useful for academic papers, technical documents, abbreviations and proper nouns.

#### paraphrase-multilingual-mpnet-base-v2 ~1.1GB

Highest accuracy among the defaults. Best for large knowledge bases, precise semantic matching and deep contextual search.

### Image Models

These models extract visual features from images for similarity search and cross modal search. Larger models detect finer details but need more resources. Currently, image search can only be done in English-

#### clip-vit-base-patch32 ~615MB

Balanced speed and accuracy. Suitable for most general-purpose image search tasks.

#### clip-vit-large-patch14 ~1.5GB

Higher accuracy for detailed images. Best for design libraries, product databases and visually complex datasets.

#### siglip-base-patch16-224 ~820MB

Strong performance especially on semantic similarity. Good for modern datasets and multilingual text to image matching.

### Voice Models

These models transcribe audio into text before it can be searched. Bigger models offer noticeably higher accuracy, especially for long or noisy recordings.

Video files will also use these models for their audio tracks.

#### whisper-tiny ~151MB

Very fast. Works well for clean audio, short notes and quick transcriptions on low resource systems.

#### whisper-base ~290MB

Better accuracy while staying lightweight. Good for everyday recordings, meetings and clear speech.

#### whisper-small ~967MB

Stronger performance in noisy environments. Good for interviews, lectures and field recordings.

#### whisper-medium ~3.06GB

High accuracy across multiple languages. Great for professional transcriptions and detailed audio analysis.

#### whisper-large-v2 ~6.19GB

Highest accuracy. Best for multilingual projects, long recordings, and scenarios requiring maximum transcription quality.

### Video Frame Detectors

Videos consist of multiple images (maybe you know that already) called frames. LumiFind can analyze the frames with the given intervals to extract the object(s) in that frame. To do that, it needs frame detectors.

#### opencv\_ssd ~23MB

It is a fast and small model which can detect 20 common objects and can also run on older hardware.

It can detect these objects: aeroplane, bicycle, bird, boat, bottle, bus, car, cat, chair, cow, diningtable, dog, horse, motorbike, person, pottedplant, sheep, sofa, train, tvmonitor

#### opencv\_ssd\_coco ~180MB

It is slightly bigger than opencv\_ssd, but can detect 80 different common objects.

It can detect these objects: person, bicycle, car, motorcycle, airplane, bus, train, truck, boat, traffic light, fire hydrant, stop sign, parking meter, bench, bird, cat, dog, horse, sheep, cow, elephant, bear, zebra, giraffe, backpack, umbrella, handbag, tie, suitcase, frisbee, skis, snowboard, sports ball, kite, baseball bat, baseball glove, skateboard, surfboard, tennis racket, bottle, wine glass, cup, fork, knife, spoon, bowl, banana, apple, sandwich, orange, broccoli, carrot, hot dog, pizza, donut, cake, chair, couch, potted plant, bed, dining table, toilet, tv, laptop, mouse, remote, keyboard, cell phone, microwave, oven, toaster, sink, refrigerator, book, clock, vase, scissors, teddy bear, hair drier, toothbrush

#### detr / detr\_resnet50 ~160MB

This is a model from Facebook, which is slower, but good at detecting objects. If accuracy is more important than speed.

It can detect the same objects as [opencv\_ssd\_coco](#bkmrk-opencv_ssd_coco-%7E180) offers, but with higher accuracy.

#### mediapipe\_object ~5MB

Another small model from Google, which is battery friendly and can also work on older laptops.

It can detect the same objects as [opencv\_ssd\_coco](#bkmrk-opencv_ssd_coco-%7E180) offers, but with lower accuracy.

### Your Own Models

You can add your own AI models to LumiFind to customize analysis for your specific needs. For instructions on how to do this, see [this page](https://docs.midilli.tech/books/lumifind-user-guide/page/using-custom-models "Using custom models"). Once added, these models can be selected alongside the default ones.

# Using custom models

## Introduction

Sometimes the best model for your files isn't in any predefined list. That's why we added full custom model support. You're free to plug in the exact model you want, from lightweight text encoders to large instruction-tuned transformers, and seamlessly use it inside your workflow. This gives you the freedom to experiment, optimize for speed or accuracy, and adapt your pipeline to any future model without waiting for updates.

## Steps

LumiFind has a simple requirement for any custom model you want to use:

The model must match the analysis type you assign it to. A document model should only be used for text based analysis and an image model should only be used for image workflows. Because automatic type validation is not available yet, we trust you to pick the correct model for each category.

Adding your own model is straightforward. Go to the model page on [Hugging Face](https://huggingface.co/), locate the identifier in the format `organization/model-name` or `username/model-name`, and copy it. The copy icon on the page (highlighted in blue in the image below) gives you the exact string you need.

[![hugging-face-custom-models.png](https://docs.midilli.tech/uploads/images/gallery/2025-11/scaled-1680-/hugging-face-custom-models.png)](https://docs.midilli.tech/uploads/images/gallery/2025-11/hugging-face-custom-models.png)

You will often also find the information below what this model can be used for. This may give you a hint on which type of files you can use with this model. Below you can click to find the example models for a specific type:

- [Document Models](https://huggingface.co/models?library=sentence-transformers)
- [Image Models](https://huggingface.co/models?pipeline_tag=zero-shot-image-classification)
- [Voice Models](https://huggingface.co/models?pipeline_tag=automatic-speech-recognition)

Then, open the [Settings](https://docs.midilli.tech/books/lumifind-user-guide/page/settings "Settings Window") window in LumiFind, click the "Custom" button next to the model selectors you want to replace, paste the identifier, and click "OK".

[![settings-custom-model-window-1.4.0-windows.png](https://docs.midilli.tech/uploads/images/gallery/2026-03/settings-custom-model-window-1-4-0-windows.png)](https://docs.midilli.tech/uploads/images/gallery/2025-11/settings-custom-model-window-0-9-0-windows.png)

The entered model will now be seen in the dropdown. Once you save your settings, it will be used in the next restart of the app.

If you enter a private repository, a [hugging face token](https://docs.midilli.tech/books/lumifind-user-guide/page/settings#bkmrk-hugging-face-token) must be entered via [Settings](https://docs.midilli.tech/books/lumifind-user-guide/page/settings "Settings") and enabling [Show Advanced Settings](https://docs.midilli.tech/books/lumifind-user-guide/page/settings#bkmrk-show-advanced-settin).

<p class="callout info">Note: Currently, we cannot estimate how big the model is. If you press "Files and versions" tab on the model page, the total size will be shown. See an example below:[![image.png](https://docs.midilli.tech/uploads/images/gallery/2025-12/scaled-1680-/lV1image.png)](https://docs.midilli.tech/uploads/images/gallery/2025-12/lV1image.png)</p>

<p class="callout danger">**Important:** It is recommended to load models only from organizations/developers you trust. LumiFind cannot verify whether a model contains malicious code or if it is fully safe. In the "Files and versions" tab, some models include a "Safe" label. Selecting this label will display the results of the available virus scan reports.  
[![image.png](https://docs.midilli.tech/uploads/images/gallery/2025-12/scaled-1680-/Zgvimage.png)](https://docs.midilli.tech/uploads/images/gallery/2025-12/Zgvimage.png)</p>

<p class="callout warning">**Warning (and a long one):** Changing a model means all data that depends on that model must be reanalyzed. For instance, switching to a custom document model will clear all document related analysis. If you have the Pro Edition, this includes voice and video entries, since they both rely on document embeddings. Likewise, setting a custom voice model resets video analysis because video also uses voice embeddings. This keeps your results consistent and ensures your new model is applied everywhere it matters.</p>

<p class="callout warning">**Another warning**: We are trying to integrate as many models as possible, but some models may not be supported. Since we cannot support all available models, please try and let us know why an unsupported model must be integrated in the next versions.</p>

# Dealing with documents as images

LumiFind has a feature called: "Treat Images as Documents".

If this feature is enabled under [Settings](https://docs.midilli.tech/books/lumifind-user-guide/page/settings "Settings") -&gt; [Analysis Settings](https://docs.midilli.tech/books/lumifind-user-guide/page/settings#bkmrk-analysis-settings), the images found under the "Included Folders" will be treated as documents and the text will be extracted for quick search.

For Mac and Linux users, this will work out-of-the-box. However, Windows users need to install third-party tools to achieve that.

On Windows:

1. Open a PowerShell and type: `winget install -e --id UB-Mannheim.TesseractOCR` (This tool is provided by Library of University Mannheim: [https://ub-mannheim.github.io/Tesseract\_Dokumentation/)](https://ub-mannheim.github.io/Tesseract_Dokumentation/%29)
2. Download Ghostscript and install from: [https://ghostscript.com/releases/gsdnld.html](https://ghostscript.com/releases/gsdnld.html) (Unfortunately, this needs to be done manually)

Both tools are free and open-source. You can check their requirements on their websites.

See also: [Dealing with scanned documents](https://docs.midilli.tech/books/lumifind-user-guide/page/dealing-with-scanned-documents "Dealing with scanned documents")

# Dealing with scanned documents

LumiFind has a feature called: "Enable OCR fallback for PDFs".

If this feature is enabled under [Settings](https://docs.midilli.tech/books/lumifind-user-guide/page/settings "Settings") -&gt; [Analysis Settings](https://docs.midilli.tech/books/lumifind-user-guide/page/settings#bkmrk-analysis-settings), the PDFs found under the "Included Folders" will be further scanned with OCR tool to extract the text from them. This will significantly prolong the analysis time. Therefore, it is first recommended to start without this feature on.

For Mac and Linux users, this will work out-of-the-box. However, Windows users need to install third-party tools to achieve that.

On Windows:

1. Open a PowerShell and type: `winget install -e --id UB-Mannheim.TesseractOCR` (This tool is provided by Library of University Mannheim: [https://ub-mannheim.github.io/Tesseract\_Dokumentation/)](https://ub-mannheim.github.io/Tesseract_Dokumentation/%29)
2. Download Ghostscript and install from: [https://ghostscript.com/releases/gsdnld.html](https://ghostscript.com/releases/gsdnld.html) (Unfortunately, this needs to be done manually)

Both tools are free and open-source. You can check their requirements on their websites.

See also: [Dealing with documents as images](https://docs.midilli.tech/books/lumifind-user-guide/page/dealing-with-documents-as-images "Dealing with documents as images")

# Console mode

## Introduction

LumiFind offers a console mode for servers or remote computers such as Network Attached Storage (NAS). Most of these devices do not have a monitor, therefore, a graphical user interface (GUI) cannot be shown.

The console mode for LumiFind can work completely in the terminal. At the first startup, it asks you to register, then create the minimal settings file, then offers a set of options. The console mode is written in plain Python and can be expanded if you are comfortable with programming.

## Features

Unfortunately, not every feature in the GUI version is available for the easy use, but the core functionalities can be used. Here are the features it has so far:

- **License Management**: Activation, renewal, release, and validation of your LumiFind license.
- **Interactive Setup**: Guided creation of a minimal settings file, gated by your license features.
- **Semantic Indexing**: Analyze and index documents, images, voice, and video files (as permitted by your license).
- **Semantic Search**: Search indexed data by content, supporting multiple data types.
- **Data Management**: Clear analyzed data for any supported type.
- **Settings Management**: Create, reset, show, and validate your configuration.
- **Non-Interactive Automation**: Run indexing or search directly from the command line with flags.
- **Config Validation**: Check your settings file for completeness and correctness.

## Usage

LumiFind can be used in Linux and macOS devices in Console mode easily. On Linux installations the `lf` command is available; on macOS use the packaged application binary with the same flags. Under Windows, you need to locate the `LumiFind.exe` and run it on console using the command under Requirements.

### Requirements

- Internet access for license activation and model downloads.
- Read/write access to `~/.lumifind/` for config and database files.

To start in console mode, on Linux and macOS, run:

```
lf --console
```

on Windows, you need to open a terminal (e.g., pwsh or powershell) then go to the installation folder (e.g., `cd C:\Program Files\MIDILLI Tech\LumiFind`).

Finally run the LumiFind using the following command:

```
.\LumiFind.exe --console
```

## First Run Flow

1. **License Check**: On startup, LumiFind checks your license. If missing or invalid, you are prompted to activate with your license key and email. If the check fails, the program exits with code `1`.
2. **Settings Setup**: If no settings file exists (or you use `--setup`), LumiFind guides you through creating a minimal configuration: 
    - Index folder location
    - File formats to analyze
    - Log export preference
    - Feature enablement (Documents, Images, Voice, Video) based on your license
    - Model selection (with defaults, overridable). See [default supported models](https://docs.midilli.tech/books/lumifind-user-guide/page/default-models-included-with-lumifind), or how to [use your own model](https://docs.midilli.tech/books/lumifind-user-guide/page/using-custom-models).
3. **Main Menu**: After setup, LumiFind presents an interactive menu for all major operations.

```
Auto-detected system language: English
===========================================
  Welcome to LumiFind Console Mode!
  Website: https://lumifind.midilli.tech
  Backend Version: 1.5.0
  Frontend Version: 1.5.0
  This software is copyrighted.
===========================================
🤖 Loading model: sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2
📂 Found on device. Loading from cache.............
Model will run on: cpu
✅ Model loaded successfully!

📂 Found on device. Loading from cache...
🤖 Loading model: openai/clip-vit-base-patch32...
Model will run on: cpu
✅ Model loaded successfully!

Model will run on: cpu
🤖 Loading model: openai/whisper-small
📂 Found on device. Loading from cache...........
Model will run on: cpu
Database folder not found: ~/.lumifind/lumifind_db, will assume fresh installation

What do you want to do?
1. Analyze Documents
2. Search Documents
3. Clear Analyzed Data
4. License Manager
5. Settings (create/show)
q. Exit
Enter choice (1/2/3/4/5/q): 
```

The interactive menu also includes submenus for **License Manager** (renew / release / status) and **Settings** (create/reset / show current file).

## Non-Interactive Flags

LumiFind supports automation via command-line flags. Append the flag after enabling the console mode:

```
lf --console --flaghere
```

<table id="bkmrk-flag-description---s"><thead><tr><th>Flag</th><th>Description</th></tr></thead><tbody><tr><td><code>&#45;&#45;setup</code></td><td>Run guided setup to create/reset your settings file.</td></tr><tr><td><code>&#45;&#45;validate&#45;config</code></td><td>Validate your settings file for required sections, types, and JSON serializability. Exit code <code>0</code> = valid, <code>1</code> = problems found.</td></tr><tr><td><code>&#45;&#45;index</code></td><td>Start indexing using the actual settings immediately and exit.</td></tr><tr><td><code>&#45;&#45;search &#34;&#60;query&#62;&#34; &#45;&#45;type &#60;n&#62;</code></td><td>Run a search for the given query and type, print results as a table, then exit.</td></tr><tr><td><code>&#45;&#45;license&#45;manager</code></td><td>Open the graphical License Manager window on its own (useful for desktop automation).</td></tr><tr><td><code>&#45;&#45;welcome&#45;wizard</code></td><td>Open the graphical Setup Wizard on its own. Cannot be combined with <code>&#45;&#45;license&#45;manager</code> (exit code <code>2</code>).</td></tr><tr><td><code>&#45;&#45;update</code></td><td>Launch the built-in updater interface directly.</td></tr></tbody></table>

### Search types

The `--type` flag accepts values `0`–`4`:

<table id="bkmrk-value-searches-0-doc"><thead><tr><th>Value</th><th>Searches</th></tr></thead><tbody><tr><td><code>0</code></td><td>Documents (default)</td></tr><tr><td><code>1</code></td><td>Images</td></tr><tr><td><code>2</code></td><td>Voice recordings</td></tr><tr><td><code>3</code></td><td>Video audio</td></tr><tr><td><code>4</code></td><td>Video frames</td></tr></tbody></table>

<p class="callout info">**Note:** The interactive menu prompt lists types 0–3 only, but type `4` (video frames) is fully valid when passed via `--type 4`. Example:</p>

```
lf --console --search "sunset at the beach" --type 1
```

### Exit codes

<table id="bkmrk-code-meaning-0-opera"><thead><tr><th>Code</th><th>Meaning</th></tr></thead><tbody><tr><td><code>0</code></td><td>Operation completed successfully.</td></tr><tr><td><code>1</code></td><td>License check failed, settings file missing, invalid configuration, or search error.</td></tr><tr><td><code>2</code></td><td>Incompatible flags combined (<code>&#45;&#45;license&#45;manager</code> together with <code>&#45;&#45;welcome&#45;wizard</code>).</td></tr></tbody></table>

<p class="callout info">Exit codes make the non-interactive flags safe to use in cron jobs, systemd timers or NAS scheduling tools — simply check whether the command returned `0`.</p>

## Changing Settings

To get the most of the LumiFind, you can edit the settings file located under `~/.lumifind/settings.json`. Each setting is documented on the [Settings File](https://docs.midilli.tech/books/lumifind-user-guide/page/settings-file) page. After saving the changes do not forget to validate using `--validate-config`.

## Extending LumiFind

The console mode is written in Python and can be extended for automation, integration, or custom workflows.  
You can add new flags, automate menu actions, or integrate with other systems.

# Using GPU instead of CPU

For Enterprise users, GPU support with fallback to CPU comes with the deployment. Home users can also enable it, but must use the console version of LumiFind.

Here are the steps:

1. Download the Advanced version packaged for your operating system (as ZIP).
2. Unzip somewhere on your computer.
3. Make sure you have Python and PIP installed ([https://pip.pypa.io/en/<wbr>stable/installation/#ensurepip</wbr>](https://pip.pypa.io/en/stable/installation/#ensurepip)<wbr>)</wbr>
4. <div>Then on that folder open a command window, navigate to that folder and run:</div>

`pip install torch torchvision --index-url <a data-saferedirecturl="https://www.google.com/url?q=https://download.pytorch.org/whl/cu126&source=gmail&ust=1783077935041000&usg=AOvVaw3uTpqmCmGhocqH6KwgdVP-" href="https://download.pytorch.org/whl/cu126" rel="noopener" target="_blank">https://download.pytorch.org/<wbr>whl/cu126</wbr></a>`

<p class="callout info">Tip: On Windows, you can right click on the navigation bar of the Explorer, and press Edit Address, then type `powershell` to quickly open terminal in this folder.</p>

5. Then run:

`pip install -r requirements.txt`

6. Finally start LumiFind with:

`python -m lf --console`

You should then see that the application will run on CUDA similar to below:

[![image.png](https://docs.midilli.tech/uploads/images/gallery/2026-07/scaled-1680-/image.png)](https://docs.midilli.tech/uploads/images/gallery/2026-07/image.png)

# Folders and Files

As a user, you might occasionally want to see where a specific file is stored. Sometimes it's simple curiosity, other times you may want to inspect logs, review saved settings, or work directly with the files for troubleshooting or development.

And since LumiFind is privacy-focused software, everything is kept transparent so you can always see what is on your computer and why it is there.

## Application Logs (system locations)

While running, LumiFind writes background logs with names following the pattern `lf.YYYYMMDD_HHMM_XXX.log`. Depending on how LumiFind was installed, these are stored at:

<table id="bkmrk-operating-system-loc"><thead><tr><th>Operating System</th><th>Location</th><th>Comment</th></tr></thead><tbody><tr><td>Windows</td><td><code>&#37;LocalAppData&#37;&#92;MIDILLI Tech&#92;LumiFind&#92;Logs&#92;</code></td><td>Only exists if installed **for the current user**.</td></tr><tr><td>Windows</td><td><code>C&#58;&#92;Program Files&#92;MIDILLI Tech&#92;LumiFind&#92;Logs&#92;</code></td><td>Only exists if installed **for all users**.</td></tr><tr><td>macOS / Linux</td><td><code>&#126;&#47;&#46;lumifind&#47;logs&#47;</code></td><td>Auto-saved session logs appear here when enabled (see below).</td></tr></tbody></table>

## The .lumifind Folder

<table id="bkmrk-operating-system-pat" style="width: 42.9762%; height: 91.425px;"><thead><tr style="height: 29.6px;"><th style="width: 36.0596%; height: 29.6px;">Operating System</th><th style="width: 63.6842%; height: 29.6px;">Path</th></tr></thead><tbody><tr style="height: 30.9125px;"><td style="width: 36.0596%; height: 30.9125px;">Windows</td><td style="width: 63.6842%; height: 30.9125px;"><code>C&#58;&#92;Users&#92;&#37;username&#37;&#92;&#46;lumifind</code></td></tr><tr style="height: 30.9125px;"><td style="width: 36.0596%; height: 30.9125px;">macOS / Linux</td><td style="width: 63.6842%; height: 30.9125px;"><code>&#126;&#47;&#46;lumifind</code></td></tr></tbody></table>

This is the default folder for settings, license files, analysis metadata and analysis contents.

<p class="callout info">**Tip:** [Settings](https://docs.midilli.tech/books/lumifind-user-guide/page/settings) → **Open Settings Folder** opens this directory directly.</p>

### Files and folders inside .lumifind

<table id="bkmrk-file-%2F-folder-purpos"><thead><tr><th>File / Folder</th><th>Purpose</th><th>Comment</th></tr></thead><tbody><tr><td><code>settings&#46;json</code></td><td>Contains user settings for LumiFind.</td><td>Can be edited manually, but with care! See [Settings File](https://docs.midilli.tech/books/lumifind-user-guide/page/settings-file).</td></tr><tr><td><code>license&#46;json</code></td><td>Contains device- and user-bound license information.</td><td>If deleted or tampered with, the license cannot be activated again. Licenses must be released only using the [License Manager](https://docs.midilli.tech/books/lumifind-user-guide/page/license-manager).</td></tr><tr><td><code>search&#95;history&#46;json</code></td><td>Lists the last performed search queries.</td><td>If you are using [console mode](https://docs.midilli.tech/books/lumifind-user-guide/page/console-mode), history will not be kept.</td></tr><tr><td><code>lumifind&#95;db&#46;sqlite3</code></td><td>Database keeping track of analyzed files and their metadata. Usually small in size.</td><td>Default location may vary between installation types (directly under <code>&#46;lumifind</code>, or inside the index folder). Its path can be changed via the <code>db&#95;file</code> setting in <code>settings&#46;json</code>.</td></tr><tr><td><code>lumifind&#95;db&#47;</code></td><td>Folder holding the actual analysis data for documents, images, voice and videos. May grow as the number of analyzed files increases.</td><td>Location can be changed via the <code>index&#95;folder</code> setting in <code>settings&#46;json</code>.</td></tr><tr><td><code>thumbnails&#47;</code></td><td>Smaller versions of the analyzed images, used both for detecting changes and displaying them in the interface. Follows the same folder structure as the indexed content.</td><td>Can be relocated via the <code>thumbnail&#95;folder</code> setting.</td></tr><tr><td><code>models&#47;</code></td><td>Cached copies of downloaded AI models (embedding, transcription and detection models).</td><td>Can be relocated via the <code>models&#95;folder</code> setting.</td></tr><tr><td><code>&#60;model&#95;name&#62;&#46;pt</code></td><td>Object detection model weights downloaded on demand for frame analysis.</td><td>Stored at the root of <code>&#46;lumifind</code>; safe to delete, they will be re-downloaded when needed.</td></tr><tr><td><code>manifest&#46;json</code></td><td>Cached update information used by the built-in updater.</td><td>Refreshed automatically when checking for updates.</td></tr><tr><td><code>logs&#47;</code></td><td>Folder storing important information and error logs in the event of a problem.</td><td>If you enable [Settings](https://docs.midilli.tech/books/lumifind-user-guide/page/settings) → **Auto Save Logs**, session logs also appear here after each run.</td></tr></tbody></table>

## Inside the Index Folder (lumifind\_db)

Besides your analysis data, LumiFind keeps small marker files here:

<table id="bkmrk-file-purpose-.lumifi"><thead><tr><th>File</th><th>Purpose</th></tr></thead><tbody><tr><td><code>&#46;lumifind&#95;indexing&#46;lock</code></td><td>Temporary marker while an indexing operation is running, preventing concurrent index writes.</td></tr><tr><td><code>&#46;lumifind&#95;readonly</code></td><td>Marker indicating the index is currently read-only (e.g. during maintenance or after an interrupted operation).</td></tr></tbody></table>

<p class="callout warning">**Note:** Do not delete marker or database files manually while LumiFind is running. If an indexing operation was interrupted unexpectedly, remove the lock markers only after making sure no LumiFind process is active.</p>

## Model files from Hugging Face

<table id="bkmrk-os-folder-purpose-wi" style="width: 100%;"><thead><tr><th style="width: 12.8694%;">OS</th><th style="width: 25.143%;">Folder</th><th style="width: 61.9638%;">Purpose</th></tr></thead><tbody><tr><td style="width: 12.8694%;">Windows</td><td style="width: 25.143%;"><code>C&#58;&#92;Users&#92;&#37;username&#37;&#92;&#46;cache&#92;huggingface</code></td><td style="width: 61.9638%;">Model files downloaded from Hugging Face.</td></tr><tr><td style="width: 12.8694%;">Linux/macOS</td><td style="width: 25.143%;"><code>&#126;&#47;&#46;cache&#47;huggingface</code></td><td style="width: 61.9638%;">Model files downloaded from Hugging Face.</td></tr></tbody></table>

# Settings File

LumiFind stores every user preference in a single JSON file: `settings.json`. This page documents every key LumiFind reads, its type, default value and purpose. So, you can safely review, back up or hand-tune your configuration (for example on headless servers running [Console mode](https://docs.midilli.tech/books/lumifind-user-guide/page/console-mode)).

## File Location

<table id="bkmrk-operating-system-pat"><thead><tr><th>Operating System</th><th>Path</th></tr></thead><tbody><tr><td>Windows</td><td><code>&#37;UserProfile&#37;&#92;&#46;lumifind&#92;settings&#46;json</code></td></tr><tr><td>macOS / Linux</td><td><code>&#126;&#47;&#46;lumifind&#47;settings&#46;json</code></td></tr></tbody></table>

The fastest way to open the folder is **Settings** → **Open Settings Folder**. For a full overview of the directory see [Folders and Files](https://docs.midilli.tech/books/lumifind-user-guide/page/folders-and-files).

<p class="callout warning">**Edit with care!** Invalid values can prevent indexing or searching from working. Before editing: close LumiFind, keep a backup copy of the file, and run a validation afterwards (see [Validating the file](#bkmrk-validating-the-file)). Keys marked as *managed* are written automatically by the app and should not be edited by hand.</p>

## Structure Overview

```json
{
  "generic": { ... },
  "model_info": { ... },
  "indexing_settings": { ... },
  "search_settings": { ... },
  "visual_settings": { ... }
}
```

All five top-level sections are **required**; the validator complains if any of them is missing. A few extra keys (`last_folder`, `last_updated`) are added automatically by the app.

## Section: generic

<table id="bkmrk-key-type-default-des"><thead><tr><th>Key</th><th>Type</th><th>Default</th><th>Description</th></tr></thead><tbody><tr><td><code>language</code></td><td>string</td><td><code>&#34;en&#34;</code></td><td>Interface language code.</td></tr><tr><td><code>auto&#95;detect</code></td><td>boolean</td><td><code>true</code></td><td>Detect and use the operating system language on first run.</td></tr><tr><td><code>fallback&#95;language</code></td><td>string</td><td><code>&#34;en&#34;</code></td><td>Fallback language for missing translations.</td></tr><tr><td><code>auto&#95;check&#95;updates</code></td><td>boolean</td><td><code>true</code></td><td>Check for updates when the application starts.</td></tr><tr><td><code>advanced&#95;mode</code></td><td>boolean</td><td><code>false</code></td><td>Show advanced options in the Settings window.</td></tr><tr><td><code>backup&#95;include&#95;thumbnails</code></td><td>boolean</td><td><code>true</code></td><td>Include thumbnails when creating settings backups.</td></tr><tr><td><code>last&#95;backup&#95;date</code></td><td>string</td><td><code>&#34;&#34;</code></td><td>*Managed.* Timestamp of the last backup.</td></tr></tbody></table>

## Section: model\_info

<table id="bkmrk-key-type-default-des-1"><thead><tr><th>Key</th><th>Type</th><th>Default</th><th>Description</th></tr></thead><tbody><tr><td><code>doc&#95;model&#95;enabled</code></td><td>boolean</td><td><code>true</code></td><td>Enable the document embedding model.</td></tr><tr><td><code>doc&#95;model&#95;name</code></td><td>string</td><td><code>sentence&#45;transformers&#47;paraphrase&#45;multilingual&#45;MiniLM&#45;L12&#45;v2</code></td><td>Hugging Face model used for document embeddings. See [default models](https://docs.midilli.tech/books/lumifind-user-guide/page/default-models-included-with-lumifind) and [custom models](https://docs.midilli.tech/books/lumifind-user-guide/page/using-custom-models).</td></tr><tr><td><code>image&#95;model&#95;enabled</code></td><td>boolean</td><td><code>false</code></td><td>Enable image search.</td></tr><tr><td><code>image&#95;model&#95;name</code></td><td>string</td><td><code>openai&#47;clip&#45;vit&#45;base&#45;patch32</code></td><td>Hugging Face model used for image embeddings.</td></tr><tr><td><code>voice&#95;model&#95;enabled</code></td><td>boolean</td><td><code>false</code></td><td>Enable voice transcription and search.</td></tr><tr><td><code>voice&#95;model&#95;name</code></td><td>string</td><td><code>openai&#47;whisper&#45;tiny</code></td><td>Hugging Face Whisper model used for transcription.</td></tr><tr><td><code>video&#95;model&#95;enabled</code></td><td>boolean</td><td><code>false</code></td><td>Enable video search (audio track analysis).</td></tr><tr><td><code>frame&#95;model&#95;enabled</code></td><td>boolean</td><td><code>false</code></td><td>Enable frame detection (object detection inside videos/images).</td></tr><tr><td><code>frame&#95;detector&#95;type</code></td><td>string</td><td><code>opencv&#95;ssd&#95;coco</code></td><td>Object detector. Supported values include <code>opencv&#95;ssd&#95;coco</code>, <code>detr</code>, <code>yolov8n</code>, <code>yolov8s</code>.</td></tr><tr><td><code>frame&#95;model&#95;size</code></td><td>number \| null</td><td><code>null</code></td><td>Optional override of the estimated download size shown in the interface.</td></tr><tr><td><code>whisper&#95;language&#95;code</code></td><td>string</td><td><code>&#34;&#34;</code></td><td>Force transcription language (e.g. <code>&#34;en&#34;</code>, <code>&#34;tr&#34;</code>). Empty = auto-detect.</td></tr><tr><td><code>hugging&#95;face&#95;token</code></td><td>string</td><td><code>&#34;&#34;</code></td><td>Access token for gated or private Hugging Face models.</td></tr></tbody></table>

<p class="callout info">Feature switches are gated by your license. If a feature is not part of your license, enabling its switch has no effect.</p>

## Section: indexing\_settings

### Paths and files

<table id="bkmrk-key-type-default-des-2"><thead><tr><th>Key</th><th>Type</th><th>Default</th><th>Description</th></tr></thead><tbody><tr><td><code>index&#95;folder</code></td><td>path</td><td><code>&#126;&#47;&#46;lumifind&#47;lumifind&#95;db</code></td><td>Root folder holding all analysis data.</td></tr><tr><td><code>db&#95;file</code></td><td>path</td><td><code>&#126;&#47;&#46;lumifind&#47;lumifind&#95;db&#46;sqlite3</code></td><td>SQLite database file tracking analyzed files. The GUI Setup Wizard may place it inside the index folder instead.</td></tr><tr><td><code>thumbnail&#95;folder</code></td><td>path</td><td><code>&#126;&#47;&#46;lumifind&#47;thumbnails</code></td><td>Folder for thumbnail images.</td></tr><tr><td><code>models&#95;folder</code></td><td>path</td><td><code>&#126;&#47;&#46;lumifind&#47;models</code></td><td>Folder where downloaded models are cached.</td></tr><tr><td><code>image&#95;cache&#95;folder</code></td><td>path</td><td>= index folder</td><td>Optional separate location for the image embedding cache.</td></tr><tr><td><code>file&#95;formats</code></td><td>list of strings</td><td>(see example)</td><td>File extensions to analyze, e.g. <code>&#34;&#46;pdf&#34;</code>, <code>&#34;&#46;jpg&#34;</code>.</td></tr></tbody></table>

### Analysis parameters

<table id="bkmrk-key-type-default-des-3"><thead><tr><th>Key</th><th>Type</th><th>Default</th><th>Description</th></tr></thead><tbody><tr><td><code>doc&#95;batch&#95;size</code></td><td>integer</td><td><code>1000</code></td><td>Documents processed per batch.</td></tr><tr><td><code>image&#95;batch&#95;size</code></td><td>integer</td><td><code>5</code></td><td>Images processed per batch (GUI wizard uses 10).</td></tr><tr><td><code>chunk&#95;size</code></td><td>integer</td><td><code>500</code></td><td>Text chunk size in characters.</td></tr><tr><td><code>chunk&#95;overlap</code></td><td>integer</td><td><code>50</code></td><td>Overlap between consecutive text chunks.</td></tr><tr><td><code>voice&#95;chunk&#95;duration</code></td><td>integer</td><td><code>30</code></td><td>Audio chunk length in seconds.</td></tr><tr><td><code>frame&#95;sample&#95;rate</code></td><td>integer</td><td><code>5</code></td><td>Analyze one frame every N seconds. Must be a positive integer (GUI wizard uses 25).</td></tr><tr><td><code>frame&#95;sampling&#95;enabled</code></td><td>boolean</td><td><code>true</code></td><td>Enable frame sampling during video indexing.</td></tr><tr><td><code>object&#95;confidence&#95;threshold</code></td><td>number (0–1)</td><td><code>0&#46;5</code></td><td>Minimum confidence for detected objects (GUI wizard uses 0.25).</td></tr></tbody></table>

### Feature toggles

<table id="bkmrk-key-type-default-des-4"><thead><tr><th>Key</th><th>Type</th><th>Default</th><th>Description</th></tr></thead><tbody><tr><td><code>process&#95;email&#95;attachments</code></td><td>boolean</td><td><code>true</code></td><td>Index attachments found in email files.</td></tr><tr><td><code>pdf&#95;ocr&#95;fallback</code></td><td>boolean</td><td><code>false</code></td><td>Use OCR when a PDF contains no extractable text. See [Dealing with scanned documents](https://docs.midilli.tech/books/lumifind-user-guide/page/dealing-with-scanned-documents).</td></tr><tr><td><code>treat&#95;images&#95;as&#95;documents</code></td><td>boolean</td><td><code>false</code></td><td>OCR images and index them as documents. See [Dealing with documents as images](https://docs.midilli.tech/books/lumifind-user-guide/page/dealing-with-documents-as-images).</td></tr><tr><td><code>enable&#95;exif&#95;geocoding</code></td><td>boolean</td><td><code>true</code></td><td>Reverse-geocode GPS coordinates from EXIF metadata.</td></tr><tr><td><code>enable&#95;thumbnails</code></td><td>boolean</td><td><code>true</code></td><td>Generate thumbnails for analyzed images.</td></tr><tr><td><code>auto&#95;export&#95;logs</code></td><td>boolean</td><td><code>false</code></td><td>Save session logs to the logs folder after each run.</td></tr><tr><td><code>show&#95;file&#95;info</code></td><td>boolean</td><td><code>false</code></td><td>Show detailed file information in results.</td></tr></tbody></table>

### Maintenance and file watching

<table id="bkmrk-key-type-default-des-5"><thead><tr><th>Key</th><th>Type</th><th>Default</th><th>Description</th></tr></thead><tbody><tr><td><code>file&#95;watching&#95;enabled</code></td><td>boolean</td><td><code>false</code></td><td>Watch folders for changes and update the index automatically.</td></tr><tr><td><code>file&#95;watching&#95;interval</code></td><td>integer</td><td><code>60</code></td><td>Polling interval in seconds.</td></tr><tr><td><code>checkpoint&#95;interval</code></td><td>integer</td><td><code>0</code></td><td>Save an indexing checkpoint every N files; <code>0</code> disables checkpoints.</td></tr><tr><td><code>oldest&#95;file&#95;date</code></td><td>date string</td><td><code>&#34;1970&#45;01&#45;01&#34;</code></td><td>Skip files created before this date while indexing.</td></tr></tbody></table>

<p class="callout danger">**Managed keys — do not edit:** `indexed_folders`, `excluded_folders`, `tracked_files` (lists maintained by the app) and `previous_doc_model` (used internally during model changes).</p>

## Section: search\_settings

<table id="bkmrk-key-type-default-des-6"><thead><tr><th>Key</th><th>Type</th><th>Default</th><th>Description</th></tr></thead><tbody><tr><td><code>max&#95;results</code></td><td>integer</td><td><code>100</code></td><td>Maximum number of results returned per search.</td></tr><tr><td><code>max&#95;results&#95;per&#95;file</code></td><td>integer</td><td><code>1</code></td><td>Maximum matches returned per file.</td></tr><tr><td><code>min&#95;score</code></td><td>number</td><td><code>0</code></td><td>Discard results below this similarity score.</td></tr><tr><td><code>use&#95;metadata&#95;mode</code></td><td>integer</td><td><code>0</code></td><td>How image search balances metadata against visual content: <code>0</code> = balanced (default), <code>1</code> = prioritize metadata filters, <code>2</code> = prioritize visual matching.</td></tr><tr><td><code>image&#95;top&#95;k</code></td><td>integer</td><td><code>5</code></td><td>Number of candidate images considered per query stage.</td></tr><tr><td><code>metadata&#95;boost&#95;weight</code></td><td>number</td><td><code>0&#46;3</code></td><td>Weight given to metadata matches when ranking.</td></tr><tr><td><code>min&#95;file&#95;size&#95;mb</code></td><td>number</td><td><code>0&#46;0</code></td><td>Ignore files smaller than this size.</td></tr><tr><td><code>max&#95;file&#95;size&#95;mb</code></td><td>number</td><td><code>100&#46;0</code></td><td>Ignore files larger than this size (GUI wizard uses 250).</td></tr><tr><td><code>oldest&#95;file&#95;date</code></td><td>date string</td><td><code>&#34;1970&#45;01&#45;01&#34;</code></td><td>Exclude files created before this date from results.</td></tr><tr><td><code>file&#95;formats</code></td><td>list of strings</td><td>(mirror of indexing)</td><td>Restrict searches to these extensions.</td></tr></tbody></table>

## Section: visual\_settings

<table id="bkmrk-key-type-default-des-7"><thead><tr><th>Key</th><th>Type</th><th>Default</th><th>Description</th></tr></thead><tbody><tr><td><code>log&#95;level</code></td><td>string</td><td><code>&#34;INFO&#34;</code></td><td>Logging verbosity (e.g. <code>DEBUG</code>, <code>INFO</code>, <code>WARNING</code>).</td></tr><tr><td><code>date&#95;format</code></td><td>string</td><td><code>&#34;YYYY&#45;MM&#45;DD&#34;</code></td><td>Date display format (GUI wizard uses <code>DD&#46;MM&#46;YYYY</code>).</td></tr><tr><td><code>time&#95;format</code></td><td>string</td><td><code>&#34;HH&#58;mm&#58;ss&#34;</code></td><td>Time display format.</td></tr><tr><td><code>file&#95;size&#95;unit</code></td><td>string</td><td><code>&#34;MB&#34;</code></td><td>Preferred unit for file sizes.</td></tr><tr><td><code>show&#95;thumbnails</code></td><td>boolean</td><td><code>true</code></td><td>Show thumbnails in result lists.</td></tr><tr><td><code>show&#95;original&#95;images</code></td><td>boolean</td><td><code>false</code></td><td>Show original images instead of thumbnails where possible.</td></tr><tr><td><code>add&#95;timestamps</code></td><td>boolean</td><td><code>true</code></td><td>Display timestamps next to entries.</td></tr></tbody></table>

## Example: minimal settings.json

This is what Console mode's guided setup produces:

```json
{
  "generic": {
    "language": "en"
  },
  "model_info": {
    "hugging_face_token": "",
    "doc_model_enabled": true,
    "doc_model_name": "sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2",
    "image_model_enabled": false,
    "image_model_name": "openai/clip-vit-base-patch32",
    "voice_model_enabled": false,
    "video_model_enabled": false,
    "frame_model_enabled": false,
    "frame_detector_type": "opencv_ssd_coco",
    "frame_model_size": null
  },
  "indexing_settings": {
    "index_folder": "~/.lumifind/lumifind_db",
    "db_file": "~/.lumifind/lumifind_db.sqlite3",
    "thumbnail_folder": "~/.lumifind/thumbnails",
    "models_folder": "~/.lumifind/models",
    "file_formats": [".txt", ".md", ".pdf", ".docx"],
    "doc_batch_size": 1000,
    "image_batch_size": 5,
    "chunk_size": 500,
    "chunk_overlap": 50,
    "pdf_ocr_fallback": false,
    "treat_images_as_documents": false,
    "auto_export_logs": false,
    "show_file_info": false,
    "enable_exif_geocoding": true,
    "frame_sample_rate": 5,
    "object_confidence_threshold": 0.5
  },
  "search_settings": {
    "max_results": 100,
    "max_results_per_file": 1,
    "min_score": 0,
    "use_metadata_mode": 0,
    "file_formats": [".txt", ".md", ".pdf", ".docx"],
    "min_file_size_mb": 0.0,
    "max_file_size_mb": 100.0
  },
  "visual_settings": {
    "log_level": "INFO",
    "date_format": "YYYY-MM-DD",
    "file_size_unit": "MB"
  }
}
```

<p class="callout info">**Note:** Paths may be written either absolute or starting with `~/`; LumiFind expands both. The GUI Setup Wizard creates the same structure but may pick different initial values for a few keys (batch sizes, sampling rate and date format).</p>

## Validating the file

After editing, always validate:

```
lf --console --validate-config
```

The check reports:

- All five required sections exist.
- `generic.language` is a string; `index_folder`, `db_file` are string paths; `file_formats` is a list.
- `frame_detector_type` is a string and `frame_model_enabled` is a boolean (when present).
- `frame_sample_rate` is a positive integer.
- `object_confidence_threshold` is a number between 0 and 1.
- The whole file is valid JSON and fully serializable.

Exit code `0` means valid, `1` means problems were found (details printed to the console).

## Resetting to defaults

- **Console mode:** run `lf --console --setup`, or choose menu option **Settings (create/show)** → **Create/Reset**.
- **GUI:** re-run the Setup Wizard via `--welcome-wizard` or reinstall/reset from Settings.