Immich makes photos searchable by converting prepared images into stored representations that can be compared with queries and filtered by access.
A parent remembers a red bicycle in a holiday photograph but not its filename or date, and searches the home photo server in ordinary language. A useful result requires more than keeping the image on disk. The visual representation, database lookup, and permission scope must work together, while the chosen model determines which similarities the search can recognize.
Preparing an Image Is Not Training a Model
Importing a library normally runs inference with an existing model; it does not train a new general-purpose model on the family collection. The server prepares usable image input, requests analysis, and associates the returned information with an asset. This distinction explains why a large initial import consumes compute without requiring a household training project.
Local visual indexing lets a hosted photo application build search representations before a user supplies a query. The initial pass takes time because each eligible image still needs processing. Once representations exist, a later search can reuse them instead of running the entire image-analysis workload across every photograph again.
The readiness boundary is therefore downstream of upload. A readable original can exist before its visual representation is available. Treat initial indexing as a distinct stage, and avoid interpreting a successful transfer or a quickly displayed cached preview as evidence that semantic analysis has finished for that asset.
Embeddings Connect Pictures With Words
An embedding is a numerical representation used to compare meaning or visual content. An image encoder and a compatible text encoder map different inputs into comparable representations. The search phrase is not simply checked against a secretly generated filename, and a successful result does not imply that the system wrote an accurate caption for every image.
Contrastive image-text learning aligns related pictures and descriptions while separating less related pairs during training. At search time, the trained representation supports comparisons between a phrase and stored image vectors. This is the mechanism behind searching for visual concepts without first assigning the same literal keyword to every relevant photo.
For example, a bicycle on a beach may rank for a descriptive phrase even if neither word occurs in its metadata. That is a relevance judgment, not proof that the image contains every requested detail. Wording, cropping, small objects, and competing visual features can alter the ranking despite an unchanged original file.
The Database Makes Results Retrievable
Computing a vector does not finish the retrieval path: the application must store it and search it alongside information about the asset. The database returns identifiers for candidate results, after which the application can provide the corresponding media. Compute throughput and database retrieval latency are related but independently measurable parts of the experience.
The search backend is version-sensitive. Immich removed pgvecto.rs support in v3 and recommends VectorChord as its successor, so an older architecture article naming pgvecto.rs should not become current deployment advice. The durable principle is the combination of stored vectors and relational application state, not one historical extension name.
To illustrate scale, 100,000 vectors containing 512 four-byte values occupy about 205 MB as raw numbers. This is not an Immich database estimate: actual dimensions, types, indexes, rows, and write-ahead logging change the total. The calculation only shows why a representation is different from storing another full-resolution image.
People, Metadata, and Visual Search Are Different Paths
Visual search, metadata filtering, and named-person retrieval answer different questions. A date filter uses recorded information; visual search ranks a scene description; face-related features detect and group faces that a person may then name. Expecting all three to behave like exact filename matching obscures why one route works while another disappoints.
Family photo organization benefits from combining these routes rather than asking one model to recover every fact. A person name, an approximate month, and a visual description constrain different aspects of the collection. Their usefulness depends on available metadata, completed processing, and which photos the current account is allowed to access.
The distinction also prevents an accuracy mistake: recognizing a visually similar face is not independent proof of identity. Review groups before relying on a name, especially where age, lighting, or occlusion changes appearance. Keep precise administrative or sensitive decisions outside a similarity ranking that was designed to help browse a photo library.
Privacy and Accuracy Have Separate Boundaries
A local model can keep image analysis within the home server, but the trust boundary follows the configured endpoint. Sending analysis to another machine means that machine processes the supplied input. A remote accelerator on a private network and an unknown hosted endpoint have different privacy implications even if both are called remote machine learning.
Model limitations remain separate from deployment privacy. The original CLIP research describes weaknesses in tasks such as counting and fine-grained distinctions, and warns that results depend on the categories or prompts supplied. Keeping inference local does not eliminate those limits or turn a similarity score into a factual description of a family event.
The private-search claim fails if it assumes that self-hosting automatically secures every endpoint, backup, account, and shared album. The accurate-search claim fails if it promises exhaustive recall from arbitrary wording. State both boundaries: who handles the inputs, and what the representation can reasonably distinguish in the selected collection.
Check the Pipeline With Known Photos
Build a small authorized reference set containing obvious objects, ambiguous scenes, small details, and several known people. After processing completes, compare exact metadata filtering with visual queries and named-person retrieval. Record the chosen model and server version so a later change can be evaluated against the same examples instead of memory.
A firsthand model-change experiment reported substantially different search quality with another configured model. That observation supports checking relevance against personal examples, not assuming that every larger model will improve every query. Hardware cost, language coverage, and reprocessing requirements must remain separate from one enthusiastic account of better results.
Accept the pipeline when representative assets have completed the required processing, permitted users can retrieve the expected examples, and weaknesses are documented rather than hidden. If metadata finds an asset but visual wording does not, inspect relevance before declaring data lost. If analysis was redirected, verify the receiving host as a separate privacy decision.
Tech & AI HUB
More to Read

Open Models Are Catching Frontier AI—Is 2026 the Year Local AI Becomes Good Enough?
Open models are getting good enough for more local AI workloads, while frontier cloud models remain useful for the hardest reasoning and agent tasks.

NVIDIA PAIR Turns Your Home Network Into a Local AI Cluster—Do You Still Need One Big GPU Server?
NVIDIA PAIR spreads local AI requests across multiple PCs, making compute more elastic while one home server can keep data and state persistent.

Why Does Immich Feel Faster on LAN Than on Remote Connections?
LAN requests usually take a shorter, lower-latency path. Remote access adds WAN capacity limits and may add DNS, TLS, proxy, VPN, or relay hops.

