Photos
Lychee handles still images, videos, and live photos, and can store unprocessed originals such as RAW files alongside them.
Supported Formats
Section titled “Supported Formats”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.
Uploading
Section titled “Uploading”| Method | Where |
|---|---|
| Drag and drop | Drop files anywhere on the gallery page |
| Upload dialog | + button in the top bar, or press u |
| Clipboard | Press mod+v with an image or video in the clipboard |
| Camera | Take Photo, captures directly from the device camera |
| Import from Link | Fetch a file from a URL |
| Import from Server | Sync a directory that already lives on the server |
| Dropbox | Import from Dropbox, when a Dropbox key is configured |
| CLI | php 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.
What Happens on Import
Section titled “What Happens on Import”- 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
checktrust level stay hidden until an admin approves them.
Viewing
Section titled “Viewing”- 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_enabledis 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.
Managing Photos
Section titled “Managing Photos”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
0to5) - 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.
Downloading
Section titled “Downloading”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.
