Point it at your Immich server. Pick a year, a person, or a trip. Get a polished video with scene-aware cuts, animated maps, AI music, and title screens. Self-hosted. No subscription.

# Create .env with your Immich credentials echo 'IMMICH_URL=https://photos.example.com' > .env echo 'IMMICH_API_KEY=your-key-here' >> .env # Start it docker compose up -d # Open http://localhost:8080
Or without Docker: uvx immich-memories ui
Pick memory type, time period, person
Scores and ranks your best moments; you refine the picks
Edit title, pick music, adjust settings
Render with map animations, titles, music

Year in Review, Season, Person Spotlight, Multi-Person, Monthly Highlights, On This Day, Holiday, Then and Now, Trip, Album, and Surprise Me — a day your library says something happened on. Pick a preset and it handles the rest, or take the Custom card and set the date range yourself.

A vision model looks at your material and describes what is happening in it. Selection, duplicate judgment, and a final review of the whole cut all work from those descriptions — with real drop reasons, favourites treated as law, and strictly chronological order. The pipeline is the product.

Animated gradients, particle systems, satellite trip maps. Three rendering backends (Taichi GPU, PIL, FFmpeg) pick the best your hardware can do.

A vision LLM detects the mood of your clips. ACE-Step or MusicGen creates an original soundtrack. Audio ducking lowers music during speech.
No telemetry, no account. Runs on your hardware; the only outbound calls are the ones you configure (LLM, music server, notifications) plus map tiles and geocoding for trip maps. The Immich API key never leaves your network.
Your Immich library is never modified. Upload-back is opt-in.
Satellite map fly-overs, particle systems, 5 visual styles. Not "clip 1, clip 2, clip 3": actual production polish.
Schedule immich-memories auto run daily. It picks one eligible memory or retries one pending delivery, with variety rules that stop repeat spam.
Install in about 2 minutes. First memory in about 10 on a Mac or GPU box.