¿Cómo migré de Lightroom a Darktable?

El título es ¿cómo migré de lightroom a darktable?, no ¿cómo migrar de lightroom a darktable?

Este tutorial explica todos los pasos que seguí para realizar una migración con éxito. Cuando me toquó hacer la migración no encontré ningún manual por ahí fuera y tuve que ingeniármelas por mi cuenta. Espero que este artículo le sea útil al que quiera actualizarse a darktable.

No conozco dos fotógrafos que organicen sus fotos de la misma manera porque cada persona tiene un flujo de trabajo diferente por lo que en tu caso particular quizás tengas que hacer las cosas ligeramente diferentes o saltarte algunos pasos. Este artículo sólo pretende dar una guías generales para que luego el lector aplique su propio sentido común a su caso particular.

Objetivo

Migrar un catálogo de 50.000 fotos de Adobe Lightroom (LR) a Darktable (DT) sin perder nada por el camino.

Motivos

Si estas leyendo esto, entiendo que ya te has decido por subir de categoría y pasarte a darktable, pero por si aún estás dudando aquí están los motivos por lo que me parece buena idea migrar.

Algunas premisas

Sólo tengo un fichero por foto (ya sea RAW, jpeg u otra cosa), pero sólo un fichero por imagen. En DT quiero mantener la misma lógica de sólo una imagen por foto. Almacenar dos versiones de una foto (RAW y jpeg por ejemplo) sólo ocupa espacio extra y me enguarra mi colección de fotos con duplicados. Con el tiempo, estos duplicados pueden terminar teniendo diferentes etiquetas, puntuación de estrellas y otros metadatos por lo que me parece importante evitar ese problema.

Mi catálogo en LR está configurado para que almacene todos los cambios en el propio fichero DNG (no en ficheros xml separados). Ten en cuenta que hay datos como la marca de “rejects” o “rechazados” que sólo se almacenan en el catálogo y no en los ficheros. Pero no te preocupes, tenemos un pequeño truco para migrar estos datos igualmente.

Como ya expliqué aquí:

LR en el momento de este escrito puede abrir ficheros AVIF pero no puedo exportar a ficheros AVIF. Como es habitual LR va por detrás de DT :wink: Para solucionar este problema, voy a exportar en LR al formato TIFF y luego dentro de DT transformaré mis TIFFs a AVIF. Si en vez de usar AVIF, prefieres usar JPEG u otro formato que acepte LR directamente puedes ahorrarte este paso intermedio y hacer la exportación directamente en LR. Aquí explico porque JPEG (que es tecnología de hace 30 años) me parece una mala elección para una exportación final como esta en 2021.

Información que quiero migrar:

  • Puntuación de las estrellas. Confirmado que se migra automáticamente.
  • Personas. Confirmado que se migra automáticamente.
  • Etiquetas. Confirmado que se migra automáticamente.
  • Rechazados. No se migra automáticamente, por loque utilizo el truco de etiquetado manual (lo veremos más adelante)
  • Colecciones. No se migra automáticamente, por loque utilizo el truco de etiquetado manual (lo veremos más adelante)

PROCEDIMIENTO

Voy a trabajar mi catálogo en dos secciones diferenciadas. Antes o después de la compra de mi primera cámara DSLR, que es cuando empecé a usar el formato RAW. En mi caso, esto me separa mi catálogo en fotos antes o depués de 2005.

Fotos anteriores a 2005, son fáciles. Sólo copia los ficheros a DT. Las etiquetas están dentro de los ficheros JPEG por lo que se migran sin problemas, y no tengo ediciones de revelado sobre estos ficheros.

En LR yo marcaba como rechazado (rejected) las fotos que no eran buenas pero por algún motivo no las quería eliminar. Si por ejemplo tomaba 7 fotos de un grupo, quizás eliminaba 5 que fueran malas, marcaba 2 como rechazadas y dejaba una como la ganadora. Luego agrupaba (stacked) las 3 fotos en un grupo para que visualmente solo viera una. Mis fotos rechazadas son fotos que en principio no quiero “ver” pero si quiero “guardar” por si acaso.

Convertí, todas las fotos RAW rechazadas de mi catálogo a DNG lossy que reduce su tamaño en un 67% sin ninguna reducción de calidad que mi ojo pueda apreciar. Para mis fotos rechazadas es calidad suficiente.

Pasos en LR

  1. Haz un backup de tu catálogo de LR y una copia completa de la carpeta donde contentas todas tus fotografías

  2. En LR, todas las fotos que está en colecciones (collections), etiquetalas como “Col - Nombre de colección”, para que DT vea esta información

  3. En LR: Asegúrate que los cambios en metadatos se almacenan en el fichero en sí (y no sólo en la base de datos de LR). Tienes que activar esta opción en las preferencias de LR ya que no está activada por defecto. Luego selecciona todas tus fotos, y haz clic en “Guardas Metadatos” (Save Metadata) para asegurarte se guardan en el propio fichero.

  4. ¿Que pasa con los ficheros JPEG con cambios? Yo casi no tengo ninguno por lo que los puedo ignorar. Si, en tu caso tienes y quieres guardar los cambios puedes procesar estos cambios tal y como vamos a hacer con los ficheros RAW.

  5. En LR, selecciona todas tus fotos rechazadas y etiquétalas con el texto “Rechazada LR”. Esto es para después en DT poder localizarlas todas, marcarlas como rechazadas en DT y quitar la etiqueta de “Rechazada LR”. Recuerda que la marca de “rechazado” DT sólo la almacena en la base de datos por lo que no se migraría sino.

  6. En LR: Como más adelante voy a exportar todos mis ficheros RAW a TIFF, quiero diferencialos de los TIFF que ya tengo en mi catálogo. Para ello, selecciono todos los TIFF de mi catálogo y los etiqueto con “TIFF que tenía antes de dejar LR”

  7. En LR: Selecciona todos los ficheros RAW de tu catálogo y exportalas con la opción de “Exportar a: Misma carpeta que la carpeta original” (Export to: Same folder as the original photo". Para conservar la máxima cantidad de información y calidad los exporto como fichero TIFF, con espacio de color ProPhoto, 16 bits y compresión ZIP sin pérdida. Con esto procesas toda tu colección con un comando, pero tengo en cuenta que este paso puede tardar varias horas o incluso días en terminar. Ten paciencia.

Como medida de seguridad marqué la opción de “Añadir a este catálogo” (Add to This Catalog). Esto es sólo porque tengo muchas fotos y si el proceso fallase antes de terminar, así podría eliminar todos los tiffs del catálogo sin etiquetar y reiniciar el proceso de nuevo.

Pasos en la línea de comandos

  1. Renombrar todos los ficheros RAW a alguna extensión que no se reconozca como una foto. En mi caso que sólo tengo DNG, renombro los “.dng” a “.dnglr”. Como no quiero de DT me duplique las fotos, necesito renombrar estos ficheros con metados de LR a una extensión inventada. Así “marco” los ficheros RAW que fueron procesados en LR.

En Linux, puedes hacer esto fácilmente con el siguiente comando:

find . -depth -type f -name "*.dng" -exec sh -c 'mv "$1" "${1%.dng}.dnglr"' _ {} \;

Esta parte es opcional, pero ya que voy a reimportar todos mis ficheros a una nueva base de datos (DT), ya aprovecho a limpiar mis ficheros.

Primero voy a ver cuantos ficheros tengo con cada extensión con el siguiente comando:

find . -type f | sed -n 's/..*\.//p' | sort | uniq -c

En mi caso, mi carpeta de fotos está en un Synology NAS, y este almacena datos indexados que no necesito en una molestas subcarpeta llamas “@eaDir”. El siguiente comando me borra recursivamente todas las carpetas que contienen el texto “@eaDir

find . -type d -name "@eaDir" -exec rm -r {} \;

Voy a renombrar todos mis *.jpeg y *.JPG a *.jpg. Todos los *.TIF a *.tif etc

find . -depth -type f -name "*.TIF" -exec sh -c 'mv "$1" "${1%.TIF}.tif"' _ {} \;
find . -depth -type f -name "*.jpeg" -exec sh -c 'mv "$1" "${1%.jpeg}.jpg"' _ {} \;
find . -depth -type f -name "*.JPG" -exec sh -c 'mv "$1" "${1%.JPG}.jpg"' _ {} \;
find . -depth -type f -name "*.DNG" -exec sh -c 'mv "$1" "${1%.DNG}.dng"' _ {} \;

Pasos en DT

  1. Importar la carpeta con todas las fotos en DT. Todas las fotos serán importadas sin duplicados y sin RAW’s de LR. Nota: Actualmente los desarrolladores de DT no recomiendan importan “demasiadas” fotos de golpe, por lo que si tienes muchas puedas hacerlas por grupos de pocos miles a la vez.

  2. En DT, convierto todos mis TIFFs a AVIF.

  3. Elimino todos los TIFFs

  4. Selecciono todas las fotos con la etiqueta de “Rechazados”, las marco como “rechazado” y elimino la etiqueta de “Rechazados”

Resultado final

Ahora que tengo todas mis fotos en DT sin duplicados y manteniendo fielmente todas mis ediciones realizadas en LR, mi colección en DT tiene el siguiente aspecto:

  • Pre-2005. Todas las fotos (jpegs/tiffs etc) que tenía antes de trabajar con RAW se copiaron sin más, sin cambios
  • 2005 a 2020. Ficheros AVIF que muestran fielmente las ediciones de los ficheros RAW trabajados en LR
  • Fotos nuevas (a partir de 2020). Todos las fotos nuevas las almaceno en formato RAW (ya no DNG) con los fichoeros xmp de DT

DT ha creado un fichero xmp para cada una de mis fotos donde se almacenan todos los metadatos y ediciones. Ya puedes despedirte del catálogo de Adobe :slight_smile:

Notas

darktable usa exiv2 para los metadatos. Actualmente la versión 3.4 de darktable usa exiv2 0.27.3 que no soporta ficheros avif. Esta funcionalidad se incorporó en la versión exiv2 0.27.4 y se incluirá en darktable 3.6. Más detalles de esta noticia aquí. Esto significa que con la versión actual puedes exportar tus fotos al formato AVIF pero sin los metadatos. Esto para mí no es una opción, por lo que voy a esperar a que esto se solucione hasta de hacer la última conversión de TIFF a AVIF.

2 Me gusta

Un trabajo muy exhaustivo. Yo también importé más de 50000 fotografías, i lo hice de la forma simple y me creo los xmp de los dng. No recuerdo muy bien como lo hice que al editar creo otro xmp,. Me cabree, :laughing::laughing:, y borré todos los xmp y reimporte todo de nuevo.
Tal vez si hubiera tenido tu ejemplo otro gallo hubiera cantado.

Gracias

Tus ordenes en terminal (algun dia deberé aprender) me estan siendo muy utiles para organizar y limpiar mis discos. Que lenguaje es, bash?

thanks for the awesome information.

Me alegra que te sirvan.
Si te refieres a find y sed son comandos de Linux, los puedes usar tanto en bash, zsh o cualquier terminal que uses.

1 me gusta