Each image in the current collection is represented by a thumbnail in the lighttable view and filmstrip module. A cache of the most recently used thumbnails is stored in a file on disk and loaded into memory at startup. The size of this cache can be adjusted in Preferences > Processing > CPU, GPU, Memory.

Thumbnail creation

A thumbnail is created when an image is imported into Ansel for the first time, after an image has been modified in the darkroom, or when revisiting an image whose thumbnail is no longer available.

When an image is imported for the first time Ansel can either try to extract an embedded thumbnail from the input image (most raw files contain these, usually in JPEG format) or process the raw image itself using default settings. Choose how Ansel obtains its thumbnails from the global menu Display 🡒 Thumbnail source — Always process the RAW, Use embedded JPG if unedited, or Always use embedded JPG. This can be changed at runtime.

Extracting an embedded thumbnail from the input image is usually very fast. However, these thumbnails have been generated by the raw converter of the camera and do not represent Ansel’s “view” of that image. You will notice the difference as soon as you open the image in the darkroom mode, at which point Ansel replaces the thumbnail with its own internally processed version.

After import Ansel automatically generates thumbnails for new images as they are needed. When importing a large set of new images, thumbnail generation can slow down navigation in the lighttable view. Alternatively you may terminate Ansel and generate the thumbnail cache separately by running ansel-generate-cache. This program will generate all missing thumbnails in one go.

As the thumbnail cache has a pre-defined maximum size it will eventually get filled up. If new thumbnails are subsequently added, old thumbnails are dropped from the cache. However, Ansel will keep all thumbnails on disk if the corresponding disk backend option is activated in Preferences > Processing > CPU, GPU, Memory. Access to the thumbnails in this secondary cache is slower than the primary cache, but still much faster than reprocessing thumbnails from scratch. The size of the secondary cache is limited only by the available disk space.

You can pre-render or purge cached thumbnails for the selected images at runtime from the global menu Run 🡒 Preload selected thumbnails in cache and Purge selected thumbnails from cache.

Thumbnails are never removed automatically from the secondary cache. You can manually clean it by recursively deleting all images in the $HOME/.cache/ansel/mipmaps-xyz.d folder (where xyz denotes an alphanumeric identifier of the cache). After clearing the secondary cache you can simply let Ansel re-generate thumbnails as needed, or generate them all in one go with ansel-generate-cache.

If you choose not to activate the disk backend and select too small a cache size, Ansel may become unresponsive, you may experience continuous regeneration of thumbnails when you navigate your collection or flickering of thumbnail images. A good choice of cache size is 512MB or higher (see Memory and performance tuning for more information).

All thumbnails are fully color managed. Colors are rendered accurately on screen as long as your system is properly set up to hand over the right monitor profile to Ansel. For more information see the color management section.

Skulls

When Ansel cannot produce a thumbnail, it shows a skull in its place, with a short message naming the reason. A skull only concerns the thumbnail: the image file, its editing history and its sidecar are left untouched, and the thumbnail comes back once the cause is fixed.

image

Each message names one cause, listed here with what to do about it. When the skull comes from a file Ansel could not decode — I/O error, Corrupted file, Unsupported camera, Unsupported feature or Loading error — a notification also says The file … is supported by none of our decoders.

File not found

Ansel found the image file neither at the location recorded in its library nor as a local copy. Ansel does not follow files that are changed outside of it: the file was moved, renamed or deleted, or it is stored on a drive that is not connected at the moment — an external disk, a memory card or a network share.

  • If the drive is disconnected, connect it again so that the file is back at the same path, then purge the thumbnail.
  • If you moved or renamed the folder, give Ansel its new location with relocate… in the Folders tab of the Library module, then purge the thumbnail.
  • If you deleted the file on purpose, remove the image from the library as well, with File 🡒 Remove from library. To find and remove every image whose file is gone, close Ansel and run purge_non_existing_images.sh.
I/O error

The file is where Ansel expects it, but Ansel could not read it: the file is empty, or your user account is not allowed to read it. Ansel refuses such a file at import, so it has changed since — emptied by an interrupted copy or synchronization, for instance, or given other permissions.

  • If the file is empty, copy it again from the memory card or from a backup, then purge the thumbnail.
  • If the file cannot be read, give your user account the permission to read it, then purge the thumbnail.
Corrupted file

The file is there, but none of Ansel’s decoders could read it: either it is damaged — typically cut short by an interrupted copy from the memory card, or by a failing disk — or it holds data in a format Ansel does not know, whatever its extension.

  1. Try to open the file in another application. If it fails there too, the file is damaged: copy it again from the memory card or from a backup, then purge the thumbnail.
  2. If the file opens elsewhere, Ansel does not support its format: report it on the Ansel issue tracker .
Unsupported camera

The file is a raw file from a camera model that none of Ansel’s raw decoders supports.

Report the camera model on the Ansel issue tracker , attaching a raw file from that camera if you can.

Unsupported feature
The file is a raw file that uses a feature of its format that Ansel’s raw decoders do not handle. Report it on the Ansel issue tracker , attaching the file.
Loading error
Ansel’s raw decoder recognized the file but could not load its image data. Report it on the Ansel issue tracker , attaching the file.
Out of RAM

Ansel could not get the memory it needed to produce the thumbnail, either to load the image at full size — a Not enough memory alert is then shown as well — or to process it. This depends on what else was using memory at that moment, inside or outside of Ansel, so the same image may render without trouble later.

Close other applications to free memory, then purge the thumbnail. If it happens often, review the memory settings in Preferences > Processing > CPU, GPU, Memory, with the help of memory and performance tuning.

No embedded thumbnail

Display 🡒 Thumbnail source is set to Always use embedded JPG, which forbids Ansel to process the image itself, and there is no JPEG it could use for this image: neither a companion JPEG — a file with the same name and a .jpg or .jpeg extension, in the same folder — nor a readable preview embedded in the file. Not every file carries an embedded preview.

Choose Use embedded JPG if unedited in Display 🡒 Thumbnail source: Ansel then processes any image that has no usable preview, instead of showing a skull. Changing the thumbnail source regenerates the thumbnails of the whole collection, so no purge is needed.

Processing error

The file was read, but processing it produced no thumbnail: the processing pipeline could not be set up, or one of the modules in the image’s history failed. A module that runs out of memory also ends up here, rather than under Out of RAM.

  1. Purge the thumbnail to try again, in case the failure was momentary.
  2. If the skull comes back, open the image in the darkroom to check whether it renders there.
  3. Report the problem on the Ansel issue tracker , attaching the image file and its XMP sidecar, which holds the history needed to reproduce the failure.
Aborted
The processing of the thumbnail was stopped before it finished. Nothing is wrong with the image: purge the thumbnail to have it generated again.