Il software di controllo versione è utilizzato per le foto?


34

Sono uno sviluppatore di software nel cuore e nel commercio e dedico molto tempo agli strumenti di sviluppo ... Uno dei tipi di strumenti di sviluppo più utili è il controllo della versione e, per i non iniziati, funziona come segue:

  • Crea un file
  • Inizia a lavorare sul file
  • Controlla nel file (creane una versione 1)
  • Apri il file e modificalo di nuovo
  • Effettua nuovamente il check-in (versione 2)
  • Realizza di aver eliminato qualcosa di importante dalla versione 1, torna indietro nel tempo, ottieni ciò che hai eliminato ...
  • ...
  • Profitto...

Ad ogni modo, mi chiedo se qualcosa di simile viene utilizzato con le foto? In sostanza, stavo pensando a qualcosa del genere:

  • Importa foto (V1).
  • Inizia a taggare le foto (V2 ... Le auto laterali XMP dovrebbero davvero cambiare qui).
  • Inizia ad aggiungere stelle, più tag (V3)
  • Inizia a regolare alcune impostazioni (V4 +)

Con il flusso sopra, dovresti essere in grado di tracciare molte più modifiche ... e darti una sorta di strategia di backup ...

Risposte:


32

Le applicazioni per il flusso di lavoro fotografico come Adobe Lightroom e Aperture di Apple forniscono questo tipo di storia come parte integrante della loro funzionalità.

Quando si modifica un file RAW in questi, non vengono mai apportate modifiche all'immagine originale. Invece, vengono salvati separatamente come 'istruzioni'. Pertanto, è possibile visualizzare una cronologia di tutte le modifiche apportate e, con un clic del mouse, tornare a qualsiasi punto precedente nel tempo in modo non distruttivo.

Se stai semplicemente usando Photoshop, questo non accade e dovresti salvare manualmente diverse versioni della tua foto prima di lavorarci ogni volta.

(Immagino non ci sia motivo per cui non è possibile utilizzare un repository SVN per le foto ?? cioè. File binari?)


1
Lightroom conserva la cronologia di una sessione di modifica, ma tale cronologia persiste se chiudi Lightroom e riapri l'immagine dal catalogo in un secondo momento? So che hai sempre il file RAW originale, ma puoi ottenere arbitrariamente una versione tra l'originale e l'ultima in qualsiasi momento?
MikeW

2
Sì! L'unica volta che verrebbe eliminata è se elimini l'immagine dal catalogo e la aggiungi nuovamente. Quindi inizieresti da zero. Ma per il resto, la storia viene mantenuta.
Mike,

Digikam offre la stessa funzionalità delle istruzioni.
Unapiedra,

4
Oltre al registro cronologico, Lightroom ti consente di creare uno "snapshot" che ti consente di assegnare un'etichetta alle impostazioni di sviluppo correnti e di ripristinarla facilmente. Una specie di tag simile in SVN. lightroomkillertips.com/2009/whats-a-lightroom-snapshot Alcuni strumenti, come i plugin di Jeffrey Friedl, possono essere configurati per creare automaticamente un'istantanea ogni volta che esporti in servizi come Flickr. regex.info/blog/lightroom-goodies [L'ho scritto contemporaneamente con fzwo ... scusate per la ridondanza con il suo commento.]
Coneslayer

2
Se si desidera la funzionalità di controllo della versione completa, è possibile controllare i file sidecar semplicemente come qualsiasi altro file (sono un testo di markup internamente). Quindi non sei limitato alla storia, ma puoi creare "rami" con tipi di effetti completamente diversi, se lo desideri. Il software dovrebbe consentire di applicare un nuovo file sidecar a qualsiasi immagine RAW, almeno la mia.
Rumtscho,

8

Modifiche virtuali

Uso Lightroom v3 e questo prodotto ha un flusso di lavoro non distruttivo. Ciò mi consente di apportare modifiche alle mie immagini in modo virtuale.

Controllo versione

Quindi utilizzo SVN per mantenere il controllo del Catalogo Lightroom (solo un semplice DB SQLite) e questo mi dà essenzialmente il controllo della versione sulle modifiche virtuali.

Ridondanza

Ho una configurazione RAID 6 che contiene i supporti per ridondanza e un ciclo di unità USB come sistema di backup rotazionale.


Anche se questo potrebbe non funzionare per tutti, funziona per me. Inoltre mi permette di usare diverse macchine e avere lo stesso catalogo LR (usando il ciclo svn commit / update).

Estratto dal post sul blog qui :

Ho Lightroom su un paio di computer con un server basato su RAID 6 e ho lottato su come sincronizzare tutto per semplificarmi la vita tra le macchine.

Dopo alcune decisioni, ora ho spostato le mie foto in \ server \ share e il catalogo viene monitorato tramite sovversione! Questo rende tutto molto più semplice tra le macchine.

Quello che ho fatto è stato creato un repository che contiene il catalogo Lightroom. Ho aggiunto un'eccezione per non includere i file di anteprima in quanto la sovversione presenta alcuni problemi.

Ora i miei passi sono i seguenti:

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!

Freddo. Quindi, il tuo server SVN contiene solo il catalogo e il tuo file server contiene le immagini reali ... e il catalogo punta ai file sul server? corretta? Potrebbe provare questo.
Tiernan,

@TiernanO - Corretto. È così che ho impostato la mia infrastruttura / flusso di lavoro
Wayne,

questo è figo. Attualmente sto importando circa 200 GB di foto in un unico catalogo di Lightroom e inizierò a giocare con questa idea ... speriamo che faccia quello che mi serve! Grazie per il consiglio!
Tiernan,

@Tierno - Dovresti essere d'accordo. Credo che qualsiasi limite sperimentato riguarderà i vincoli di SQLite che come sviluppatore sono sicuro di poter ricercare. (FYI: SQLite Manager per Firefox funziona benissimo nel guardare questo catalogo)
Wayne,

@TiernanO - Sarebbe interessato a sapere se questo ha davvero funzionato per te come ha fatto per me
Wayne

4

Penso che potresti voler usare git-annex (per gestire foto e backup) insieme a un telecomando bup (per il versioning). Attualmente sto esaminando me stesso in realtà.

git-annex tiene traccia dei tuoi file usando git, impegnando collegamenti simbolici ai tuoi file. I file stessi non vengono aggiunti al repository. Una volta "allegate" le foto, se si clona il repository (ad esempio su un disco rigido esterno), è possibile chiedere al clone di recuperare i file (o parte di essi) associati al repository sul disco rigido. git-annex tiene traccia di quale repository ha una copia di ogni file. In questo modo è possibile dividere un backup su due piccoli dischi rigidi e assicurarsi che nessuna foto sia stata dimenticata.

Di 'che sei in viaggio. Hai scattato foto che sono state copiate sul tuo laptop. Puoi clonare il repository git che si trova sul tuo server ssh a casa, sincronizzarlo con esso, aggiungere le tue foto locali a git-annex alla tua raccolta e inviare le modifiche al tuo server. Quindi, spingi i file stessi.

git-annex tiene traccia delle modifiche nella tua raccolta, ma conserva solo l'ultima versione delle tue foto. Per il versioning dei file puoi aggiungere un telecomando bup speciale al tuo repository git-annex. Non l'ho ancora esaminato perché non sono sicuro di averne bisogno, ma dovrebbe fare quello che vuoi. Vedi questo o questo .


modificato la mia risposta.
Barsanuphe,

inoltre, lo sviluppatore dietro git-annex è attualmente in possesso di un kickstarter per rendere le cose più facili per i meno tecnicamente inclini.
Barsanuphe

2

Uso Lightroom per eseguire l'editing delle immagini e mantenere una cronologia delle versioni. Se stai cercando di usare Photoshop, il controllo della versione è quasi integrato: Adobe Drive e Version Cue. Penso che Version Cue sia solo una parte della Creative Suite, FYI.


2

Pixel Novel si collegherà a Photo Shop e funzionerà con qualsiasi server Subversion che hai già o penso che tu possa acquistare un repository da loro.

http://pixelnovel.com/

Lo chiamano "Controllo della versione per i progettisti"


2

Uso Photoshop e Adobe Camera Raw anziché Lightroom, quindi utilizzo il controllo versione per i file XMP che sottolineano le mie impostazioni di conversione non elaborate per tenere traccia delle modifiche. Funziona davvero bene dato che i file XMP sono solo XML. È utile eseguire prima tutte le correzioni del colore, controllare i file XMP e quindi eseguire il ritaglio in proporzioni non standard. In questo modo posso tornare rapidamente a una versione non ritagliata se devo stampare immagini nell'aspetto 3x2 originale.

So che Photoshop ha il suo sistema di tracciamento delle revisioni integrato, ma è un caso di utilizzo di strumenti che conosco meglio. Esistono altri strumenti di codifica che sono utili come script di compilazione / automazione di compilazione. Ad esempio, posso emettere un singolo comando per "costruire" un set di foto utilizzando i file XMP non ritagliati destinati alla stampa che convertiranno la rinomina del processo e produrranno tutte le immagini da un set. È davvero facile se sai già come farlo per il software!

È possibile aggiungere file binari a un repository, ma ciò richiede molta memoria e non si ottengono utili informazioni diff quando si confrontano versioni diverse.

Questo è per conversioni grezze regolari, impostazione di esposizione, bilanciamento del colore, ecc. Per lavori di Photoshop più coinvolti faccio il più possibile in modo non distruttivo con livelli di regolazione e filtri intelligenti, ma non sono ancora arrivato al punto in cui posso fare tutto in modo non distruttivo, per il momento ho appena salvato diverse versioni del file .PSD.


puoi impostare lightroom per usare anche i file XMPP ... l'ho usato prima e funziona alla grande.
Tiernan,

2

Sono anche uno sviluppatore di software e ho provato a utilizzare Git e SVN per RAW e XMP di grandi dimensioni solo per la possibilità di sincronizzare le mie immagini tra unità rimovibili e versione XMP. È stato insopportabilmente lento e è diventato più lento nel tempo quando ho aggiunto più file. Uso anche Lightroom per la cronologia, quindi sono tornato a rsync.

Ora sto anche esaminando git-annex e finora è bello e veloce. Ha anche l'ulteriore vantaggio di eseguire il checksum di ogni file RAW, in modo da poter vedere se un HD difettoso ha incasinato le immagini dall'importazione. Questo è un grande vantaggio per me, in quanto posso testare i miei backup per assicurarmi che non si siano degradati a causa di copie / bit rot. Ho in programma il controllo delle versioni degli XMP e l'annessione dei RAW. git-annex può fare il lavoro di base per sapere dove sono le cose, e posso essere sicuro che tutto sia sul mio server di cui si sta eseguendo il backup e se ne ho una copia funzionante sul mio laptop.

Puoi anche avere un telecomando Amazon Glacier, quindi ho letto, ma non l'ho ancora provato.


1

Dai un'occhiata al nostro Daminion. Questo è un software di gestione delle foto (multi-user friendly) che supporta il controllo della versione per le tue foto archiviate e altri formati multimediali.

Controllo versione Daminion

La versione Daminion per singolo utente è gratuita, quindi puoi scaricarla e controllarla subito .


14
Ciao Murat! Sei in giro da un po 'di tempo, e i tuoi post su Daminion sono generalmente in argomento e utili e includono la corretta dichiarazione di non responsabilità dell'affiliazione. Ma non posso fare a meno di notare che tutte le tue risposte suggeriscono di provare Daminion e, dalle FAQ : "Se un'enorme percentuale dei tuoi post include una menzione del tuo prodotto o sito Web, probabilmente sei qui per motivi sbagliati ". Si prega di considerare di scrivere alcune risposte per domande non correlate al prodotto.
Mattdm,

Grazie per la spiegazione, Matt. Nessun problema. Ma come hai notato correttamente tutti i miei post forniscono risposte utili alle domande.
Murat - Daminion Software,

0

Non lo so, e probabilmente non userò mai il controllo della versione del codice sorgente come Git o SVN a causa della mera dimensione dei file coinvolti. Ogni file non elaborato ha una dimensione di 20-30 MB e le modifiche spesso toccano tutti i pixel dell'intera immagine, riducendo l'efficacia del solo "tracciamento delle modifiche".

Per una singola immagine potrei facilmente vedere un repository SVN da 200 MB anziché forse 60 MB se solo per salvare una copia dell'originale e una copia dell'immagine finale.


3
se stai usando file RAW, non dovresti cambiare l'immagine RAW effettiva, ma solo una macchina laterale XMP. Se stai modificando l'immagine RAW, GIT salva solo le modifiche, non l'intero file ... GIT potrebbe non essere l'opzione migliore (SVN) per questo dato che sono file di grandi dimensioni, ma ci sono alcune opzioni che funzionano bene per file di grandi dimensioni ...
TiernanO,

0

Ecco una spina per Apple Aperture. Il bello di Aperture è che ha circa il 95% delle funzionalità di Photoshop che i fotografi desiderano (non è possibile creare testi fiammeggianti con esso, sbadiglio) e che la modifica è controllata dalla versione in modo molto leggero.

Funziona con JPEG e altri formati di immagine, oltre al formato RAW.

Puoi persino fare un "round trip" con editor esterni, come Photoshop, ma questi necessariamente salvano un'intera copia dell'immagine, piuttosto che un filtro leggero che viene applicato a un'immagine master.


0

C'è una buona discussione di questo qui: https://www.impulseadventure.com/photo/flow-catalog-versions.html

Esistono differenze significative tra il repository di codice e l'immagine DAM.

  1. L'uso dell'immagine tende ad essere un albero multi-ramo. Mentre hai rami nel codice, l'obiettivo è di solito minimizzarli. Nell'uso delle immagini puoi finire con situazioni come questa

Maestro

--- Ritagliato e affilato.

--- --- Risoluzione ridotta per Facebook

--- --- Miniatura grande per galleria

--- --- Miniatura media per galleria

--- --- Piccola anteprima per la galleria.

--- --- Versione grande con filigrana per galleria

--- --- --- Versione in bianco e nero con filigrana

--- --- --- Versione in bianco e nero

--- --- Ritaglio speciale per il cliente.

--- --- Cast di colore modificato per client diversi

(Ho fatto una pagina web dove ogni immagine aveva 18 risoluzioni diverse.)

  1. Il codice tende ad avere piccole differenze tra le versioni. In un check-in tipico solo una piccola percentuale delle modifiche al codice. In un'immagine la maggior parte dei pixel cambia, e il risparmio di spazio dalla memorizzazione delle sole modifiche è ridotto.

  2. In un repository di codice ti preoccupi delle modifiche a livello di bit. Una riga di codice qui, il valore di una costante lì. Nella manipolazione delle immagini una storia dei passi che hai fatto è più significativa.

  3. Il lavoro sull'immagine tende ad essere molto meno collaborativo del codice. Mentre gli artisti grafici possono acquisire un'immagine esistente e sovrapporre la grafica alla stessa, la maggior parte delle immagini è gestita da una persona per tutta la sua durata. (Questo è diverso in video / film.)

  4. Nel software il livello fondamentale è il progetto Un file di una sola classe non significa molto senza il resto del progetto. Nell'elaborazione dell'immagine l'immagine è l'unità fondamentale. Puoi passare tutta la vita a lavorare su un singolo progetto software (Microsoft Word ...) Nella fotografia raramente trascorri più di qualche minuto su un'immagine.

  5. Nel software il compito importante è quello di essere in grado di tenere traccia delle modifiche e ripristinare una versione precedente. Nell'elaborazione delle immagini l'importante compito è riuscire a trovare quell'immagine e i suoi derivati ​​in un secondo momento.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.