Biblioteca

Cataloga cada disco, encuentra la misma foto esté donde esté y sabe si borrar una copia hace perder algo.

En esta página
1:11
Narrado en inglés, con subtítulos. Se reproduce desde YouTube al pulsar reproducir.

Todo fotógrafo con más de unos pocos años de trabajo tiene la misma foto en cuatro sitios: la importación de la tarjeta, la carpeta que alguien copió a un disco de copia de seguridad, el DNG que un conversor sacó de ella y el JPEG que fue a un cliente. La biblioteca cataloga cada imagen de cada disco que le indiques: lo recorres todo en un solo lugar, aunque un disco esté en un cajón, y te dice cuáles de esos archivos son la misma foto — y, de cada uno, si borrarlo haría perder algo.

La vista Library#

0:10
Narrado en inglés, con subtítulos. Se reproduce desde YouTube al pulsar reproducir.
La vista Library: cada foto de cada disco, por disco y carpeta, fecha, álbum, palabra clave, persona, lugar, cámara y objetivo. El año elegido a la izquierda es aquello con lo que trabaja la cuadrícula de al lado.
La vista Library: cada foto de cada disco, por disco y carpeta, fecha, álbum, palabra clave, persona, lugar, cámara y objetivo. El año elegido a la izquierda es aquello con lo que trabaja la cuadrícula de al lado.

Ábrela con Cmd+Shift+L, View → Library o el menú de vistas de la barra de información. El panel de la izquierda lista lo que contiene la biblioteca, cada cosa con cuántas fotos tiene:

  • All Pictures
  • Sources — cada disco o carpeta, con su espacio libre, o cuándo se vio por última vez si no está conectado; abre uno para ver sus carpetas
  • Dates — años, luego meses, luego días, en tu zona horaria; Undated para las fotos sin hora de captura
  • Collections — tus álbumes y búsquedas guardadas
  • Published — los álbumes que se mantienen en un evento o en una carpeta, y cómo va cada uno; consulta Publicar álbumes
  • Keywords, People, Places, Cameras y Lenses

Lo que eliges se abre en la cuadrícula de al lado, como aquello con lo que trabaja la ventana: valora, marca, revela, exporta y publica exactamente como en una carpeta, y cada cambio llega a la carpeta de la propia foto. Una foto en un disco no conectado se muestra a partir de la previsualización guardada por la biblioteca, y una acción que necesita el archivo dice qué disco conectar.

El campo sobre la cuadrícula busca en lo elegido — palabras de pies de foto, títulos, palabras clave, personas, lugares, cámaras, objetivos y nombres de archivo. El menú de al lado ordena por hora de captura, nombre, valoración, cuándo se añadió la foto o cuándo se editó por última vez; un álbum se abre en su propio orden. Save Search… guarda lo elegido y buscado como búsqueda guardada en Collections.

Una biblioteca vacía ofrece Add a Disk or Folder…, e Import Lightroom Catalog… cuando encuentra uno en ~/Pictures/Lightroom.

Por la API, POST /api/library/view elige, busca, ordena y abre la vista; GET /api/library/browse devuelve lo que lista el panel.

Buscar por lo que hay en la foto#

El campo de búsqueda también encuentra fotos por lo que hay en ellas, con palabras sencillas y en tu propio idioma — una garza bajo la lluvia, a bird on a branch, entrega de premios — sin que nadie haya escrito palabras clave. Search by Content… junto al campo descarga una vez el modelo de contenido (unos 230 MB). Después la biblioteca lee sus fotos en segundo plano, desde las vistas previas que ya guarda, las más recientes primero y haciendo pausa cada vez que seleccionas. La barra dice cuánto lleva, y una búsqueda encuentra las fotos leídas hasta ese momento.

El menú junto al campo elige qué busca: Words and Content (primero las palabras escritas en los archivos, luego las fotos más cercanas a lo que escribiste), Words o Content. Una búsqueda por contenido se muestra de la más cercana a la menos, como Best Match.

Haz clic derecho en una foto y elige Find Similar in Library para ver las fotos que se le parecen, de todos los discos de la biblioteca, la más cercana primero.

El modelo lee inglés, noruego, sueco, alemán, finés, francés, español y más de cuarenta idiomas más. Son CLIP de OpenAI para las fotos y un modelo de texto multilingüe entrenado para coincidir con él, ambos en este ordenador: ninguna foto sale de él. En la API: content y similar_to en POST /api/catalog/search y las búsquedas guardadas, search_by en POST /api/library/view, y GET /api/library/content para el avance (SDK: client.library.content()).

Álbumes, colecciones inteligentes y conjuntos#

0:11
Narrado en inglés, con subtítulos. Se reproduce desde YouTube al pulsar reproducir.
Una búsqueda guardada nueva: cada regla que debe cumplir una foto, y cuántas fotos de la biblioteca las cumplen mientras editas.
Una búsqueda guardada nueva: cada regla que debe cumplir una foto, y cuántas fotos de la biblioteca las cumplen mientras editas.

Collections, en el panel de la vista Library, contiene tus álbumes (fotos reunidas a mano, de cualquier carpeta y disco) y tus colecciones inteligentes (búsquedas guardadas, que encuentran sus fotos cada vez), en conjuntos de colecciones que pueden contener sus propios conjuntos. Cada una muestra cuántas fotos tiene; en una colección inteligente es lo que encuentra ahora.

  • + New crea un álbum, una colección inteligente o un conjunto. Haz clic derecho en un conjunto para crear uno dentro; arrastra una colección o un conjunto a otro conjunto para moverlo allí, o al espacio vacío de debajo para llevarlo arriba.
  • Haz clic derecho en una colección para cambiarle el nombre, duplicarla o borrarla, editar una colección inteligente, o hacer de un álbum el álbum de destino.
  • Pon fotos en un álbum arrastrándolas desde la cuadrícula, con Add to Album en el menú de la foto (con New Album…), o con Shift+B, que pone las fotos seleccionadas — o la de la pantalla — en el álbum de destino, y las saca cuando todas ya están en él. La barra de información muestra el destino y su número; haz clic para elegir otro. Sin destino, Shift+B hace de la Quick Collection el destino. En un álbum, Remove from "…" en el menú de la foto saca fotos.
  • Una foto del álbum de destino lleva un marcador en la cuadrícula, la tira y Survey, y el nombre del álbum sobre la foto en Develop y a pantalla completa, sea cual sea la carpeta abierta. En el menú del filtro, Álbum … muestra solo las fotos que están en él (Dentro) o solo las que no (Fuera). Con Fuera activo, Shift+B saca una foto de la vista en cuanto entra, así que una pasada por una tarjeta deja solo lo que queda por elegir. Un RAW de la tarjeta cuenta como en el álbum cuando el álbum tiene la misma toma en otro archivo —el DNG de DxO que envió una entrega en directo—, reconocida por la cámara y el instante en que se tomó, hasta la fracción de segundo. Un archivo sin esa fracción (una cámara más antigua, una captura de pantalla) solo está en el álbum como sí mismo. Poner un RAW así en el álbum lo deja fuera y dice qué archivo está allí, así que la foto nunca sale dos veces. Sustituir … en «…» en el menú de la foto lo pone en el lugar de ese archivo: se envía encima de la foto publicada, que conserva su lugar y los enlaces de sus compradores. Una foto que alguien ha comprado nunca se sustituye. El paso Add to Album de un flujo de trabajo deja fuera del mismo modo un segundo archivo de una toma, como el JPEG de una cámara que envía su JPEG y su RAW.
  • El editor de colecciones inteligentes lista las reglas: palabras, palabras clave, personas, lugares, pies de foto, cámara, objetivo, valoración, bandera, etiqueta, tipo de archivo, editada, publicada, cuándo se tomó (en una fecha, o en los últimos tantos días), cambiada en los últimos tantos días, tiene palabras clave, tiene pie de foto, nitidez, carpeta, álbum y disco. La colección cumple todas o alguna, y + Group añade un grupo con todas o alguna de sus propias reglas — «tres estrellas o más, y la palabra clave relevos o natación». Cuenta lo que encuentra mientras editas. Save as Smart Collection… en las columnas de filtro guarda lo que muestra la ventana como una.

Un álbum guarda sus fotos por su lugar en la biblioteca, así que una foto movida en el Finder sigue en él tras el siguiente escaneo. Una foto enviada a la papelera sale de sus álbumes, y la aplicación dice de cuáles. Info en el panel lateral lista los álbumes y colecciones inteligentes en los que está la foto de la pantalla. Deliver → Deliver Event Folder… puede aplicar su flujo a las fotos de un álbum o de una colección inteligente en lugar de a una carpeta.

Por la API, /api/library/collections lista, crea, cambia y borra colecciones, pone fotos en un álbum o las saca, y fija el destino; /api/library/collection-sets hace lo mismo con los conjuntos.

Discos no conectados#

Las fotos de un disco que no está conectado las siguen encontrando todas las búsquedas, filtros, colecciones y sesiones, y se muestran a partir de la previsualización guardada con el nombre del disco encima. La barra de información y el panel lateral dicen dónde están — «On Archive-3 (not connected, last scanned 12 March 2026)» — y OFFLINE en la barra de filtros las quita de la ventana, o las vuelve a mostrar.

El árbol de carpetas: los favoritos arriba, las carpetas abiertas hace poco debajo, y cada disco con cuántas fotos hay en cada carpeta.
El árbol de carpetas: los favoritos arriba, las carpetas abiertas hace poco debajo, y cada disco con cuántas fotos hay en cada carpeta.

Lo que se puede hacer sin el archivo se hace: estrellas, bandera, etiqueta, palabras clave, el pie de foto y los demás campos IPTC, y los álbumes cambian en la biblioteca al momento, y se escriben en las fotos cuando se monta el disco — la barra de información dice cuántos cambios esperan. Solo se escribe lo que cambió: un campo que la biblioteca no conoce se queda como lo tiene el archivo. Lo que necesita el archivo lo dice: revelar, recortar, girar y exportar responden «Connect Archive-3 to …». Cuando vuelve el disco, la foto de la pantalla se abre sola.

Por la API, connected aparece en cada archivo que dan las rutas de la biblioteca, y GET /api/library/pending-writes lista lo que espera; hide_offline en POST /api/filter deja fuera esas fotos.

Fotos en un solo disco#

Los discos son baratos; las fotos perdidas no. Una vez escaneados tus discos, la biblioteca sabe qué fotos existen en un solo disco físico. Una copia cuenta cuando es el mismo archivo, o la misma foto con otros metadatos (un DNG con un XMP nuevo dentro), o los mismos datos de sensor; un JPEG exportado es otra foto, no una copia. Dos particiones de un disco son un solo disco, y un disco que no está conectado cuenta igualmente.

To Do → Not backed up abre esas fotos, la lista Sources dice cuántas de cada disco están only here, y la tarjeta de una sesión dice cuántas de sus fotos están en un solo disco. Back Up to… en To Do las copia todas a una carpeta de otro disco, en <carpeta>/<disco>/<su ruta en él> con sus XMP, comprueba cada copia contra el original y escanea la carpeta, para que el número baje. Las fotos de un disco no conectado esperan a que lo esté. Haz clic derecho en un disco de Sources, o en una sesión, para copiar solo sus fotos. Una foto que está en un disco en varias carpetas se copia una vez.

Por la API: GET /api/library/backup-coverage, POST /api/library/backup-copy ({"scope": {"kind": "all"}, "dest": "/Volumes/Backup"}, o el de una fuente o una sesión), y unbacked en cada sesión.

Sesiones#

0:12
Narrado en inglés, con subtítulos. Se reproduce desde YouTube al pulsar reproducir.
Sesiones: la biblioteca como línea de tiempo, cada sesión una tarjeta con su nombre, sus fechas, hasta dónde ha llegado y su mejor foto.
Sesiones: la biblioteca como línea de tiempo, cada sesión una tarjeta con su nombre, sus fechas, hasta dónde ha llegado y su mejor foto.

Shoots, en el panel de la vista Library, muestra años de fotos como los recuerdas: «la llegada del Kystjegerløpet», «la boda de Kari», «Lofoten en marzo». Una sesión se deduce de cuándo se tomaron las fotos, todas las cámaras juntas: un hueco de más de una hora, o un desplazamiento de más de 25 km entre dos fotos con posición, empieza una nueva (ambos se pueden cambiar por la API, PUT /api/library/shoots/rules). La línea de tiempo retrocede año a año con una tarjeta por sesión: su portada, nombre, fechas, lugar, cuántas fotos y qué cámaras. Haz clic en una tarjeta para ver sus fotos.

  • Una sesión toma el nombre de un álbum que tiene la mayoría de sus fotos (uno publicado en eventphotos, o la selección de una entrega); si no, de la carpeta que tiene al menos la mitad de sus fotos; si no, del lugar donde está la mayor parte; si no, de sus fechas.
  • Haz clic derecho en una tarjeta para cambiarle el nombre (Rename) o unirla con la anterior (Merge with the Shoot Before). En una foto, Shoot → Start a New Shoot Here parte su sesión en esa foto, y Use as Shoot Cover la convierte en portada; si no, la portada es la foto mejor valorada, luego una elegida, luego la más nítida. Lo que cambias se mantiene cuando la biblioteca se vuelve a escanear.
  • La columna Shoot del filtro y la regla In the shoot de las colecciones inteligentes eligen fotos por sesión.

Por la API: GET /api/library/shoots, POST /api/library/shoots/edit (cambiar el nombre, unir con la anterior, partir en una foto, portada) y PUT /api/library/shoots/rules (las horas y los kilómetros); abre una sesión con POST /api/library/view y la selección {"kind": "shoot", "at": <startMs>}.

Lo que queda por hacer#

Lo que queda por hacer: las fotos que aún no se han revisado, las elegidas aún sin revelar, y lo editado pero no entregado.
Lo que queda por hacer: las fotos que aún no se han revisado, las elegidas aún sin revelar, y lo editado pero no entregado.

Cada tarjeta dice hasta dónde ha llegado su sesión, a partir de lo que sabe la biblioteca (no se lee ningún archivo): Not culled (ninguna foto tiene estrellas, bandera ni etiqueta), Culled (marcada, nada editado; Picks to develop cuando hay elegidas sin revelar), Edited, not delivered o Delivered (una foto exportada, subida o publicada en eventphotos o en el periódico). La columna Shoot Status del filtro elige fotos según eso.

To Do en el panel lista las sesiones sin seleccionar, las elegidas sin revelar y las fotos editadas sin entregar, con cuántas hay; haz clic en una para ver esas fotos. Haz clic derecho en una tarjeta para Mark Done — fuera de las listas, sin cambiar ninguna foto — y usa Mark Year Done en un año para quitar de golpe de las listas un archivo terminado hace mucho.

Por la API: GET /api/library/todo, el estado en GET /api/library/shoots, done y done_between en POST /api/library/shoots/edit, y la selección {"kind": "todo", "list": "not_culled"} (o picks_not_developed, edited_not_delivered).

Palabras clave#

0:13
Narrado en inglés, con subtítulos. Se reproduce desde YouTube al pulsar reproducir.

Keywords, en el panel de la vista Library, lista cada palabra clave que tienen tus fotos, en cada disco, como un árbol con cuántas fotos tiene cada una — la jerarquía es la que escribe Lightroom (Places|Norway|Stavanger), así que una lista de palabras clave hecha allí se ve igual aquí. Las palabras clave de tu lista que aún no tiene ninguna foto aparecen en gris. Haz clic en una para ver cada foto que la tiene o que tiene una palabra clave debajo de ella.

  • Haz clic derecho en una palabra clave para cambiarle el nombre (Rename), fusionarla con otra (Merge Into), llevarla arriba (Move to the Top), darle sinónimos (Synonyms), dejarla fuera de los archivos exportados (Include on Export), pintar con ella (Paint with It) o borrarla (Delete). Arrastra una palabra clave sobre otra para ponerla debajo.
  • Un cambio de nombre, una fusión, un movimiento o un borrado se escribe en cada foto que tiene la palabra clave, en su XMP o en el archivo, con el resto de sus metadatos como estaban, y la línea bajo el título dice cuánto lleva. Undo devuelve las palabras clave de cada foto a como estaban. Las fotos de un disco no conectado se escriben cuando vuelve el disco; el panel dice cuántas esperan.
  • Una búsqueda por un sinónimo encuentra las fotos de la palabra clave, y un archivo exportado lleva los sinónimos. Una palabra clave no incluida en la exportación se queda en tus propios archivos y se omite en los exportados.
  • + New añade una palabra clave a la lista, e importa o exporta la lista en el formato de texto de Lightroom (Metadata → Export Keywords e Import Keywords en Lightroom): una palabra clave por línea, un tabulador más por nivel, {sinónimo} y [not exported].
  • Paint with It convierte la palabra clave en la palabra clave de pincel: Shift+K o Metadata → Paint Keyword la pone en las fotos seleccionadas — o en la de la pantalla — y la quita cuando todas la tienen. La barra de información la muestra; haz clic en ella ahí para dejar de pintar.

Por la API, /api/library/keywords da el árbol con los números, y sus rutas cambian el nombre, fusionan, mueven y borran una palabra clave, deshacen, fijan sinónimos, leen y escriben la lista en el formato de Lightroom, y fijan y pintan con la palabra clave de pincel (client.library.keywords(), renameKeyword() y las demás).

Discos y duplicados#

0:15
Narrado en inglés, con subtítulos. Se reproduce desde YouTube al pulsar reproducir.
Disks & Duplicates, tras escanear un árbol de carpetas. Cada grupo es una foto y cada copia suya encontrada — y la relación dice qué tipo de copia es cada una, para saber si borrarla pierde algo.
Disks & Duplicates, tras escanear un árbol de carpetas. Cada grupo es una foto y cada copia suya encontrada — y la relación dice qué tipo de copia es cada una, para saber si borrarla pierde algo.

Disks & Duplicates, al final del panel, o Library → Disks & Duplicates, tiene las herramientas para copias y discos.

Añadir un disco#

Discos: cada origen de la biblioteca, conectado o no, con lo que hay catalogado en él y las carpetas que debe omitir.
Discos: cada origen de la biblioteca, conectado o no, con lo que hay catalogado en él y las carpetas que debe omitir.

En la pestaña Disks, pulsa Add folder or disk… y elige una carpeta o la raíz de un disco. Eso es una fuente. Los discos conectados que aún no son fuentes aparecen debajo, en «Connected, not in the library», con un botón Add cada uno.

Una fuente se identifica por el UUID del volumen del disco y no por su ruta, así que un disco que se monta en otro sitio el mes que viene sigue siendo la misma fuente, con todo lo ya escaneado en él intacto.

Las fuentes no pueden solaparse. Si /Volumes/Archive es una fuente, /Volumes/Archive/2019 no puede serlo también — el mismo archivo bajo dos fuentes se encontraría como duplicado de sí mismo. Quita la primera si quieres la segunda.

Para dejar fuera una carpeta, escribe su ruta relativa a la raíz de la fuente en «folder to skip» y pulsa Skip folder. Omitirla borra al momento lo ya catalogado debajo, y dice cuántos archivos eran. Dejar de omitirla no los recupera; la carpeta se recorre de nuevo en el siguiente escaneo.

Algunos sitios nunca se recorren: carpetas del sistema, ~/Library, la papelera, bibliotecas de Fotos, .git y node_modules.

Escaneo#

Scan connected disks escanea cada fuente conectada; cada tarjeta de fuente tiene su propio Scan solo para ella. El botón pasa a Cancel scan mientras hay uno en marcha, y una cancelación surte efecto en el siguiente archivo.

Un escaneo se hace en cinco pasadas, y la línea de estado nombra en la que está:

  1. Listing files — solo entradas de directorio. No se lee nada.
  2. Reading headers — el contenedor, la hora de captura, la valoración y una huella barata de los primeros 64 kB.
  3. Comparing possible copies — se calcula el hash del archivo entero y de sus datos de imagen, pero solo de los archivos cuya huella barata ya coincide con otra. La mayoría de los archivos nunca se leen más allá de su cabecera.
  4. Comparing raw data — se decodifican los valores del sensor, para una captura que existe como dos archivos con datos de imagen distintos. Es lo que empareja un CR2 con el DNG hecho a partir de él.
  5. Comparing images without metadata — desactivado salvo que lo pidas. Ver abajo.

Los resultados aparecen mientras el escaneo sigue: los grupos se recalculan cada pocos segundos según llegan hashes nuevos, y una vez más al final.

Solo se ejecuta un escaneo a la vez, y una fuente no se puede quitar mientras hay uno en marcha.

Imágenes sin metadatos de cámara#

La pestaña Disks tiene un ajuste: Also compare images without camera metadata by how they look (slower). Activado, el escaneo añade un hash perceptual para los archivos que no tienen ninguna identidad de captura — capturas de pantalla, descargas, cualquier cosa sin su EXIF — y los empareja por su aspecto.

Está desactivado por defecto porque decodifica una previsualización de cada uno de esos archivos. El umbral es estrecho a propósito: una copia recodificada o redimensionada de una foto queda a pocos bits, mientras que la foto tomada medio segundo después no.

Los ajustes se aplican desde el siguiente escaneo, no hacia atrás.

Previsualizaciones de cada foto#

La biblioteca guarda una pequeña previsualización de cada foto en este ordenador, para poder recorrer un disco desconectado. Un escaneo las crea a partir de la previsualización que la cámara puso en el archivo, mientras lo lee de todos modos; una carpeta abierta en photosuite las obtiene sin escaneo. Una foto que revelas, recortas o giras se muestra así una vez guardado el cambio, y como se tomó de nuevo cuando la restableces.

Stored previews en la pestaña Disks fija su tamaño — 256, 384 o 512 píxeles en el lado largo, o ninguna — y dice cuánto espacio ocupan. Un tamaño nuevo se crea en el siguiente escaneo. Una cámara que no pone previsualización en sus archivos (algunas de antes de 2005) no tiene ninguna.

Copias de seguridad#

Casi todo lo que sabe la biblioteca vuelve con un escaneo, porque las marcas y las palabras están en las fotos. Tus álbumes, búsquedas guardadas y lo que se movió adónde no, así que la biblioteca se copia — cada semana salvo que elijas otra cosa, y antes de cada actualización que cambie cómo se guarda. La pestaña Disks dice cada cuánto, cuántas copias se conservan (ocho salvo que elijas otra cosa) y adónde van: una carpeta que elijas o, si no, una carpeta en otro disco de la biblioteca distinto del de este ordenador, para que un disco que falla no se lleve las dos. Cada copia tiene también cada álbum como una simple lista de sus fotos.

La biblioteca se comprueba antes de cada copia, y una biblioteca dañada nunca se copia encima de las copias buenas. Si está dañada, la barra de información lo dice y ofrece Restore from Backup…; si las copias llevan paradas el doble de su intervalo, ofrece Back Up Now. Restore… junto a una copia devuelve la biblioteca a como estaba entonces, con sus álbumes y búsquedas guardadas, y escanea los discos conectados para que vuelva lo que ha cambiado en las fotos desde entonces.

En tus otros dispositivos#

Tu teléfono y tus otros ordenadores pueden ver los álbumes y carpetas que elijas, sin los archivos, con FLOGVIT.plus. Haz clic derecho en un álbum o una carpeta en la vista Library y marca Available on My Devices: una vista previa de cada foto que contiene — revelada, recortada y girada tal como está aquí — va al sitio de photosuite, con cuándo y con qué se tomó. Desmárcalo y se retiran. Nada va allí si no lo pones tú, porque las vistas previas ocupan espacio en el sitio.

Las estrellas, banderas, etiquetas, el revelado, el recorte y el IPTC te siguen entre tus ordenadores de todos modos, para cada foto, cuando Keep marks and edits in step with my other devices está activado en Ajustes.

Cuando los archivos se mueven o desaparecen#

Un disco de la biblioteca se escanea en segundo plano al conectarlo; la barra de información dice qué hace el escaneo y tiene un botón que lo detiene. Solo se vuelve a leer lo que ha cambiado desde el último escaneo.

Una carpeta renombrada o movida en photosuite, fotos movidas a otra carpeta y un cambio de nombre por lotes cambian la biblioteca al momento, y los álbumes conservan sus fotos en las rutas nuevas. Movida en el Finder, una foto se vuelve a encontrar en el siguiente escaneo esté donde esté en un disco de la biblioteca: el mismo contenido de archivo, o la misma captura de la misma cámara, en una ruta nueva. Conserva todo lo que tiene asociado, y los álbumes la siguen.

Un archivo que el escaneo no encuentra en ninguna parte está missing, no olvidado. Cada tarjeta de fuente de la pestaña Disks lista sus archivos que faltan con su última ruta. Locate… pide la carpeta en la que está ahora uno de ellos, y cada archivo que falta de su antigua carpeta que esté allí con el mismo nombre lo sigue. Forget es para los archivos que se han ido para siempre. Los archivos que faltan quedan fuera de las búsquedas y de los grupos de duplicados.

Qué significa «la misma foto»#

Dos archivos pueden ser iguales de seis maneras distintas, y cuál de ellas sea decide si puedes tirar uno sin riesgo. La relación se muestra junto a cada archivo, en verde cuando las copias son intercambiables y en ámbar cuando no lo son.

Relación Qué significa ¿Se puede borrar una sin riesgo?
Identical file El mismo archivo, byte a byte. Sí
Same image, different metadata Los mismos píxeles; las valoraciones, palabras clave o IPTC difieren. Sí, pero fusiona antes los metadatos
Same raw data, different file Los mismos valores de sensor en otro contenedor o compresión — un RAW y su DNG sin pérdida. Sí
Same capture, different version Una exposición, dos imágenes: un export, una edición, un DNG con pérdida. No — los píxeles difieren
Looks identical (no metadata) Sin identidad de captura en ningún lado, pero se ven iguales. Solo aparece con el ajuste perceptual activado. Júzgalo tú
Related En este grupo solo a través de otro archivo. Júzgalo tú

Las tres primeras son lo que la aplicación llama intercambiables: borrar una pierde como mucho metadatos. Las demás son versiones, y una versión es otra foto.

La identidad de captura es la marca y el modelo de la cámara más la hora de captura hasta la fracción de segundo. Sin fracciones, una ráfaga entera comparte la misma clave, así que nunca cuentan como la misma captura. El número de serie del cuerpo se deja fuera de la clave a propósito, porque los exports lo quitan — pero cuando ambos archivos lo llevan y no coinciden, el emparejamiento se rechaza.

Decidir qué se queda#

La pestaña Duplicates lista grupos, primero los que más espacio liberan, con una pastilla de filtro por cada relación presente. Elige un grupo y cada copia se coloca a la derecha con una previsualización y sus datos: tamaño, dimensiones, cámara, fecha de captura, valoración y en qué disco está.

  • Keep marca la que se queda. Empieza en el primer archivo conectado del grupo.
  • Trash marca un archivo para irse. Un archivo en un disco desconectado no se puede marcar.
  • Mark all interchangeable copies marca cada archivo que es la misma foto que la que conservas — el caso habitual, de una vez.
  • Move N files to Trash pregunta una vez más y luego los mueve.

Unas insignias te avisan antes de que pierdas algo: has .xmp sidecar, has develop settings or edit history, disk not connected, inside a folder copy.

Dos salvaguardas que no te saltas sin querer. Un grupo entero nunca se puede tirar — siempre queda un archivo. Y marcar algo que no es la misma foto que la que conservas — un export, una edición — obliga a marcar Yes, trash those versions too, porque esos píxeles no existen en ningún otro sitio.

Tirar significa la papelera del sistema. Los archivos se pueden recuperar hasta que la vacíes; el catálogo los olvida al momento. Los XMP van con su archivo, salvo un XMP compartido con otro archivo de la misma carpeta, que se queda.

Un archivo cuyo tamaño u hora de modificación ya no coincide con lo que registró el escaneo nunca se tira — se informa como «file changed since it was scanned».

Fusionar antes los metadatos#

Merge metadata into kept copy lleva la valoración, la bandera, la etiqueta de color, el GPS, las palabras clave, las personas, el texto IPTC y la marca de copyright de las otras copias a la que conservas. Los valores de la que conservas mandan; las demás solo rellenan lo que le falta. Las palabras clave y las personas se suman. Cuando la que conservas está abierta en la ventana principal, sus estrellas y su bandera cambian ahí al momento.

Lo que una fusión no mueve se te indica: los recortes, los ajustes de revelado y la orientación se quedan donde están. Si una copia que vas a tirar lleva una edición, la fusión no la salvará.

Copias de carpetas#

Copias de carpetas: carpetas enteras cuyas fotos son el mismo conjunto. Una carpeta de copia de seguridad sigue coincidiendo después de que un conversor escribiera metadatos nuevos en sus archivos, porque la comparación se hace sobre las fotos y no sobre los bytes.
Copias de carpetas: carpetas enteras cuyas fotos son el mismo conjunto. Una carpeta de copia de seguridad sigue coincidiendo después de que un conversor escribiera metadatos nuevos en sus archivos, porque la comparación se hace sobre las fotos y no sobre los bytes.

La pestaña Folder copies trabaja un nivel más arriba: carpetas enteras cuyas fotos son el mismo conjunto. Una carpeta de copia de seguridad sigue coincidiendo después de que un conversor escribiera metadatos nuevos en sus DNG, porque la comparación se hace sobre conjuntos intercambiables y no sobre bytes.

Las coincidencias anidadas se agrupan en la carpeta más exterior. Siempre debe quedar una carpeta de una coincidencia, y la raíz de una fuente nunca se tira — quita la fuente en su lugar.

Cuando las copias no son todas idénticas se te dice, con esas palabras, antes de mover nada: las fotos son las mismas, pero algunas copias llevan valoraciones, palabras clave o ediciones que las otras no tienen.

Los grupos que quedan por completo dentro de un par de carpetas coincidentes se ocultan en la pestaña Duplicates, ya que la fila de la carpeta ya los representa. Por eso las dos cifras no suman.

Quitar una fuente#

Remove olvida la fuente y todo lo catalogado en ella. Los archivos del disco no se tocan.

Un disco que desconectas se queda en la biblioteca. Sus archivos siguen apareciendo en los grupos, marcados disk not connected, y siguen contando en lo que podrías recuperar — solo que no se pueden tirar hasta que vuelva.

Por la API#

0:11
Narrado en inglés, con subtítulos. Se reproduce desde YouTube al pulsar reproducir.

Todo lo anterior es client.library en el SDK.

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 existe porque que un escaneo termine no es lo mismo que que los resultados estén listos: la agrupación se ejecuta después. Consultar solo scanStatus() encuentra un results() vacío durante un momento.

El progreso llega también como eventos — library_scan_started, library_scan_progress, library_scan_finished, library_results_changed y library_sources_changed:

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

missing(), relink(id, folder) y forgetMissing(ids) hacen lo que hace la lista de archivos que faltan en la pestaña Disks, y preview(id) da la previsualización guardada de un archivo como bytes JPEG. backups(), backUp() y restore(path) hacen lo que hace la fila Backups.

Dos cosas que saber antes de automatizar borrados. trash() rechaza la última copia de una foto en su grupo salvo que pases allowLastOfCluster — no lo pases para que un script haga menos ruido. Y results() puede volver con ready: false mientras la primera agrupación sigue en marcha; scanAndWait ya lo tiene en cuenta, un bucle hecho a mano debe hacerlo él mismo.

Cada ruta está en la referencia de la API, en Analyze.

Dónde se guarda#

Un archivo SQLite, library.sqlite, en la carpeta library de la carpeta de ajustes (~/Library/Application Support/flogvit/), con las previsualizaciones guardadas y las copias de seguridad al lado. Contiene rutas, tamaños, hashes y metadatos — nunca datos de imagen. Las marcas y las palabras vuelven de las fotos con un escaneo, pero tus álbumes, búsquedas guardadas, sesiones y lo que se movió adónde solo viven ahí: para empezar de nuevo, restaura una copia en lugar de borrarlo.

Si usabas FLOGVIT.duplicates, su base de datos se importa la primera vez que se abre la biblioteca, hashes incluidos, para que un escaneo nuevo no tenga que releer discos que quizá ni siquiera están conectados. Ocurre una vez, y solo en una biblioteca que aún está vacía.

esc
    ↑↓ navegar↵ abrir