Lightroom Plug-in: плавное изменение цветового баланса для серии кадров

 

Вчера выдался свободный день, и я наконец сделал плагин для изменения цветового баланса у серии кадров. Под катом описание, ссылка для скачивания.

Идея плагина появилась здесь, при обсуждении цейтраферной съёмки (ака timelaspe) и прошивки Magic Lantern. 

 

Зачем. Во время съёмки длинной серии кадров для последующего монтажа видео, особенно на переходе «ночь/день», меняется цветовой баланс сцены. И хорошо было бы его как-то корректировать при конвертации исходников в кадры для видео. Но кадров много, вручную тяжело. Поэтому вот вам робот, который будет вкалывать за вас. Вы задаёте шаг, с которым меняется цветовая температура и/или tint, применяете это к серии фотографий, наслаждаетесь или ужасаетесь результату.

 

Язык. Каждый пишет, как он дышит, а моё дыхание в этот день было прерывистым. Поэтому любые коррекции моего runglish я приму со слезами благодарности.

 

Как. 1) Выделить все исходные файлы и сохранить метаданные (Ctrl-A, Ctrl-S). Всё несохранённое, ключевые слова, настройки, геотеги — всё будет потеряно. (см. «Траблшутинг»).

2) Сделать бэкап! Плагин будет писать метаданные прямо в файлы, всяко может произойти. Вероятность мала, но зачем рисковать.

3) Меню «File :: Plug-in Manager», закладка «ak Batch Color Balance Adjust». Самое важное: выбрать путь к exiftool. Если у вас ещё нет этой замечательной программы, качайте для мака и винды здесь. Это “must have” tool. Опции exiftool лучше не меняйте, если точно не знаете, что хотите. Кстати, там внизу есть галочка «Enable logging», и настройки детализации лога «Log level». Если что-то идёт не так, очень полезная галочка, лог можно отправить мне. Примечание: в этой тестовой версии автоматическая (и ручная) проверка/установка обновлений отключена.

4) Выделить исходники. Важно: они должны быть одного типа, или RAW, или не RAW. Вместе не получится, у них разные принципы управления цветом. Т.е. DNG, CR2, NEF и т. п. вместе и по отдельности — ок (не представляю правда, кому это может понадобиться). JPG, PSD, TIFF вместе и по отдельности тоже ок. Но эти две группы не смешивайте.

5) Меню «Library :: Plug-in Extras :: Batch Color Balance Adjust…». Подождать чуток, пока плагин соберёт данные о кадрах. У меня средняя скорость ~50 кадров в секунду.

6) Настроить сдвиг WB и Tint. 

 

Изначальные Кельвины и Tint не всегда появляются: это связано с тем, что в самих RAW их на самом деле нет, это вычисляемые рав-конвертером величины на основе кучи заумных данных из RAW. Для плагина это было бы явно излишней работой, поэтому если ACR уже вычислил баланс белого для первого кадра (Custom White Balance), вы его увидите. Если нет, ставьте какой хотите. Можете нажать «Cancel», выбрать Custom White Balance для первого кадра и посмотреть, что там LR навычислял. Потом скорректировать «на глазок», чтобы было вменяемо, и полученные данные уже внести в означенные поля (хотя в этом случае плагин скорее всего уже сам увидит «пользовательские настройки»).

Для не-равов в этих полях указываются сдвиги от «нулевой точки» исходника. Честно говоря, у меня есть большие сомнения в обоснованности применения плагина для JPG и TIFF. Цвет может загадиться до невменяемого состояния. Но возможность такая есть.

Далее, верхняя/нижняя граница температуры и tint. Плагин будет менять значения, пока не достигнет этих величин. После чего прекратит, и будет всем последующим кадрам ставить то, до чего добрался. По умолчанию в этих полях стоят минимумы/максимумы ACR, но вообще очевидно, что при ночной/дневной съёмке для RAW температура вряд ли выйдет за пределы от 2000 до 9000К, в самых экстремальных случаях. Ну то есть нижняя граница могла бы быть и пониже, об этом стонут сотни пользователей на десятках форумов, но Adobe уже много лет ничего не меняет, так что 2000K наш несдвигаемый предел.

Для не-равов соответственно указываются границы сдвига.

Способы расчёта изменения баланса белого. Помимо очевидного приращения/уменьшения величин, я умозрительно добавил ещё две формулы. Обе с дополнительным коэффициентом, чтобы цветовая температура/tint изменялись нелинейно. Может быть полезно например в рассветный период, когда кельвины внезапно резко нарастают. Коэффициент подбирать методом тыка. Если будет мало дробной части, напишите, я добавлю сколько угодно. Если будут нужны другие формулы, напишите, добавлю.

Выбор способа распределения значений по кадрам сделан для случая, когда кадры снимаются через неравные промежутки времени (например, не на ручном режиме). Если выбрать «per time period», то плагин «нарежет» разницу во времени между первым и последним кадром на число кусочков, по количеству кадров, и будет менять баланс только для этих промежутков. Например, если у вас 100 кадров за 1000 секунд, то баланс будет меняться каждые (1000/100=10) секунд, независимо от того, какой длительности была экспозиция в этом месте, и сколько кадров камера успела сделать. Временной промежуток (time span) вычисляется автоматически по разнице между временем первого и последнего кадра, но вы можете задать любой.

Ах да, в случае «per shoot», изменение баланса происходит для каждого кадра, независимо от того, какой длины была экспозиция.

мысли по workflow. Вряд ли имеет смысл писать алгоритм, учитывающий всю сложную динамику изменения WB на протяжении для и ночи. Проще разбить серию на несколько участков (сугубо ночь, переход в рассвет, утро, день), и менять ББ для этих кусков, со своими настройками для каждого.

7) С опаской жмём на «Ok» и ждём. Программа довольно быстро вычислит все величины и запустит exiftool оптом для всех кадров. На моей машине скорость обработки для JPG была примерно ~5 кадров в секунду. 450 кадров за 90 секунд. Подозреваю, что RAW с внешними XMP будут обрабатываться быстрее, а здоровые DNG, где XMP встроен — медленнее.

8) После всего, в модуле Library для всех изменёных кадров читаем обратно метаданные. Меню «Metadata :: Read Metadata from Files». 

9) Если понравилось, не повторяем. Если не понравилось, повторяем с шага 4.

 

Known Bugs. Я не знаю, как плагин поведёт себя на Маках. Не тестировал.

 

Тарблшутинг

  • Если какой-то файл из серии оказался не изменён, проверить — не открыт ли он в другой программе. Я однажды минут десять бился, пытаясь найти ошибку, а оказалось JPG был открыт ещё и в UltraCompare. • Закрыть, открыть Lightroom. • В качестве решительного средства, выделить все файлы, меню «Photo :: Develop Settings :: Reset», после чего сохранить метаданные и дождаться, пока сохранит. По этой причине я рекомендую озаботиться балансом на самом раннем этапе обработки, чтобы не было мучительно жалко потерянных метаданных и ключевых слов.
  • Во всех файлах не меняется цвет. Возможно старый exiftool. Adobe и Canon меняли форматы своих файлов, новый exiftool их умеет читать. А относительно недавний старый — нет. Скачать новый, заменить.
  • Кириллические символы где угодно Лайтрум очень огорчают. Т.е., если не читается exif, проверьте, есть ли не-латиница а) в любом из названий папок, где лежат фотографии; б) в пути к exiftool;  в) в пути к временной папке temp (если вы под Windows и имя пользователя кириллицей, то и temp будет для лайтрума не всегда доступен). В последнем случае можно попробовать указать в настройках плагина другую директорию TEMP только латиницей, скажем «c:\temp».
  • Обязательно переименуйте exiftool(-k).exe в exiftool.exe, как описано в его инструкции по установке. Иначе программа не будет запускаться, и плагин выдаст ошибку «can’t read exif».
  • Также возможны какие-то проблемы с административными привилегиями exiftool. Посмотрите в инструкции выше.

 

Developer Notes. Ну, я вам доложу, и через (18+) всё в Лайтруме! Уже который плагин пишу, и не устаю поражаться. Казалось бы, что может быть проще: прочитать с помощью API метаданные серии кадров, изменить их, записать обратно с помощью того же API. Но нет, мы не идём простым путём, мы хотим BDSM, причём с похмела, в гамаке и стоя. В Lightroom API не предусмотрено чтение настроек ACR, и уж тем более их запись. Поэтому приходится использовать exiftool (bless you, Phil!). Что конечно же не способствует скорости и гибкости. Для сравнения, Photoshop в плане продуманности потрохов устроен принципиально лучше и красивее. Истинно говорю вам, команда Lightroom — бедные родичи, финансируемые по остаточному принципу. Мило, в этих условиях они ухитряются делать хоть что-то.

 

Что дальше. Была мысль добавить возможность оптового изменения других параметров, вроде экспозиции или шумодава. Посмотрим. Будет востребовано, добавлю.

 

Скачать (150 кб), распаковать в папку Modules Лайтрума.

 

Уфф. Всё, теперь я могу наконец заняться ассессментом и построением отдела продаж. Тоже BDSM конечно, но API получше.

Comments are closed.