Titles, maps and music
These are render choices. You can change them after reviewing the cut, without asking the app to choose the shots again.
Titles and language
Under Render, type a Title and Subtitle, or leave them empty for the app's suggestion. Template titles use the dates, people and occasion. An optional text reader can write a title from the cut's facts. A reader title keeps whichever year the matching template title would show (or both, for a span crossing one); a title that drops it falls back to the template. A holiday, a person spotlight spanning several years and "on this day" carry no year in either.
The film's language is separate from the interface language. Save Settings > Title screens > locale (including in Docker), or set it in your configuration. A special day found by the automatic scan is catalogued with an English name, but its opening title is always written in this configured language, not in English.
title_screens:
locale: fr
The default, auto, follows the host's language: LC_ALL, LC_MESSAGES, LANG and LANGUAGE are checked
in that order, and on a Mac with none of those set, the macOS language setting is used instead. A Docker
container usually starts with none of them set, so it renders English titles until you set
title_screens.locale or the container's LANG.
A trip is named at one scale (a town, a region, a country, whichever fits how far its pictures
spread) and every part of that name is shown in this same configured language, in the opening
title, the trip picker in the web UI, and the discovery table a generate --memory-type trip
run prints before cutting one. A French film never shows a region translated next to its
country in English, or the other way round.
Opening and closing fades
Choose Opening and closing fade under Render: white, black, or As configured. This changes the fade at both ends of the title sequence for this film. Title screens must be enabled.
Set the default in Settings → title screens → fade_color, or in your configuration:
title_screens:
fade_color: black # white is the default
For one CLI render, add --fade-color black to generate or runs render. The override leaves your saved default alone.
Styles
Choose Title style under Render for one film. As configured keeps the saved default. The choices are Auto (match the mood), Random, Modern warm, Elegant minimal, Vintage charm, Playful bright and Soft romantic. For a lasting default:
title_screens:
style_mode: elegant_minimal
auto and random are also valid defaults. For a saved CLI cut, use runs render RUN_ID --title-style elegant_minimal. Preview a card before rendering the whole film:
immich-memories titles test --year 2025 --style elegant_minimal
In Docker, write the preview to the mounted output folder:
docker compose exec immich-memories immich-memories titles test --year 2025 --style elegant_minimal -o /app/output/title-test.mp4
The host file is ./output/title-test.mp4.
The style and font reference lists the palettes and supported alphabets. Docker includes the fonts; native installs may need immich-memories titles fonts --install.
On a CPU or NAS, title cards keep the font, layout and palette. FFmpeg slides, scales and fades the text over a still background; the text is drawn once. Moving backgrounds, bokeh, animated deblur and separate title/subtitle timing still need a rendering GPU.
Date and place captions
In Render, untick Add date overlay or Caption clips with their place if you want a cleaner frame. Frequently visited places are not labelled over and over. The lasting defaults are defaults.add_date and defaults.add_place.
Place captions show the city when it changes. The home country stays hidden. Abroad, the country appears when you enter it, unless the opening title already named it; the next city doesn't repeat it. Crossing another border shows the new country.
With network.geocoding: true, Nominatim resolves rounded coordinates at zoom 16 in your
chosen title/caption language. If a translation is missing, it tries the base language
(for example, Portuguese for Brazilian Portuguese), then falls back to the place's own
native name rather than English. A Greek village with no French name stays in Greek
script in a French film, not translated or anglicised. A town keeps its name even when
no translation exists. Administrative words come off: "Limassol District" reads Limassol, "Pärnu linn"
reads Pärnu. A Latvian, Lithuanian or Finnish municipality name
comes in the genitive ("Helsingin kaupunki"), so the caption uses the city Immich stored for the
picture instead ("Helsinki").
Near the configured home base, captions can name the district, such as Montmartre in Paris; further
out, a district needs most of a stay's pictures behind it to keep its name, and excursions keep
their own labels. Visits spread across districts use their shared locality, and towns separated
by more than trips.max_gap_days do not rename one another. Streets and points of interest stay
out of captions. A country disagreement keeps the source label; failed lookups are retried on a
later run. A few distant excursions do not turn a local stay into a regional trip, and a town
already named by its own pictures is not replaced by a broader label from the trip's centre
point. The output reference has the exact distances and
shares.
The map fly-over
Trip maps are off by default. Enable them when you want an animated route and are comfortable requesting satellite tiles from an outside provider:
In Docker, save Settings > Network > map_tiles, or use YAML:
network:
map_tiles: true
With maps off, a trip uses ordinary title and location cards. Smooth maps fly between stops; the fast preset uses three views joined by short fades. Maps add time to the finished film beyond the picture budget. Map rendering covers providers, route grouping and timing.
Music
In Render, choose Automatic, No music, or upload your own MP3, M4A or WAV. Music volume changes the mix; the music drops under the clips' own sound. When a clip's own sound is music or singing, the soundtrack steps aside for its whole window instead of competing with it.
Automatic uses a bundled track by default. A configured music generator can make an original one and enables Preview a track so you can listen first. A failed generator falls back to a bundled track and leaves a warning.
On the CLI:
immich-memories generate --year 2025 --music ~/Music/track.mp3 --music-volume 0.4
When a model names the film
A text reader can write titles and choose the music mood on the Basic tier too. Those calls use text, not pictures. Your typed title wins; template titles remain the fallback. Title provenance explains the source shown on a run.
A model title can use a first name, a place, an occasion name or a relationship word your family record actually states between the people it names, such as "her grandmother". It never calls someone family, or states a relationship, that your record doesn't back, and it never names a year that isn't true for the span. It also never narrates a parent or grandparent from a child's point of view ("maman", "papy", "mum", "oma") even when your record backs the relation; standard words such as "abuela" or "mormor", which have no separate child's-eye form in their own language, are unaffected. A title that breaks a rule falls back to the plain template instead.
Generated music
Set up generated music when you want it. The output reference has language catalogues, typography, map timing and audio mixing details.