Bibliotek

Katalogisera varje disk, hitta samma bild var den än ligger, och vet om radering av en kopia förlorar något.

På den här sidan
1:11
Berättad på engelska, med undertexter. Spelas från YouTube när du trycker på uppspelning.

Varje fotograf med mer än några års arbete har samma bild på fyra ställen: kortimporten, mappen som någon kopierade till en backupdisk, den DNG som ett konverteringsprogram gjorde av den, och den JPEG som gick till en kund. Biblioteket katalogiserar varje bild på varje disk du pekar ut: du bläddrar i allt på ett ställe, även när en disk ligger i en låda, och det talar om vilka av filerna som är samma bild — och, för var och en, om en radering skulle förlora något.

Library-vyn#

0:10
Berättad på engelska, med undertexter. Spelas från YouTube när du trycker på uppspelning.
Library-vyn: varje bild på varje disk, efter disk och mapp, datum, album, nyckelord, person, plats, kamera och objektiv. Året som valts till vänster är vad rutnätet bredvid arbetar med.
Library-vyn: varje bild på varje disk, efter disk och mapp, datum, album, nyckelord, person, plats, kamera och objektiv. Året som valts till vänster är vad rutnätet bredvid arbetar med.

Öppna den med Cmd+Shift+L, View → Library eller vymenyn i infofältet. Panelen till vänster listar vad biblioteket innehåller, var och en med hur många bilder:

  • All Pictures
  • Sources — varje disk eller mapp, med ledigt utrymme, eller när den senast sågs om den inte är ansluten; öppna en för att se dess mappar
  • Dates — år, sedan månader, sedan dagar, i din egen tidszon; Undated för bilder utan tagningstid
  • Collections — dina album och sparade sökningar
  • Published — albumen som hålls på ett evenemang eller i en mapp, och hur det går för vart och ett; se Publicera album
  • Keywords, People, Places, Cameras och Lenses

Det du väljer öppnas i rutnätet bredvid, som det fönstret arbetar med: betygsätt, flagga, framkalla, exportera och publicera precis som i en mapp, och varje ändring hamnar i bildens egen mapp. En bild på en disk som inte är ansluten visas från bibliotekets sparade förhandsvisning, och en åtgärd som behöver filen säger vilken disk du ska ansluta.

Fältet ovanför rutnätet söker i det som är valt — ord i bildtexter, titlar, nyckelord, personer, platser, kameror, objektiv och filnamn. Menyn bredvid sorterar efter tagningstid, namn, betyg, när bilden lades till eller när den senast redigerades; ett album öppnas i sin egen ordning. Save Search… sparar det som är valt och sökt som en sparad sökning under Collections.

Ett tomt bibliotek erbjuder Add a Disk or Folder…, och Import Lightroom Catalog… när en sådan finns i ~/Pictures/Lightroom.

Via API:et väljer, söker och sorterar POST /api/library/view, och öppnar vyn; GET /api/library/browse ger det som panelen listar.

Sök efter det som finns i bilden#

Sökfältet hittar också bilder efter det som finns i dem, med vanliga ord och på ditt eget språk — en häger i regnet, a bird on a branch, prisutdelning — utan att någon har skrivit nyckelord. Search by Content… bredvid fältet laddar ner innehållsmodellen en gång (cirka 230 MB). Sedan läser biblioteket sina bilder i bakgrunden, från förhandsvisningarna det redan har, de nyaste först och med paus varje gång du gallrar. Raden säger hur långt det har kommit, och en sökning hittar de bilder som lästs hittills.

Menyn bredvid fältet väljer vad det söker i: Words and Content (orden i filerna först, sedan bilderna närmast det du skrev), Words eller Content. En sökning efter innehåll visas med det närmaste först, som Best Match.

Högerklicka på en bild och välj Find Similar in Library för att se bilderna som liknar den, från alla diskar i biblioteket, det närmaste först.

Modellen läser engelska, norskt bokmål, svenska, tyska, finska, franska, spanska och över fyrtio andra språk. Det är OpenAIs CLIP för bilderna och en flerspråkig textmodell tränad att träffa den, och båda körs på den här datorn: inga bilder lämnar den. I API:et: content och similar_to i POST /api/catalog/search och sparade sökningar, search_by i POST /api/library/view, och GET /api/library/content för hur långt den har läst (SDK: client.library.content()).

Album, smarta samlingar och uppsättningar#

0:11
Berättad på engelska, med undertexter. Spelas från YouTube när du trycker på uppspelning.
En ny sparad sökning: varje regel en bild måste uppfylla, och hur många bilder i biblioteket som uppfyller dem medan du redigerar.
En ny sparad sökning: varje regel en bild måste uppfylla, och hur många bilder i biblioteket som uppfyller dem medan du redigerar.

Collections i Library-vyns panel innehåller dina album (bilder du har satt ihop för hand, från vilken mapp och disk som helst) och smarta samlingar (sparade sökningar, som hittar sina bilder varje gång), i samlingsuppsättningar som kan innehålla egna uppsättningar. Var och en visar hur många bilder den har; en smart samlings antal är det den hittar nu.

  • + New gör ett album, en smart samling eller en uppsättning. Högerklicka på en uppsättning för att göra en inuti den; dra en samling eller en uppsättning till en annan uppsättning för att flytta den dit, eller till den tomma ytan nedanför för att flytta den överst.
  • Högerklicka på en samling för att byta namn på, duplicera eller ta bort den, redigera en smart samling, eller göra ett album till målalbumet.
  • Lägg bilder i ett album genom att dra dem dit från rutnätet, med Add to Album i bildens meny (med New Album…), eller med Shift+B, som lägger de valda bilderna — eller den på skärmen — i målalbumet, och tar ut dem när alla redan finns där. Infofältet visar målalbumet och dess antal; klicka på det för att välja ett annat. Utan mål gör Shift+B Quick Collection till mål. I ett album tar Remove from "…" i bildens meny ut bilder.
  • En bild i målalbumet har ett bokmärke i rutnätet, filmremsan och Survey, och albumets namn på bilden i Develop och helskärm, vilken mapp som än är öppen. I filtermenyn visar Album … bara bilderna i det (I det) eller bara de som inte är i det (Inte i det). Med Inte i det på tar Shift+B en bild ur visningen i samma stund som den läggs in, så en genomgång av ett kort bara visar det som återstår att välja. En RAW från kortet räknas som i albumet när albumet har samma bild i en annan fil — den DxO-DNG en direktleverans skickade ut — känd på kameran och ögonblicket den togs, ned till bråkdelen av en sekund. En fil utan den bråkdelen (en äldre kamera, en skärmbild) finns bara i albumet som sig själv. Lägger du en sådan RAW i albumet hålls den utanför, och du får veta vilken fil som finns där, så bilden aldrig går ut två gånger. Byt ut … i ”…” i bildens meny sätter den på den filens plats i stället: den går ut över den publicerade bilden, som behåller sin plats och köparnas länkar. En bild som någon har köpt byts aldrig ut. Add to Album i ett arbetsflöde håller en andra fil av samma bild utanför på samma sätt, som JPEG-filen från en kamera som skickar både JPEG och RAW.
  • Redigeraren för smarta samlingar listar reglerna: ord, nyckelord, personer, platser, bildtexter, kamera, objektiv, betyg, flagga, etikett, filtyp, redigerad, publicerad, när den togs (på ett datum, eller de senaste så många dagarna), ändrad de senaste så många dagarna, har nyckelord, har bildtext, skärpa, mapp, album och disk. Samlingen matchar alla eller någon av dem, och + Group lägger till en grupp med alla eller någon av sina egna — ”betyg tre eller mer, och nyckelordet stafett eller simning”. Den räknar vad den hittar medan du redigerar. Save as Smart Collection… i filterkolumnerna sparar det fönstret visar som en.

Ett album håller sina bilder efter deras plats i biblioteket, så en bild som flyttats i Finder finns kvar i det efter nästa skanning. En bild som flyttas till papperskorgen lämnar sina album, och appen säger vilka. Sidopanelens Info listar de album och smarta samlingar som bilden på skärmen finns i. Deliver → Deliver Event Folder… kan köra sitt arbetsflöde över ett albums eller en smart samlings bilder i stället för en mapp.

Via API:et listar, skapar, ändrar och tar /api/library/collections bort samlingar, lägger bilder i ett album eller tar ut dem, och sätter målalbumet; /api/library/collection-sets gör samma sak för uppsättningar.

Diskar som inte är anslutna#

Bilder på en disk som inte är ansluten hittas ändå av varje sökning, filter, samling och fotografering, och visas från bibliotekets sparade förhandsvisning med diskens namn på. Infofältet och sidopanelen säger var de är — ”On Archive-3 (not connected, last scanned 12 March 2026)” — och OFFLINE i filterfältet tar bort dem ur fönstret, eller visar dem igen.

Mappträdet: favoriterna överst, de mappar som öppnats nyligen under dem, och varje disk med antal bilder i varje mapp.
Mappträdet: favoriterna överst, de mappar som öppnats nyligen under dem, och varje disk med antal bilder i varje mapp.

Det som kan göras utan filen görs: betyg, flagga, etikett, nyckelord, bildtexten och de andra IPTC-fälten, och album ändras i biblioteket direkt, och skrivs till bilderna när disken ansluts — infofältet säger hur många ändringar som väntar. Bara det som ändrats skrivs: ett fält som biblioteket inte känner till blir kvar som filen har det. Det som behöver filen säger det: framkallning, beskärning, rotation och export svarar ”Connect Archive-3 to …”. När disken är tillbaka öppnas bilden på skärmen av sig själv.

Via API:et finns connected på varje fil som bibliotekets vägar ger, och GET /api/library/pending-writes listar vad som väntar; hide_offline i POST /api/filter tar bort de bilderna.

Bilder på bara en disk#

Diskar är billiga; förlorade bilder är det inte. När dina diskar är skannade vet biblioteket vilka bilder som bara finns på en fysisk disk. En kopia räknas när den är samma fil, eller samma bild med annan metadata (en DNG med ny XMP i), eller samma sensordata; en exporterad JPEG är en annan bild, inte en kopia. Två partitioner på en disk är en disk, och en disk som inte är ansluten räknas ändå.

To Do → Not backed up öppnar de bilderna, Sources-listan säger hur många på varje disk som är only here, och en fotograferings kort säger hur många av dess bilder som bara finns på en disk. Back Up to… under To Do kopierar dem alla till en mapp på en annan disk, till <mapp>/<disk>/<deras sökväg på den> med sidofilerna, kontrollerar varje kopia mot originalet och skannar mappen, så att antalet går ner. Bilder på en disk som inte är ansluten väntar tills den är det. Högerklicka på en disk under Sources, eller på en fotografering, för att säkerhetskopiera bara dess bilder. En bild som finns på en disk i flera mappar kopieras en gång.

Via API:et: GET /api/library/backup-coverage, POST /api/library/backup-copy ({"scope": {"kind": "all"}, "dest": "/Volumes/Backup"}, eller för en källa eller en fotografering), och unbacked på varje fotografering.

Fotograferingar#

0:12
Berättad på engelska, med undertexter. Spelas från YouTube när du trycker på uppspelning.
Fotograferingar: biblioteket som en tidslinje, varje fotografering ett kort med namn, datum, hur långt den har kommit och dess bästa bild.
Fotograferingar: biblioteket som en tidslinje, varje fotografering ett kort med namn, datum, hur långt den har kommit och dess bästa bild.

Shoots i Library-vyns panel visar år av bilder som det du minns: ”målgången i Kystjegerløpet”, ”Karis bröllop”, ”Lofoten i mars”. En fotografering hittas utifrån när bilderna togs, alla kameror tillsammans: ett uppehåll på mer än en timme, eller en förflyttning på mer än 25 km mellan två bilder med position, startar en ny (båda går att ändra via API:et, PUT /api/library/shoots/rules). Tidslinjen går bakåt år för år med ett kort per fotografering: omslagsbilden, namnet, datumen, platsen, hur många bilder och vilka kamerahus. Klicka på ett kort för att se dess bilder.

  • En fotografering får namn efter ett album som innehåller de flesta av dess bilder (ett publicerat på eventphotos, eller en leverans urval), annars mappen som innehåller minst hälften av bilderna, annars platsen där det mesta finns, annars datumen.
  • Högerklicka på ett kort för att byta namn (Rename) eller slå ihop med föregående (Merge with the Shoot Before). På en bild delar Shoot → Start a New Shoot Here fotograferingen vid den bilden, och Use as Shoot Cover gör den till omslag; annars är omslaget bilden med högst betyg, sedan en vald bild, sedan den skarpaste. Det du ändrar står kvar när biblioteket skannas igen.
  • Filtrets Shoot-kolumn och smarta samlingars regel In the shoot väljer bilder efter fotografering.

Via API:et: GET /api/library/shoots, POST /api/library/shoots/edit (byt namn, slå ihop med föregående, dela vid en bild, omslag) och PUT /api/library/shoots/rules (timmarna och kilometrarna); öppna en fotografering med POST /api/library/view och valet {"kind": "shoot", "at": <startMs>}.

Vad som återstår#

Det som återstår: bilderna som inte gåtts igenom, de valda som inte framkallats, och det som är redigerat men inte levererat.
Det som återstår: bilderna som inte gåtts igenom, de valda som inte framkallats, och det som är redigerat men inte levererat.

Varje kort säger hur långt fotograferingen har kommit, utifrån det biblioteket vet (ingen fil läses): Not culled (ingen bild har betyg, flagga eller etikett), Culled (markerad, inget redigerat; Picks to develop när valda bilder inte är framkallade), Edited, not delivered eller Delivered (en bild exporterad, uppladdad eller publicerad på eventphotos eller i tidningen). Filtrets Shoot Status-kolumn väljer bilder efter det.

To Do i panelen listar fotograferingar som inte är gallrade, valda bilder som inte är framkallade och redigerade bilder som inte är levererade, med antal; klicka på en för att se de bilderna. Högerklicka på ett kort för Mark Done — bort från listorna, utan att ändra någon bild — och använd Mark Year Done på ett år för att ta bort ett arkiv som blev klart för länge sedan från listorna på en gång.

Via API:et: GET /api/library/todo, statusen i GET /api/library/shoots, done och done_between i POST /api/library/shoots/edit, och valet {"kind": "todo", "list": "not_culled"} (eller picks_not_developed, edited_not_delivered).

Nyckelord#

0:13
Berättad på engelska, med undertexter. Spelas från YouTube när du trycker på uppspelning.

Keywords i Library-vyns panel listar varje nyckelord dina bilder har, på varje disk, som ett träd med hur många bilder som har vart och ett — hierarkin är den som Lightroom skriver (Places|Norway|Stavanger), så en nyckelordslista som gjorts där ser likadan ut här. Nyckelord i din lista som ingen bild har ännu är gråa. Klicka på ett för att se varje bild med det eller med ett nyckelord under det.

  • Högerklicka på ett nyckelord för att byta namn (Rename), slå ihop det med ett annat (Merge Into), flytta det överst (Move to the Top), ge det synonymer (Synonyms), utesluta det ur exporterade filer (Include on Export), måla med det (Paint with It) eller ta bort det (Delete). Dra ett nyckelord till ett annat för att lägga det under.
  • Ett namnbyte, en sammanslagning, en flytt eller en borttagning skrivs in i varje bild som har nyckelordet, i sidofilen eller i filen, med resten av metadata som de var, och raden under rubriken säger hur långt det har kommit. Undo lägger tillbaka varje bilds nyckelord som de var. Bilder på en disk som inte är ansluten skrivs när disken är tillbaka; panelen säger hur många som väntar.
  • En sökning efter en synonym hittar nyckelordets bilder, och en exporterad fil bär synonymerna. Ett nyckelord som inte tas med vid export stannar i dina egna filer och utesluts ur de exporterade.
  • + New lägger till ett nyckelord i listan, och importerar eller exporterar listan i Lightrooms textformat (Metadata → Export Keywords och Import Keywords i Lightroom): ett nyckelord per rad, en tabb djupare per nivå, {synonym} och [not exported].
  • Paint with It gör nyckelordet till penselnyckelordet: Shift+K eller Metadata → Paint Keyword sätter det på de valda bilderna — eller den på skärmen — och tar bort det när alla har det. Infofältet visar det; klicka på det där för att sluta måla.

Via API:et ger /api/library/keywords trädet med antal, och dess vägar byter namn på, slår ihop, flyttar och tar bort ett nyckelord, ångrar, sätter synonymer, läser och skriver listan i Lightrooms format, och sätter och målar med penselnyckelordet (client.library.keywords(), renameKeyword() och resten).

Diskar och dubbletter#

0:15
Berättad på engelska, med undertexter. Spelas från YouTube när du trycker på uppspelning.
Disks & Duplicates, efter en skanning av ett mappträd. Varje grupp är en bild och varje kopia av den som hittades — och relationen säger vilken sorts kopia var och en är, så att du vet om radering förlorar något.
Disks & Duplicates, efter en skanning av ett mappträd. Varje grupp är en bild och varje kopia av den som hittades — och relationen säger vilken sorts kopia var och en är, så att du vet om radering förlorar något.

Disks & Duplicates längst ner i panelen, eller Library → Disks & Duplicates, innehåller verktygen för kopior och diskar.

Lägga till en disk#

Diskar: varje källa i biblioteket, ansluten eller inte, med vad som katalogiserats på den och de mappar den ska hoppa över.
Diskar: varje källa i biblioteket, ansluten eller inte, med vad som katalogiserats på den och de mappar den ska hoppa över.

På fliken Disks trycker du på Add folder or disk… och väljer en mapp eller roten på en disk. Det är en källa. Anslutna diskar som ännu inte är källor listas nedanför under ”Connected, not in the library”, med en Add-knapp var.

En källa identifieras av diskens volym-UUID och inte av sökvägen, så en disk som monteras någon annanstans nästa månad är fortfarande samma källa, med allt som redan skannats på den kvar.

Källor får inte överlappa. Är /Volumes/Archive en källa kan inte /Volumes/Archive/2019 också vara det — samma fil under två källor skulle hittas som en dubblett av sig själv. Ta bort den första om du vill ha den andra.

För att utesluta en mapp skriver du dess sökväg relativt till källans rot i ”folder to skip” och trycker på Skip folder. Att hoppa över tar direkt bort det som redan är katalogiserat under den och säger hur många filer det var. Att ångra det tar inte tillbaka dem; mappen gås igenom igen vid nästa skanning.

Vissa ställen gås aldrig igenom: systemmappar, ~/Library, papperskorgen, Bilder-bibliotek, .git och node_modules.

Skanning#

Scan connected disks skannar varje ansluten källa; varje källkort har sin egen Scan för bara den. Knappen blir Cancel scan medan en skanning pågår, och en avbrytning gäller från nästa fil.

En skanning går i fem varv, och statusraden namnger det den är i:

  1. Listing files — bara katalogposter. Inget läses.
  2. Reading headers — behållaren, tagningstiden, betyget och ett billigt fingeravtryck av de första 64 kB.
  3. Comparing possible copies — hela filen och dess bilddata hashas, men bara för filer vars billiga fingeravtryck redan matchar något annat. De flesta filer läses aldrig längre än huvudet.
  4. Comparing raw data — sensorvärdena avkodas, för en tagning som finns som två filer med olika bilddata. Det är det som parar en CR2 med den DNG som gjorts av den.
  5. Comparing images without metadata — av om du inte ber om det. Se nedan.

Resultaten visas medan skanningen fortfarande pågår: grupperna räknas om med några sekunders mellanrum när nya hashar kommer in, och en gång till i slutet.

Bara en skanning körs åt gången, och en källa kan inte tas bort medan en pågår.

Bilder utan kamerametadata#

Fliken Disks har en inställning: Also compare images without camera metadata by how they look (slower). Med den på lägger skanningen till en perceptuell hash för filer som inte har någon tagningsidentitet alls — skärmbilder, nedladdningar, allt som rensats på EXIF — och matchar dem efter utseende.

Den är av som standard eftersom den avkodar en förhandsvisning av varje sådan fil. Tröskeln är medvetet snäv: en omkodad eller omskalad kopia av en bild håller sig inom några få bitar, medan bilden som togs en halv sekund senare inte gör det.

Inställningarna gäller från nästa skanning, inte bakåt i tiden.

Förhandsvisningar av varje bild#

Biblioteket sparar en liten förhandsvisning av varje bild på den här datorn, så att du kan bläddra i en disk när den är urkopplad. En skanning gör dem från den förhandsvisning kameran lade i filen medan den ändå läser filen; en mapp som öppnas i photosuite får dem utan skanning. En bild du framkallar, beskär eller vrider visas så när ändringen är sparad, och som tagen igen när du återställer den.

Stored previews på fliken Disks anger storleken — 256, 384 eller 512 pixlar på den långa sidan, eller ingen — och säger hur mycket plats de tar. En ny storlek görs vid nästa skanning. En kamera som inte lägger någon förhandsvisning i sina filer (vissa från före 2005) får ingen.

Säkerhetskopior#

Det mesta biblioteket vet kommer tillbaka med en skanning, eftersom markeringarna och orden finns i bilderna. Dina album, sparade sökningar och vad som flyttats vart gör det inte, så biblioteket säkerhetskopieras — varje vecka om du inte väljer annat, och före varje uppdatering som ändrar hur det sparas. Fliken Disks säger hur ofta, hur många säkerhetskopior som behålls (åtta om du inte väljer annat) och vart de går: en mapp du väljer, eller annars en mapp på en annan disk i biblioteket än den här datorns, så att en disk som går sönder inte tar båda. Varje säkerhetskopia innehåller också varje album som en enkel lista över dess bilder.

Biblioteket kontrolleras före varje säkerhetskopia, och ett skadat bibliotek säkerhetskopieras aldrig över de bra kopiorna. Är det skadat säger infofältet det och erbjuder Restore from Backup…; har säkerhetskopieringen stått still i dubbla intervallet erbjuder det Back Up Now. Restore… bredvid en säkerhetskopia återställer biblioteket som det var då, med album och sparade sökningar, och skannar de anslutna diskarna så att det som ändrats i bilderna sedan dess kommer tillbaka.

På dina andra enheter#

Din telefon och dina andra datorer kan bläddra i de album och mappar du väljer, utan filerna, med FLOGVIT.plus. Högerklicka på ett album eller en mapp i Library-vyn och kryssa i Available on My Devices: en förhandsvisning av varje bild där — framkallad, beskuren och vriden som den är här — går till photosuites webbplats, tillsammans med när den togs och med vad. Kryssa ur, så tas de bort igen. Inget går dit utan att du lägger det där, eftersom förhandsvisningarna tar plats på webbplatsen.

Stjärnor, flaggor, etiketter, framkallning, beskärning och IPTC följer dig mellan dina datorer ändå, för varje bild, när Keep marks and edits in step with my other devices är på i Inställningar.

När filer flyttas eller försvinner#

En disk i biblioteket skannas i bakgrunden när den ansluts; infofältet säger vad skanningen gör och har en knapp som stoppar den. Bara det som ändrats sedan förra skanningen läses igen.

En mapp som byter namn eller flyttas i photosuite, bilder som flyttas till en annan mapp och ett batchnamnbyte ändrar biblioteket direkt, och albumen behåller sina bilder på de nya sökvägarna. Flyttas en bild i Finder i stället hittas den igen vid nästa skanning, var den än ligger på en disk i biblioteket: samma filinnehåll, eller samma tagning från samma kamera, på en ny sökväg. Den behåller allt som hör till den, och albumen följer med.

En fil som skanningen inte hittar någonstans är missing, inte glömd. Varje källkort på fliken Disks listar sina saknade filer med senaste sökväg. Locate… frågar efter den mapp en av dem ligger i nu, och varje saknad fil från dess gamla mapp som finns där med samma namn följer med. Forget är för filer som är borta för gott. Saknade filer utesluts ur sökningar och dubblettgrupperna.

Vad ”samma bild” betyder#

Två filer kan vara samma på sex olika sätt, och vilket det är avgör om du säkert kan kasta en av dem. Förhållandet visas bredvid varje fil, grönt när kopiorna är utbytbara och gult när de inte är det.

Förhållande Vad det betyder Säkert att radera en?
Identical file Samma fil byte för byte. Ja
Same image, different metadata Samma pixlar; betygen, nyckelorden eller IPTC skiljer sig. Ja, men slå ihop metadata först
Same raw data, different file Samma sensorvärden i en annan behållare eller komprimering — en RAW och dess förlustfria DNG. Ja
Same capture, different version En exponering, två bilder: en export, en redigering, en DNG med förlust. Nej — pixlarna skiljer sig
Looks identical (no metadata) Ingen tagningsidentitet på någon sida, men de ser likadana ut. Visas bara med den perceptuella inställningen på. Bedöm själv
Related I den här gruppen bara via en annan fil. Bedöm själv

De tre första är vad appen kallar utbytbara: att radera en förlorar högst metadata. Resten är versioner, och en version är en annan bild.

Tagningsidentiteten är kamerans märke och modell plus tagningstiden ner till bråkdelen av en sekund. Utan bråkdelar delar en hel serie samma nyckel, så de räknas aldrig som samma tagning. Kamerahusets serienummer lämnas medvetet utanför nyckeln, eftersom exporter tar bort det — men när båda filerna har ett och de skiljer sig avvisas matchningen.

Bestämma vad som stannar#

Fliken Duplicates listar grupper, med mest att hämta tillbaka först, med en filterbricka per förhållande som finns. Välj en grupp så läggs varje kopia ut till höger med en förhandsvisning och dess fakta: storlek, mått, kamera, tagningsdatum, betyg och vilken disk den ligger på.

  • Keep markerar den som stannar. Den börjar på den första anslutna filen i gruppen.
  • Trash markerar en fil som ska bort. En fil på en frånkopplad disk kan inte markeras.
  • Mark all interchangeable copies kryssar i varje fil som är samma bild som den du behåller — det vanliga fallet, med ett tryck.
  • Move N files to Trash frågar en gång till och flyttar dem sedan.

Märken varnar dig innan du förlorar något: has .xmp sidecar, has develop settings or edit history, disk not connected, inside a folder copy.

Två skydd som du inte kan gå förbi av misstag. En hel grupp kan aldrig kastas — en fil blir alltid kvar. Och att markera något som inte är samma bild som den du behåller — en export, en redigering — kräver att du kryssar i Yes, trash those versions too, eftersom de pixlarna inte finns någon annanstans.

Att kasta betyder systemets papperskorg. Filerna går att återställa tills du tömmer den; katalogen glömmer dem direkt. Sidofiler följer med sin fil, utom en sidofil som delas med en annan fil i samma mapp, som stannar.

En fil vars storlek eller ändringstid inte längre stämmer med det som skanningen registrerade kastas aldrig — den rapporteras i stället som ”file changed since it was scanned”.

Slå ihop metadata först#

Merge metadata into kept copy för över betyget, flaggan, färgetiketten, GPS, nyckelorden, personerna, IPTC-texten och upphovsrättsmärket från de andra kopiorna till den du behåller. Den behållnas egna värden vinner; de andra fyller bara det den saknar. Nyckelord och personer slås ihop. När den du behåller är öppen i huvudfönstret ändras dess betyg och flagga där direkt.

Det en sammanslagning inte flyttar listas för dig: beskärningar, framkallningsinställningar och riktning stannar där de är. Om en kopia du tänker kasta bär en redigering räddar sammanslagningen den inte.

Mappkopior#

Mappkopior: hela mappar vars bilder är samma uppsättning. En backupmapp matchar fortfarande efter att ett konverteringsprogram har skrivit ny metadata i dess filer, eftersom jämförelsen görs på bilderna och inte på byten.
Mappkopior: hela mappar vars bilder är samma uppsättning. En backupmapp matchar fortfarande efter att ett konverteringsprogram har skrivit ny metadata i dess filer, eftersom jämförelsen görs på bilderna och inte på byten.

Fliken Folder copies arbetar en nivå upp: hela mappar vars bilder är samma uppsättning. En backupmapp matchar fortfarande efter att ett konverteringsprogram skrivit ny metadata i dess DNG-filer, eftersom jämförelsen görs på utbytbara uppsättningar och inte på byte.

Nästlade träffar samlas i den yttersta mappen. En mapp i en träff måste alltid finnas kvar, och roten på en källa kastas aldrig — ta bort källan i stället.

När kopiorna inte alla är identiska får du veta det, med de orden, innan något flyttas: bilderna är samma, men vissa kopior bär betyg, nyckelord eller redigeringar som de andra saknar.

Grupper som ligger helt inuti ett matchat mapppar döljs i fliken Duplicates, eftersom mappraden redan representerar dem. Därför går de två antalen inte ihop.

Ta bort en källa#

Remove glömmer källan och allt som är katalogiserat på den. Filerna på disken rörs inte.

En disk du kopplar från finns kvar i biblioteket. Dess filer visas fortfarande i grupper, märkta disk not connected, och räknas fortfarande till det du kan hämta tillbaka — de kan bara inte kastas förrän den är tillbaka.

Via API:et#

0:11
Berättad på engelska, med undertexter. Spelas från YouTube när du trycker på uppspelning.

Allt ovan är client.library i SDK:n.

import { CullingClient } from './photosuite-sdk.mjs';

const client = new CullingClient();   // 127.0.0.1:9100, token from CULLING_API_TOKEN

const source = await client.library.addSource('/Volumes/Archive');
await client.library.exclude(source.id, 'Proofs');

// Scans, then waits for the grouping that follows it.
await client.library.scanAndWait();

const page = await client.library.results({ relation: 'identical', limit: 50 });
if (page.stats) {
  console.log(`${page.stats.groups} groups, ${page.stats.recoverableBytes} bytes recoverable`);
}

for (const group of page.groups) {
  const [keeper, ...rest] = group.files;
  if (!keeper) continue;
  await client.library.mergeMetadata(keeper.id, rest.map((f) => f.id));
  const report = await client.library.trash(rest.map((f) => f.id));
  for (const skip of report.skipped) console.warn(`kept ${skip.path}: ${skip.reason}`);
}

scanAndWait finns eftersom att en skanning är klar inte är samma sak som att resultaten är klara: grupperingen körs efteråt. Frågar du bara scanStatus() hittar du ett tomt results() en kort stund.

Förloppet kommer också som händelser — library_scan_started, library_scan_progress, library_scan_finished, library_results_changed och library_sources_changed:

client.on('library_scan_progress', (p) => {
  console.log(`${p.phase}: ${p.hashDone}/${p.hashTotal}`);
});

missing(), relink(id, folder) och forgetMissing(ids) gör det som listan över saknade filer på fliken Disks gör, och preview(id) ger en fils sparade förhandsvisning som JPEG-byte. backups(), backUp() och restore(path) gör det som raden Backups gör.

Två saker att veta innan du automatiserar radering. trash() vägrar kasta den sista kopian av en bild i dess grupp om du inte skickar allowLastOfCluster — skicka den inte för att göra ett skript tystare. Och results() kan komma tillbaka med ready: false medan den första grupperingen fortfarande pågår; scanAndWait hanterar redan det, en egen frågeloop måste göra det själv.

Alla vägar finns i API-referensen under Analyze.

Var det finns#

En SQLite-fil, library.sqlite, i mappen library i inställningsmappen (~/Library/Application Support/flogvit/), med de sparade förhandsvisningarna och säkerhetskopiorna bredvid. Den innehåller sökvägar, storlekar, hashar och metadata — aldrig bilddata. Markeringarna och orden kommer tillbaka från bilderna med en skanning, men dina album, sparade sökningar, fotograferingar och vad som flyttats vart finns bara där: vill du börja om, återställ en säkerhetskopia i stället för att radera den.

Har du använt FLOGVIT.duplicates importeras dess databas första gången biblioteket öppnas, med hashar och allt, så att en ny skanning inte behöver läsa diskar som kanske inte ens är anslutna. Det sker en gång, och bara till ett bibliotek som ännu är tomt.

esc
    ↑↓ navigera↵ öppna