{% extends 'base.html' %} {% block extra_head %} {% endblock %} {% block content %}
Return to Library

Similar Images Experiment

Browse generated similarity groups. Viewing results does not call the model.

{% for label, value in [('Total Images', status.total_images), ('Available', status.indexed), ('Not Built', status.missing), ('Needs Update', status.stale)] %}
{{ label }}
{{ value }}
{% endfor %}
{% if status.stale_reasons %}

Update reasons (may overlap): {% set labels = {'model': 'Model changed', 'dimensions': 'Vector dimensions changed', 'image_max_size': 'Image size setting changed', 'image_quality': 'Image quality setting changed', 'file_changed': 'File changed'} %} {% for reason, count in status.stale_reasons.items() %}{{ labels[reason] }} {{ count }}{% if not loop.last %} · {% endif %}{% endfor %}

{% endif %}

{{ config.model_name }} · {{ config.dimensions }} dimensions · longest edge {{ config.image_max_size }}px · JPEG quality {{ config.image_quality }}

{{ status.pending }} images pending. Estimated cost depends on the model provider and processed volume.

{% if not config.enabled %}

Results are view-only because vector building is disabled.

{% endif %}
Build and update instructions

Use the configured media directory in the server terminal. Preview the scope first, then run it; the model is not called without confirmation.

tiklocal vectorize --dry-run --limit 100
tiklocal vectorize --limit 100
tiklocal analyze-similar

Building requires embedding.enabled: true and an API key. Web batch building is disabled to avoid occupying the browsing service.

Similarity Groups

{% for group in page['items'] %} {% set visible = group['items'][:6] %} {% set layout = 'many' if group.count >= 6 else group.count|string %} {% endfor %}
{% if not page['items'] %}

There are no groups to display on this page. Build vectors, then run local similarity analysis.

{% endif %}
{% endblock %}