O software de controle de versão é usado para fotos?

34

Sou um desenvolvedor de software no coração e no comércio, e passo muito tempo em ferramentas de desenvolvimento ... Um dos tipos de ferramentas de desenvolvimento mais úteis é o controle de versão e, para os não iniciados, funciona da seguinte maneira:

  • Crie um arquivo
  • Comece a trabalhar no arquivo
  • Faça o check-in no arquivo (crie uma versão 1)
  • Abra o arquivo e edite novamente
  • Faça o check-in novamente (versão 2)
  • Perceba que você excluiu algo importante da versão 1, volte no tempo, obtenha o que excluiu ...
  • ...
  • Lucro...

Enfim, eu estou querendo saber se algo semelhante é usado com fotos? Basicamente, eu estava pensando em algo como:

  • Importar fotos (V1).
  • Comece a marcar fotos (os carros laterais V2 ... XMP só devem realmente mudar aqui).
  • Comece a adicionar estrelas e mais tags (V3)
  • Comece a ajustar algumas configurações (V4 +)

Com o fluxo acima, você poderá acompanhar muito mais alterações ... e fornecer algum tipo de estratégia de backup ...

TiernanO
fonte

Respostas:

32

Aplicativos de fluxo de trabalho fotográfico, como o Adobe Lightroom e o Aperture da Apple, fornecem esse tipo de histórico como parte integrante de sua funcionalidade.

Quando você edita um arquivo RAW neles, nenhuma alteração é feita na imagem original. Em vez disso, eles são salvos como 'instruções' separadamente. Assim, você pode ver um histórico de todas as alterações feitas e, com um clique do mouse, voltar a qualquer ponto anterior no tempo de maneira não destrutiva.

Se você estiver usando apenas o Photoshop, isso não acontecerá e você terá que salvar manualmente versões diferentes da sua foto antes de trabalhar nela todas as vezes.

(Acho que não há razão para que você não possa usar um repositório SVN para fotos, por exemplo. Arquivos binários?)

Mike
fonte
11
O Lightroom mantém o histórico de uma sessão de edição, mas esse histórico persiste se você fechar o Lightroom e reabrir a imagem do catálogo posteriormente? Sei que você sempre tem o arquivo RAW original, mas você pode obter arbitrariamente uma versão entre o original e a mais recente a qualquer momento?
MikeW
2
Sim! A única vez que ela seria excluída é se você excluir a imagem do catálogo e adicioná-la novamente. Então você estaria começando do zero. Mas, caso contrário, a história é mantida.
1515 Mike
O Digikam fornece a mesma funcionalidade de instruções.
Unapiedra
4
Além do log do histórico, o Lightroom permite criar um "instantâneo", que permite atribuir um rótulo às configurações de desenvolvimento atuais e voltar a ele com facilidade. Tipo de marcação semelhante no SVN. lightroomkillertips.com/2009/whats-a-lightroom-snapshot Algumas ferramentas, como os plugins de Jeffrey Friedl, podem ser configuradas para criar automaticamente uma captura instantânea sempre que você exporta para serviços como o Flickr. regex.info/blog/lightroom-goodies [Eu escrevi este simultaneamente com fzwo ... desculpe por qualquer redundância com o seu comentário.]
coneslayer
2
Se você quiser a funcionalidade completa de controle de versão, basta controlar a origem dos arquivos do sidecar, como qualquer outro arquivo (eles são um texto marcado internamente). Então você não está restrito à história, mas pode criar "ramificações" com tipos de efeitos completamente diferentes, se desejar. O software deve permitir que você aplique um novo arquivo lateral a qualquer imagem RAW, pelo menos a minha.
rumtscho
8

Alterações virtuais

Eu uso o Lightroom v3 e este produto tem um fluxo de trabalho não destrutivo. Isso me permite fazer alterações nas minhas imagens em um sentido virtual.

Controle de versão

Em seguida, uso o SVN para manter o controle do Catálogo do Lightroom (apenas um banco de dados SQLite simples) e isso basicamente me dá controle de versão sobre as alterações virtuais.

Redundância

Eu tenho a configuração RAID 6 que retém a mídia para redundância e um ciclo de unidades USB como um sistema de backup rotativo.


Embora isso possa não funcionar para todos, funciona para mim. Além disso, ele me permite usar várias máquinas e ter o mesmo catálogo LR (usando o ciclo de confirmação / atualização do svn).

Extraído da postagem do blog Aqui :

Eu tenho o Lightroom em alguns computadores com um servidor baseado em RAID 6 e tenho me esforçado para sincronizar tudo para facilitar minha vida entre máquinas.

Após algumas decisões, agora mudei minhas fotos para o \ server \ share e o catálogo foi rastreado via subversão! Isso torna tudo muito mais fácil entre as máquinas.

O que fiz foi criar um repositório que contém o catálogo do Lightroom. Eu adicionei uma exceção para não incluir os arquivos de visualização, pois o subversion tem alguns problemas com eles.

Agora, meus passos são os seguintes:

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!
Wayne
fonte
Legal. Então, seu servidor SVN mantém apenas o catálogo e seu servidor de arquivos mantém as imagens reais ... e o catálogo aponta para os arquivos no servidor? corrigir? Pode tentar isso.
TiernanO
@TiernanO - Correto. É assim que eu tenho a configuração minha infra-estrutura / fluxo de trabalho
Wayne
isso é legal. Atualmente, importo cerca de 200 GB de fotos agora em um único catálogo do Lightroom e começamos a brincar com essa ideia ... espero que faça o que eu preciso! Obrigado pela dica!
TiernanO
@ Tierno - Você deve ficar bem com isso. Acredito que todos os limites experimentados estejam relacionados às restrições do SQLite que, como desenvolvedor, tenho certeza de que você pode pesquisar. (FYI: SQLite Manager para Firefox funciona muito bem em olhar para este catálogo)
Wayne
@TiernanO - estaria interessado em saber se isso de fato trabalho para você como tem feito por mim
Wayne
4

Eu acho que você pode querer usar o git-anexo (para gerenciar fotos e backups) junto com um controle remoto bup (para versionamento). Atualmente, estou investigando isso pessoalmente.

O git-anexo acompanha seus arquivos usando o git, enviando links simbólicos para seus arquivos. Os arquivos em si não são adicionados ao repositório. Depois que suas fotos forem "anexadas", se você clonar seu repositório (em um disco rígido externo, por exemplo), poderá pedir ao clone para recuperar os arquivos (ou parte deles) associados ao repositório no disco rígido. O git-annex controla qual repositório tem uma cópia de cada arquivo. Dessa forma, você pode dividir um backup em dois pequenos discos rígidos e garantir que nenhuma foto foi esquecida.

Diga que você está em uma viagem. Você tirou fotos que são copiadas no seu laptop. Você pode clonar o repositório git que está no seu servidor ssh em casa, sincronizar com ele, adicionar suas fotos locais ao anexo git à sua coleção e enviar as alterações de volta ao seu servidor. Em seguida, você envia os arquivos por si próprios.

O git-anexo acompanha as alterações em sua coleção, mas mantém apenas a última versão de suas fotos. Para a versão do arquivo, você pode adicionar um controle remoto bup especial ao seu repositório git-anexo. Ainda não investiguei porque não tenho certeza de que preciso, mas deve fazer o que você deseja. Veja isto ou isto .

barsanuphe
fonte
editei minha resposta.
barsanuphe
além disso, o desenvolvedor por trás do git-anexo está atualmente realizando um kickstarter para facilitar as coisas para os menos inclinados tecnicamente.
barsanuphe
2

Eu uso o Lightroom para editar imagens e manter um histórico de versões. Se você deseja usar o Photoshop, o controle de versão é quase incorporado: Adobe Drive e Version Cue. Acho que o Version Cue é apenas uma parte do Creative Suite, FYI.

Dan Wolfgang
fonte
2

O Pixel Novel se conectará ao Photo Shop e funcionará com todos os servidores Subversion que você já possui ou acho que você pode comprar um repositório deles.

http://pixelnovel.com/

Eles chamam de "Controle de versão para designers"

BZink
fonte
2

Como uso o Photoshop e o Adobe Camera Raw em vez do Lightroom, uso o controle de versão para os arquivos XMP que localizaram minhas configurações de conversão bruta para rastrear alterações. Isso funciona muito bem, pois os arquivos XMP são apenas XML. É útil fazer todas as correções de cores primeiro, verificar os arquivos XMP e, em seguida, fazer cortes de proporções não-padrão. Dessa forma, posso reverter rapidamente para uma versão não cortada se precisar imprimir imagens no aspecto 3x2 original.

Sei que o Photoshop tem seu próprio sistema de rastreamento de revisão, mas é um caso de uso de ferramentas que conheço melhor. Existem outras ferramentas de codificação que são úteis, como scripts de construção / automação de construção. Por exemplo, posso emitir um único comando para "construir" um conjunto de fotos usando arquivos XMP não cortados, destinados a impressão, que converterão a renomeação do processo e produzirão todas as imagens de um conjunto. É realmente fácil se você já sabe como fazer isso por software!

Você pode adicionar arquivos binários a um repositório, mas isso requer muito armazenamento e você não obtém nenhuma informação diferencial útil ao comparar versões diferentes.

Isso é para conversões brutas regulares, definição de exposição, equilíbrio de cores etc. Para um trabalho mais envolvido no Photoshop, eu faço o que posso de maneira não destrutiva com camadas de ajuste e filtros inteligentes, mas ainda não cheguei ao ponto em que posso fazer tudo de maneira não destrutiva, por enquanto, acabei de salvar várias versões do arquivo .PSD.

Matt Grum
fonte
você pode configurar o lightroom para usar arquivos XMPP também ... eu usei isso antes e funciona muito bem.
TiernanO
2

Também sou desenvolvedor de software e tentei usar o Git e o SVN para grandes RAWs e XMPs apenas pela capacidade de sincronizar minhas fotos entre unidades removíveis e versão dos XMPs. Era insuportavelmente lento e ficou mais lento com o tempo, à medida que adicionava mais arquivos. Também uso o Lightroom para histórico, então voltei ao rsync.

Agora, também estou analisando o git-anexo e até agora é agradável e rápido. Ele também tem o benefício adicional de soma de verificação de cada arquivo RAW, para que você possa ver se um HD ruim atrapalhou suas imagens desde a importação. Esse é um grande benefício para mim, pois posso testar meus backups para garantir que eles não tenham se degradado por meio de cópias / roteamento de bits. Planejo versionar apenas os XMPs e anexar os RAWs. O git-anexo pode saber onde estão as coisas, e posso ter certeza de que tudo está no backup do meu servidor, além de ter uma cópia de trabalho no meu laptop, se eu quiser.

Você também pode ter um controle remoto do Amazon Glacier, pelo que li, mas ainda não o testei.

Adam Watkins
fonte
1

Confira nossa Daminion. Este é um software de gerenciamento de fotos (multiusuário) que suporta controle de versão para suas fotos arquivadas e outros formatos de mídia.

Controle de Versão de Daminion

A versão de usuário único Daminion é gratuita, para que você possa fazer o download e verificar agora .

Murat - Daminion Software
fonte
14
Oi Murat! Você já existe há algum tempo, e suas postagens no Daminion geralmente são sobre tópicos e são úteis, e incluem a isenção de responsabilidade adequada da afiliação. Mas não posso deixar de notar que todas as suas respostas estão sugerindo a tentativa de Daminion e, nas Perguntas frequentes : "Se uma grande porcentagem de suas postagens incluir uma menção ao seu produto ou site, você provavelmente estará aqui pelas razões erradas. . " Considere escrever algumas respostas para perguntas não relacionadas ao seu produto.
mattdm
Obrigado pela explicação, Matt. Sem problemas. Mas como você notou corretamente, todas as minhas postagens fornecem respostas úteis para as perguntas.
Murat - Daminion Software
0

Eu não uso e provavelmente nunca usará o controle de versão de origem, como o Git ou o SVN, devido ao tamanho dos arquivos envolvidos. Cada arquivo bruto tem 20 a 30 MB e as alterações geralmente atingem todos os pixels da imagem inteira, reduzindo a eficácia de apenas "rastrear as alterações".

Para uma única imagem, eu podia ver facilmente um repositório SVN de 200 MB em vez de talvez 60 MB se eu apenas salvasse uma cópia do original e uma cópia da imagem final.

Xeoncross
fonte
3
se você estiver usando arquivos RAW, não deverá alterar a imagem RAW real, apenas o carro lateral XMP. Se você estiver alterando a imagem RAW, o GIT salvará apenas as alterações, não o arquivo completo ... O GIT pode não ser a melhor opção (SVN também) para isso, pois são arquivos grandes, mas existem algumas opções que funcionam bem para arquivos grandes ...
TiernanO
0

Aqui está um plug para o Apple Aperture. A beleza do Aperture é que ele possui cerca de 95% da funcionalidade do Photoshop que os fotógrafos desejam (você não pode criar texto flamejante com ele, bocejo) e que a edição é controlada por versão de uma maneira muito leve.

Isso funciona com JPEG e outros formatos de imagem, bem como com o formato RAW.

Você pode até fazer uma "ida e volta" com editores externos, como o Photoshop, mas eles necessariamente salvam uma cópia inteira da imagem, em vez de um filtro leve aplicado a uma imagem principal.

Jan Steinman
fonte
0

Há uma boa discussão sobre isso aqui: https://www.impulseadventure.com/photo/flow-catalog-versions.html

Existem diferenças significativas entre o repositório de códigos e a imagem DAM.

  1. O uso da imagem tende a ser uma árvore com várias ramificações. Embora você tenha ramificações no código, o objetivo geralmente é minimizá-las. No uso da imagem, você pode acabar com situações como esta

mestre

--- Cortada e afiada.

--- --- Resolução reduzida para o Facebook

--- --- Miniatura grande para galeria

--- --- Miniatura média para galeria

--- --- Miniatura pequena para galeria.

--- --- Versão grande com marca d'água para galeria

--- --- --- Versão preto e branco com marca d'água

--- --- --- Versão em preto e branco

--- --- Colheita especial para o cliente.

--- --- elenco de cores ajustadas para diferentes clientes

(Eu criei uma página da web em que cada imagem tinha 18 resoluções diferentes.)

  1. O código tende a ter pequenas diferenças entre as versões. Em um check-in típico, apenas uma porcentagem do código é alterada. Em uma imagem, a maioria dos pixels muda um pouco, e a economia de espaço ao armazenar apenas alterações é pequena.

  2. Em um repositório de código, você está preocupado com as alterações no nível de bits. Uma linha de código aqui, o valor de uma constante lá. Na manipulação de imagens, um histórico dos passos que você executou é mais significativo.

  3. O trabalho de imagem tende a ser muito menos colaborativo que o código. Embora os artistas gráficos possam capturar uma imagem existente e colocar camadas sobre a arte gráfica, a maioria das imagens é gerenciada por uma pessoa durante toda a vida útil. (Isso é diferente em vídeo / filme.)

  4. No software, o nível fundamental é o projeto. Um arquivo de classe única não significa muito sem o restante do projeto. No processamento de imagens, a imagem é a unidade fundamental. Você pode passar a vida inteira trabalhando em um único projeto de software (Microsoft Word ...). Na fotografia, você raramente gasta mais de alguns minutos em uma imagem.

  5. No software, a tarefa importante é poder rastrear as alterações e reverter para uma versão anterior. No processamento de imagens, a tarefa importante é encontrar essa imagem e seus derivados posteriormente.

Sherwood Botsford
fonte