¿Se utiliza el software de control de versiones para las fotos?

Soy un desarrollador de software de corazón y de oficio, y dedico mucho tiempo a las herramientas de desarrollo... Uno de los tipos de herramientas de desarrollo más útiles es el control de versiones , y para los no iniciados, funciona de la siguiente manera:

  • crear un archivo
  • Empezar a trabajar en el archivo
  • Registrar el archivo (crear una versión 1 del mismo)
  • Abre el archivo y edítalo de nuevo.
  • Regístrese de nuevo (versión 2)
  • Date cuenta de que eliminaste algo importante de la versión 1, retrocede en el tiempo, obtén lo que eliminaste...
  • ...
  • Lucro...

De todos modos, me pregunto si se usa algo similar con las fotos. Esencialmente, estaba pensando en algo como:

  • Importar Fotos (V1).
  • Comience a etiquetar fotos (V2... Los sidecars XMP solo deberían cambiar realmente aquí).
  • Empezar a añadir estrellas, más etiquetas (V3)
  • Comience a ajustar algunas configuraciones (V4+)

Con el flujo anterior, debería poder rastrear muchos más cambios... y brindarle algún tipo de estrategia de respaldo...

Respuestas (11)

Las aplicaciones de flujo de trabajo fotográfico como Adobe Lightroom y Aperture de Apple proporcionan este tipo de historial como parte integrada de su funcionalidad.

Cuando edita un archivo RAW en estos, nunca se realizan cambios en la imagen original. En su lugar, se guardan como 'instrucciones' por separado. Por lo tanto, puede ver un historial de todos los cambios realizados y, con un clic del mouse, volver a cualquier punto anterior en el tiempo de forma no destructiva.

Si solo está usando Photoshop, entonces esto no sucede y tendría que guardar manualmente diferentes versiones de su foto antes de trabajar en ella cada vez.

(Supongo que no hay ninguna razón por la que no pueda usar un repositorio SVN para fotos, es decir, ¿archivos binarios?)

Lightroom mantiene el historial de una sesión de edición, pero ¿permanece ese historial si cierra Lightroom y vuelve a abrir la imagen del catálogo en una fecha posterior? Sé que siempre tienes el archivo RAW original, pero ¿puedes obtener arbitrariamente una versión entre el original y la última en cualquier momento?
¡Sí! La única vez que se eliminaría es si elimina la imagen del catálogo y la vuelve a agregar. Entonces estarías empezando de cero. Pero por lo demás, la historia se mantiene.
Digikam proporciona la misma funcionalidad de instrucciones.
Impresionante, no me había dado cuenta.
Enfriar. no me di cuenta de que Apature y Lightroom hicieron algo de historial... pero ¿se registrará el historial en los archivos XMPP en Lightroom, o solo en el archivo del Proyecto? ¿Se puede exportar ese historial para usarlo en otro lugar?
No estoy seguro exactamente de dónde Lightroom guarda el historial detrás de escena, pero creo que hay una opción oculta en la configuración en algún lugar para usarlo como un archivo sidecar XMP. En cuanto a exportar para usar en otro lugar, no sé sobre el uso entre aplicaciones, pero ciertamente en Lightroom, puede tomar todas las configuraciones que se han aplicado a un archivo RAW, copiarlas y aplicarlas a otro...
También puede crear instantáneas de versión de Fotos en Lightroom. Estos casi no ocupan espacio (ya que es solo una copia de los metadatos). Creo que el atajo es Cmd+T.
Además del registro del historial, Lightroom le permite crear una "instantánea", que le permite asignar una etiqueta a la configuración de desarrollo actual y volver a ella fácilmente. Algo así como el etiquetado en SVN. lightroomkillertips.com/2009/whats-a-lightroom-snapshot Algunas herramientas, como los complementos de Jeffrey Friedl, se pueden configurar para crear automáticamente una instantánea siempre que exporte a servicios como Flickr. regex.info/blog/lightroom-goodies [Escribí esto simultáneamente con fzwo... perdón por cualquier redundancia con su comentario.]
Si desea una funcionalidad de control de versión completa, puede simplemente controlar la fuente de los archivos sidecar como cualquier otro archivo (son un texto marcado internamente). Entonces no está restringido a la historia, sino que puede hacer "ramas" con tipos de efectos completamente diferentes, si lo desea. El software debería permitirle aplicar un nuevo archivo sidecar a cualquier imagen RAW dada, al menos la mía lo hace.
Las copias virtuales en Lightroom son algo análogas a la bifurcación en un sistema de control de versiones. escuela-de-fotografia-digital.com/…
Solo me refiero a la mención de @mike de usar SVN como un repositorio para tus fotos: sí, eso funcionaría... Cualquier sistema de control de versiones funcionaría... es solo encontrar uno que funcione bien para los fotógrafos...
Tenga en cuenta que Aperture no tiene la lista de historial, pero puede duplicar versiones en cualquier momento (igual que Snapshot) para controlar versiones con diferentes ajustes.

Cambios virtuales

Uso Lightroom v3 y este producto tiene un flujo de trabajo no destructivo. Esto me permite hacer cambios a mi(s) imagen(es) en un sentido virtual.

Control de versiones

Luego uso SVN para mantener el control del catálogo de Lightroom (solo una base de datos SQLite simple) y esto esencialmente me da control de versión sobre los cambios virtuales.

Redundancia

Tengo una configuración RAID 6 que contiene los medios para la redundancia y un ciclo de unidades USB como un sistema de respaldo rotativo.


Si bien esto puede no funcionar para todos, funciona para mí. Además, me permite usar varias máquinas y tener el mismo catálogo de LR (usando el ciclo de confirmación/actualización de svn).

Extraído de la publicación del blog Aquí :

Tengo Lightroom en un par de computadoras con un servidor basado en RAID 6 y he estado luchando sobre cómo sincronizar todo para hacer mi vida más fácil entre máquinas.

¡Después de algunas decisiones, ahora he movido mis fotos a \server\share y el catálogo se rastrea a través de subversion! Esto hace que todo sea mucho más fácil entre máquinas.

Lo que he hecho es crear un repositorio que contiene el catálogo de Lightroom. He agregado una excepción para no incluir los archivos de vista previa ya que Subversion tiene algunos problemas con ellos.

Ahora mis pasos son los siguientes:

Update subversion
Run Lightroom
Import pictures
Move images between local drive import and the media file share
Make any required changes
Exit lightroom
Commit catalog
That's it!
Enfriar. Entonces, su servidor SVN solo contiene el catálogo, y su servidor de archivos contiene las imágenes reales... ¿y el catálogo apunta a los archivos en el servidor? ¿correcto? Podría probar esto.
@TiernanO - Correcto. Así es como configuré mi infraestructura/flujo de trabajo
Eso es genial. Actualmente estoy importando alrededor de 200 Gb de fotos ahora en un solo catálogo de Lightroom, y comenzaré a jugar con esta idea... ¡espero que haga lo que necesito que haga! ¡Gracias por el consejo!
@Tierno: deberías estar de acuerdo con eso. Creo que cualquier límite experimentado estará relacionado con las restricciones de SQLite que, como desarrollador, estoy seguro de que puede investigar. (FYI: SQLite Manager para Firefox funciona muy bien al mirar este catálogo)
@TiernanO: estaría interesado en saber si esto realmente funcionó para usted como lo ha hecho para mí
+1 Esta es la única forma práctica que he encontrado para usar Lightroom de manera sostenible. Brinda seguridad contra la corrupción del catálogo y le permite usar el mismo catálogo desde diferentes máquinas. No puede fusionarse usando el sistema de control de revisión ), pero puede exportar e importar catálogos que, creo, lo acercan lo más posible a Lightroom multiusuario simultáneo.

Creo que es posible que desee usar git-annex (para administrar fotos y copias de seguridad) junto con un control remoto bup (para control de versiones). Actualmente lo estoy investigando yo mismo.

git-annex realiza un seguimiento de sus archivos usando git, al enviar enlaces simbólicos a sus archivos. Los archivos en sí no se agregan al repositorio. Una vez que sus fotos estén "anexas", si clona su repositorio (en un disco duro externo, por ejemplo), puede pedirle al clon que recupere los archivos (o parte de ellos) asociados con el repositorio en el disco duro. git-annex realiza un seguimiento de qué repositorio tiene una copia de cada archivo. De esta manera, puede dividir una copia de seguridad en dos discos duros pequeños y asegurarse de que no se haya olvidado ninguna foto.

Digamos que estás de viaje. Ha tomado fotos que se copian en su computadora portátil. Puede clonar el repositorio git que está en su servidor ssh en casa, sincronizarlo, agregar sus fotos locales a git-annex a su colección y enviar los cambios a su servidor. Luego, empujas los archivos mismos.

git-annex realiza un seguimiento de los cambios en su colección, pero solo conserva la última versión de sus fotos. Para el control de versiones de archivos, puede agregar un control remoto bup especial a su repositorio de git-annex. Todavía no lo he investigado porque no estoy seguro de que lo necesite, pero debería hacer lo que usted quiere. Ver esto o esto .

Edité mi respuesta.
Además, el desarrollador detrás de git-annex actualmente está realizando un kickstarter para facilitar las cosas a los menos inclinados técnicamente.

Uso Lightroom para editar imágenes y mantener un historial de versiones. Si está buscando usar Photoshop, el control de versiones está casi integrado: Adobe Drive y Version Cue. Creo que Version Cue es solo una parte de Creative Suite, FYI.

Pixel Novel se conectará a Photo Shop y funciona con cualquier servidor de Subversion que ya tenga o creo que puede comprarles un repositorio.

http://pixelnovel.com/

Lo llaman "Control de versiones para diseñadores"

Utilizo Photoshop y Adobe Camera Raw en lugar de Lightroom, por lo que uso el control de versiones para los archivos XMP que almacenan mis configuraciones de conversión sin procesar para realizar un seguimiento de los cambios. Esto funciona muy bien ya que los archivos XMP son solo XML. Es útil hacer primero todas las correcciones de color, revisar los archivos XMP y luego hacer cualquier recorte a relaciones de aspecto no estándar. De esa manera, puedo volver rápidamente a una versión sin recortar si necesito imprimir imágenes en el aspecto original de 3x2.

Sé que Photoshop tiene su propio sistema de seguimiento de revisión incorporado, pero se trata de usar herramientas que conozco mejor. Hay otras herramientas de codificación que son útiles, como scripts de compilación/automatización de compilación. Puedo, por ejemplo, emitir un solo comando para "crear" un conjunto de fotos utilizando archivos XMP sin recortar destinados a la impresión que convertirán el proceso, cambiarán el nombre y generarán todas las imágenes de un conjunto. ¡Es realmente fácil si ya sabes cómo hacerlo por software!

Puede agregar archivos binarios a un repositorio, pero esto requiere mucho almacenamiento y no obtiene ninguna información útil sobre diferencias al comparar diferentes versiones.

Esto es para conversiones sin procesar regulares, configuración de exposición, balance de color, etc. Para trabajos de Photoshop más complicados, hago todo lo que puedo de forma no destructiva con capas de ajuste y filtros inteligentes, pero aún no he llegado al punto en que puedo hacer todo. de forma no destructiva, así que por el momento solo guardo varias versiones del archivo .PSD.

también puede configurar Lightroom para que use archivos XMPP... Lo usé antes y funciona muy bien.

También soy desarrollador de software e intenté usar Git y SVN para RAW y XMP grandes solo por la capacidad de sincronizar mis imágenes entre unidades extraíbles y versionar los XMP. Era insoportablemente lento y se hizo más lento con el tiempo a medida que agregaba más archivos. También uso Lightroom para la historia, así que volví a rsync.

Ahora, también estoy investigando git-annex y hasta ahora es agradable y rápido. También tiene el beneficio adicional de verificar la suma de cada archivo RAW, para que pueda ver si un HD defectuoso ha estropeado sus imágenes desde la importación. Este es un gran beneficio para mí, ya que puedo probar mis copias de seguridad para asegurarme de que no se hayan degradado debido a copias/descomposición de bits. Planeo versionar solo los XMP y anexar los RAW. git-annex puede hacer el trabajo preliminar de saber dónde están las cosas, y puedo estar seguro de que todo está en mi servidor haciendo una copia de seguridad y tener una copia de trabajo en mi computadora portátil si lo deseo.

También puede tener un control remoto de Amazon Glacier, así que lo he leído, pero aún no lo he probado.

Echa un vistazo a nuestro Damion. Este es un software de administración de fotos (amigable para múltiples usuarios) que admite el control de versiones para sus fotos archivadas y otros formatos de medios.

Control de versiones de Damion

La versión de Daminion para un solo usuario es gratuita, así que puedes descargarla y comprobarla ahora mismo .

Hola Murat! Ya llevas un tiempo en el mundo y tus publicaciones en Daminion son generalmente sobre un tema y útiles, e incluyen el descargo de responsabilidad de afiliación adecuado. Pero no puedo dejar de notar que todas sus respuestas sugieren probar Daminion y, de las preguntas frecuentes : "Si un gran porcentaje de sus publicaciones incluye una mención de su producto o sitio web, probablemente esté aquí por las razones equivocadas". ." Considere escribir algunas respuestas para preguntas no relacionadas con su producto.
Gracias por la explicación, Mat. No hay problema. Pero como notaron correctamente, todas mis publicaciones brindan respuestas útiles a las preguntas.

No uso, y probablemente nunca usaré el control de versiones de código fuente como Git o SVN debido al gran tamaño de los archivos involucrados. Cada archivo sin procesar tiene entre 20 y 30 MB y los cambios a menudo tocan cada píxel de la imagen completa, lo que reduce la efectividad de simplemente "seguir los cambios".

Para una sola imagen, podría ver fácilmente un repositorio SVN de 200 MB en lugar de quizás 60 MB si solo guardara una copia del original y una copia de la imagen final.

si está utilizando archivos RAW, no debería cambiar la imagen RAW real, solo el sidecar XMP. Si está cambiando la imagen RAW, GIT solo guarda los cambios, no el archivo completo... GIT puede no ser la mejor opción (SVN tampoco) para esto, ya que son archivos grandes, pero hay algunas opciones que funcionan bien para archivos grandes...

Aquí hay un enchufe para Apple Aperture. La belleza de Aperture es que tiene aproximadamente el 95% de la funcionalidad de Photoshop que desean los fotógrafos (no se puede hacer texto llameante con él, bostezo), y que la edición está controlada por versiones de una manera muy ligera.

Esto funciona con JPEG y otros formatos de imagen, así como con formato RAW.

Incluso puede hacer un "viaje de ida y vuelta" con editores externos, como Photoshop, pero estos necesariamente guardan una copia completa de la imagen, en lugar de un filtro ligero que se aplica a una imagen maestra.

Hay una buena discusión sobre esto aquí: https://www.impulseadventure.com/photo/flow-catalog-versions.html

Existen diferencias significativas entre el repositorio de código y la imagen DAM.

  1. El uso de imágenes tiende a ser un árbol de múltiples ramas. Si bien tiene ramas en el código, el objetivo generalmente es minimizarlas. En el uso de imágenes puedes terminar con situaciones como esta

Maestro

--- Recortado y afilado.

--- --- Resolución reducida para Facebook

--- --- Miniatura grande para galería

--- --- Miniatura mediana para galería

--- --- Miniatura pequeña para la galería.

--- --- Versión grande con marca de agua para galería

--- --- --- Versión en blanco y negro con marca de agua

--- --- --- Versión en blanco y negro

--- --- Cosecha especial para cliente.

--- --- Cast de color ajustado para diferentes clientes

(Hice una página web donde cada imagen tenía 18 resoluciones diferentes).

  1. El código tiende a tener pequeñas diferencias entre versiones. En un registro típico, solo cambia un pequeño porcentaje del código. En una imagen, la mayoría de los píxeles cambian un poco, y el ahorro de espacio al almacenar solo los cambios es pequeño.

  2. En un repositorio de código, le preocupan los cambios de nivel de bits. Una línea de código aquí, el valor de una constante allá. En la manipulación de imágenes, un historial de los pasos que realizó es más significativo.

  3. El trabajo de imagen tiende a ser mucho menos colaborativo que el código. Si bien los artistas gráficos pueden tomar una imagen existente y superponer ilustraciones gráficas sobre ella, la mayoría de las imágenes son administradas por una sola persona a lo largo de su vida útil. (Esto es diferente en video/película).

  4. En software el nivel fundamental es el proyecto . Un solo archivo de clase no significa mucho sin el resto del proyecto. En el procesamiento de imágenes la imagen es la unidad fundamental. Puedes pasarte toda la vida trabajando en un solo proyecto de software (Microsoft Word...) En fotografía rara vez dedicas más de unos minutos a una imagen.

  5. En el software, la tarea importante es poder realizar un seguimiento de los cambios y volver a una versión anterior. En el procesamiento de imágenes, la tarea importante es poder encontrar esa imagen y sus derivados en una fecha posterior.