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


34

Soy un desarrollador de software en el fondo y por oficio, y paso mucho tiempo en 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
  • Comienza a trabajar en el archivo
  • Registre el archivo (cree una versión 1)
  • Abra el archivo y edite nuevamente
  • Vuelva a registrarse (versión 2)
  • Darse cuenta de que eliminó algo importante de la versión 1, retroceder en el tiempo, obtener lo que eliminó ...
  • ...
  • 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 (los carros laterales V2 ... XMP solo deberían cambiar aquí).
  • Comience a agregar estrellas, más etiquetas (V3)
  • Comience a ajustar algunas configuraciones (V4 +)

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

Respuestas:


32

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

Cuando edita un archivo RAW en estos, nunca se realizan cambios en la imagen original. En cambio, 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 manera no destructiva.

Si solo está utilizando Photoshop, 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 razón para que no pueda usar un repositorio SVN para fotos, es decir, ¿archivos binarios?)


1
Lightroom mantiene el historial de una sesión de edición, pero ¿persiste ese historial si cierra Lightroom y vuelve a abrir la imagen del catálogo en una fecha posterior? Sé que siempre tiene el archivo RAW original, pero ¿puede obtener arbitrariamente una versión entre el original y el último en cualquier momento?
MikeW

2
¡Sí! La única vez que se eliminaría es si elimina la imagen del catálogo y la vuelve a agregar. Entonces comenzarías desde cero. Pero por lo demás, la historia se mantiene.
Mike

Digikam proporciona la misma funcionalidad de instrucciones.
Unapiedra

44
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. Una especie de etiquetado similar 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 cada vez que exporta a servicios como Flickr. regex.info/blog/lightroom-goodies [escribí esto simultáneamente con fzwo ... perdón por cualquier redundancia con su comentario.]
coneslayer

2
Si desea la funcionalidad de control de versión completa, puede simplemente controlar los archivos de sidecar como cualquier otro archivo (son un texto marcado internamente). Entonces no está restringido a la historia, pero puede hacer "ramas" con tipos de efectos completamente diferentes, si así lo desea. El software debería permitirle aplicar un nuevo archivo de sidecar a cualquier imagen RAW, al menos la mía.
rumtscho

8

Cambios virtuales

Uso Lightroom v3 y este producto tiene un flujo de trabajo no destructivo. Esto me permite hacer cambios en mis imágenes en un sentido virtual.

Control de versiones

Luego uso SVN para mantener el control del Catálogo de Lightroom (solo un simple SQLite DB) y esto esencialmente me da control de la 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 svn commit / update).

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 al \ server \ share y se realiza un seguimiento del catálogo 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!

Guay. 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

@TiernanO - Correcto. Así es como configuré mi infraestructura / flujo de trabajo
Wayne

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!
TiernanO

@Tierno - Deberías estar de acuerdo con eso. Creo que los límites experimentados van a estar alrededor de las restricciones de SQLite que, como desarrollador, estoy seguro de que puedes investigar. (FYI: SQLite Manager para Firefox funciona muy bien al mirar este catálogo)
Wayne

@TiernanO - Estaría interesado en saber si esto realmente funcionó para usted como lo ha hecho para mí
Wayne

4

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

git-annex realiza un seguimiento de sus archivos mediante git, mediante la confirmación de enlaces simbólicos a sus archivos. Los archivos en sí no se agregan al repositorio. Una vez que sus fotos están "anexadas", 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 forma, 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 se encuentra en su servidor ssh en casa, sincronizarlo, agregar sus fotos locales a git-annex a su colección y enviar los cambios nuevamente a su servidor. Luego, empujas los archivos ellos mismos.

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


edité mi respuesta.
barsanuphe

Además, el desarrollador detrás de git-annex actualmente tiene un pedal de arranque para facilitar las cosas a los menos inclinados técnicamente.
barsanuphe

2

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.


2

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

http://pixelnovel.com/

Lo llaman "Control de versiones para diseñadores"


2

Utilizo Photoshop y Adobe Camera Raw en lugar de Lightroom, así que utilizo el control de versiones para los archivos XMP que almacenan mis configuraciones de conversión sin formato para rastrear los cambios. Esto funciona realmente bien ya que los archivos XMP son solo XML. Es útil hacer primero todas las correcciones de color, verificar los archivos XMP y luego hacer cualquier recorte a relaciones de aspecto no estándar. De esa forma, 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 revisiones incorporado, pero se trata de utilizar herramientas que conozco mejor. Hay otras herramientas de codificación que son útiles, como los scripts de compilación / automatización de compilación. Por ejemplo, puedo emitir un solo comando para "construir" un conjunto de fotos usando archivos XMP sin recortar destinados a la impresión que convertirán el cambio de nombre del proceso y generarán todas las imágenes de un conjunto. ¡Es realmente fácil si ya sabes cómo hacerlo para el software!

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

Esto es para conversiones en bruto regulares, configuración de exposición, balance de color, etc. Para un trabajo de Photoshop más complicado, 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 el que pueda hacer todo de manera no destructiva, por el momento solo guardo varias versiones del archivo .PSD.


puedes configurar lightroom para usar archivos XMPP también ... lo usé antes y funciona de maravilla.
TiernanO

2

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

Ahora, también estoy buscando en git-annex y hasta ahora es agradable y rápido. También tiene el beneficio adicional de sumar la suma de comprobación de cada archivo RAW, para que pueda ver si un disco duro malo 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 a través de copias / putrefacción de bits. Planeo versionar solo los XMP y anexar los RAW. git-annex puede hacer el trabajo de saber dónde están las cosas, y puedo estar seguro de que todo está en mi servidor haciendo una copia de seguridad, así como tener una copia de trabajo en mi computadora portátil si lo deseo.

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


1

Echa un vistazo a nuestra Daminion. 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.

Daminion Version Control

La versión Daminion para un solo usuario es gratuita, por lo que puede descargarla y verificarla ahora mismo .


14
Hola murat Has estado presente por un tiempo, y tus publicaciones en Daminion son generalmente sobre temas y útiles, e incluyen el descargo de responsabilidad apropiado de afiliación. Pero no puedo evitar notar que todas sus respuestas sugieren probar Daminion y, según 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 ". Por favor considere escribir algunas respuestas a preguntas no relacionadas con su producto.
mattdm

Gracias por la explicación, Matt. No hay problema. Pero como notó correctamente, todas mis publicaciones proporcionan respuestas útiles a las preguntas.
Murat - Daminion Software

0

No lo hago, y probablemente nunca usaré el control de versión de origen como Git o SVN debido al gran tamaño de los archivos involucrados. Cada archivo sin procesar tiene un tamaño de 20-30 MB y los cambios a menudo tocan cada píxel de la imagen completa, lo que reduce la efectividad de simplemente "rastrear 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.


3
si está utilizando archivos RAW, no debería cambiar la imagen RAW real, solo el automóvil lateral 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 ...
TiernanO

0

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 un texto llameante con él, bostezar), y que la edición se controla de forma 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 liviano que se aplica a una imagen maestra.


0

Aquí hay una buena discusión sobre esto: 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 varias ramas. Si bien tiene ramas en el código, el objetivo generalmente es minimizarlas. En el uso de imágenes, puede terminar con situaciones como esta

Dominar

--- Recortada y afilada.

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

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

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

--- --- Pequeña miniatura 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

--- --- Cultivo especial para cliente.

--- --- 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 un pequeño porcentaje del código cambia. En una imagen, la mayoría de los píxeles cambian un poco, y el ahorro de espacio al almacenar solo cambios es pequeño.

  2. En un repositorio de código, le interesan los cambios en el 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 aplicar una capa de arte gráfico sobre ella, la mayoría de las imágenes son administradas por una 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 archivo de una sola clase no significa mucho sin el resto del proyecto. En el procesamiento de imágenes, la imagen es la unidad fundamental. Puede pasar toda su vida trabajando en un solo proyecto de software (Microsoft Word ...) En fotografía, rara vez pasa más de unos minutos en 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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.