Skip to main content

Funes

Nosotros, de un vistazo, percibimos tres copas en una mesa; Funes, todos los vástagos y racimos y frutos que comprende una parra. Sabía las formas de las nubes australes del amanecer del treinta de abril de mil ochocientos ochenta y dos y podía compararlas en el recuerdo con las vetas de un libro en pasta española que solo había mirado una vez y con las líneas de la espuma que un remo levantó en el Río Negro la víspera de la acción del Quebracho. Esos recuerdos no eran simples; cada imagen visual estaba ligada a sensaciones musculares, térmicas, etc. Podía reconstruir todos los sueños, todos los entresueños.

Funes is a large image explorer with focus on semantic search and image similarity done in a local, fast and accessible way to a large range of devices.

Users can import large collections of images which are indexed using vector embeddings. It's possible to either enter natural language queries to retrieve images that best match the query content, or get the most similar images from another one in the library.

No cloud storage, paying embedding models or GPU use is necessary. Everything runs locally, on CPU, in a scallable and fast way.

Generating embeddings

Usually, embeddings are generated by using an API of some commercial model that charges for its access. Furthermore, there are concerns of privacy, if there's sensitive material being processed, and dependency of a external service that could go down at any moment.

There is the alternative of running a local model, which requires a GPU powerful enough for a decent model. This compromises the use of underpowered devices and introduces some concerns with energy consumption.

The solution used by Funes is fastembed (https://github.com/qdrant/fastembed/), "a lightweight, fast, Python library built for embedding generation". Fastembed supports the model CLIP (https://huggingface.co/docs/transformers/model_doc/clip), a multimodal vision and language model which generates embeddings with similarity scores optimized for semantic content.

Vector storage and search

In order to avoid remote storage of embeddings, sqlite-vector (https://github.com/sqliteai/sqlite-vector) is used to store and retrieve the generated vectors. This also avoids the concerns with running local servers and managing docker containers.

Installing

Install using pip:

pip install funes

Python package

Funes can be used as a Python package by importing the search engine and storage classes:

from funes import SearchEngine, SQLiteStore

with SQLiteStore("funes.db") as store:
    engine = SearchEngine(store)
    results = engine.search_text("a dog on a beach")

The command-line interface is installed separately as funes-cli:

funes-cli index ./images
funes-cli search "a dog on a beach"
funes-cli search --image ./cat.jpg

Desktop interface

Launch the Qt interface with:

uv run funes

To point the interface at a specific SQLite database, pass the path:

uv run funes ./funes.db

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

funes_core-0.1.0.tar.gz (19.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

funes_core-0.1.0-py3-none-any.whl (24.0 kB view details)

Uploaded Python 3

File details

Details for the file funes_core-0.1.0.tar.gz.

File metadata

  • Download URL: funes_core-0.1.0.tar.gz
  • Upload date:
  • Size: 19.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.30 {"installer":{"name":"uv","version":"0.11.30","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Linux Mint","version":"21","id":"vanessa","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for funes_core-0.1.0.tar.gz
Algorithm Hash digest
SHA256 9d7941a0e758ebffcbf612ea2757e7caae15d3f9a5a608ab402676e55f452844
MD5 071354c1aa49e3a6d99a75caa11865e2
BLAKE2b-256 bb8f76c1ac13514f924a8e1b11bd9452e73bbcb9c08bb44169c16feb227415dd

See more details on using hashes here.

File details

Details for the file funes_core-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: funes_core-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 24.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.30 {"installer":{"name":"uv","version":"0.11.30","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Linux Mint","version":"21","id":"vanessa","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for funes_core-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8e1a17ef9ef655d4f50434882533748c3de90527266955033830cdd2ae55cee4
MD5 5c3550fd5a4189a15acfca111a509190
BLAKE2b-256 9b165ce068549a4734832ac638de807f7a6b14c4dcba81e3c6d598a6be26c692

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page