Skip to content

Photos

Lychee handles still images, videos, and live photos, and can store unprocessed originals such as RAW files alongside them.

Images: jpg, jpeg, png, gif, webp, avif, heic, heif

Videos: avi, m4v, mov, mp4, mpg, ogv, webm, wmv

Camera RAW, PSD, HEIC/HEIF: nef, cr2, cr3, arw, dng, orf, rw2, raf, pef, srw, nrw, psd, heic, heif. When the PHP Imagick extension is available, these are converted to a JPEG that becomes the photo’s original, while the file you uploaded is kept alongside it as its RAW size variant, so the photo gets normal thumbnails and previews without losing the source file. pdf is accepted too under the same condition. If the conversion fails, Lychee falls back to storing the file as-is.

Other files: any extension listed in the raw_formats setting is accepted and stored as-is, without variants or thumbnails. This is how sidecars and similar companions are kept next to the processed image.

Video thumbnails and durations require ffmpeg; EXIF extraction is more complete when exiftool is installed. Without Imagick, RAW files fall back to the “stored as-is” behaviour above.

MethodWhere
Drag and dropDrop files anywhere on the gallery page
Upload dialog+ button in the top bar, or press u
ClipboardPress mod+v with an image or video in the clipboard
CameraTake Photo, captures directly from the device camera
Import from LinkFetch a file from a URL
Import from ServerSync a directory that already lives on the server
DropboxImport from Dropbox, when a Dropbox key is configured
CLIphp artisan lychee:sync /path/to/import

Uploads are split into chunks, so large files survive request size limits and interrupted uploads can be resumed. Failed items stay in the upload panel with their error and can be retried individually. With the Supporter Edition, a watermark can be applied on the fly during upload, and uploading a ZIP archive can extract it and import its contents as albums and photos (extract_zip_on_upload); the archive is only removed once it has been extracted without faults.

Import from Server offers extra options: re-sync the metadata of files already known to Lychee, delete the originals after import, import via symlink instead of copying, skip duplicates, and delete photos or albums that are no longer present in the source directory. It is a slow operation, so running it with queue workers is recommended.

It can also be disabled outright, for the admin included, with DISABLE_IMPORT_FROM_SERVER=true in the .env file: the entry disappears from the interface and the endpoint is refused, which narrows what a compromised admin account could read off the server.

  • Size variants - a placeholder, square thumbnails, small and medium versions are generated, each with an optional HiDPI counterpart; the original file is always kept.
  • Auto rotation - images are rotated according to their EXIF orientation.
  • Metadata extraction - EXIF, IPTC, and XMP data are decoded: camera, lens, shutter speed, aperture, focal length, ISO, capture date, title, description, and tags.
  • GPS localization - coordinates are stored and, when location decoding is enabled, resolved into a readable place name. See Map.
  • Live photos - the video part of a live photo is detected and stored with the image.
  • Colour palette SE - the five dominant colours of the image are extracted and stored, which is what the color: search modifier matches against. Off by default (enable_colour_extractions), since it costs time on every import.
  • Face detection v8 - photos can be scanned for faces, manually or in bulk. See Facial Recognition.
  • Moderation - uploads from users with the check trust level stay hidden until an admin approves them.
  • Lightbox with keyboard and swipe navigation.
  • Slideshow with configurable timing. See Slideshow.
  • Overlay modes cycled with o: EXIF data, description, or nothing.
  • Details panel (i) with metadata, tags, the albums the photo belongs to, and its direct links.
  • Face overlay (p) v8 drawing the detected faces on the image.
  • Favourites SE - visitors can collect photos into a personal shortlist stored in their own browser, when client_side_favourite_enabled is on.
  • Ratings - any user with access can rate a photo from 1 to 5 stars; Lychee averages the ratings and feeds the rating-based Smart Albums.
  • Share card v8 - an optional card with the photo title, owner, license, and a QR code pointing at the photo, controlled by photo_share_card_enabled.

Editable per photo: title, description, capture date, upload date, tags, and license.

Available from the photo context menu or the selection toolbar:

  • Highlight or unhighlight
  • Rate from 0 to 5 stars (keys 0 to 5)
  • Rotate left or right, when the editor is enabled
  • Move to another album, or copy into several albums
  • Rename
  • Set as album cover or album header
  • Tag, and set the license, individually or on a whole selection
  • Scan for faces v8
  • Apply renaming rules SE
  • Apply a watermark SE
  • Approve, for photos held back by moderation
  • Delete

Multiple photos can be selected with mod+click, shift+click, or a drag lasso, and every action above that makes sense in bulk is available for the selection.

A photo can be downloaded in any variant it has: original, medium, small, thumbnail, their HiDPI versions, the RAW companion, and the video part of a live photo. Selections and albums are downloaded as ZIP archives. Which variants anonymous visitors may download is controlled by the album’s visibility settings, and enabling temporary image links makes Lychee serve every image through a signed URL, which prevents hotlinking from other sites.