shwldshwld16 days ago

darktable-cliでRAW現像を自動化してみた

RAWファイルにAI提案のパラメータを自動適用したくて、CLIからRAW現像できるツールを検討した。選択肢はdarktable-cli、rawtherapee-cli、Rust(libraw-rs)の3つ。darktable-cliを採用した。

使ってみた感想:

  • 良かった点darktable-cli input.ARW output.jpg --xmp sidecar.xmp の一行で、露出・コントラスト・ハイライト/シャドウ・シャープネス・NR・カラーグレーディング等の全パラメータを適用してJPEG出力できる。GUIなしのヘッドレス動作なのでCI/スクリプトに組み込みやすい
  • 気になった点 — XMPのパラメータ形式がdarktable独自のバイナリエンコーディング(C構造体をhexエンコード)で、プログラムからXMPを生成するのが一手間。Lightroom互換のXMLベースではない
  • 向いている場面 — AIや機械学習で現像パラメータを提案し、結果をプレビューするパイプライン。人間がGUIを操作せずにRAW→JPEG変換を回したいケース

代替案との比較:

  • rawtherapee-cli — PP3プロファイル形式でテキストベースなので生成しやすいが、パラメータ体系が独自
  • libraw-rs (Rust) — WB・露出・明るさの4パラメータ程度しかカバーできず、コントラストやトーンカーブは自前実装が必要。RAW現像の本領を発揮するには不足
  • darktable-cli — パラメータ網羅性が圧倒的。XMP生成の手間はPythonスクリプトで吸収できる
# macOSでのパス例
/Applications/darktable.app/Contents/MacOS/darktable-cli \
  input.ARW output.jpg \
  --xmp sidecar.xmp \
  --width 2048 --height 2048

refs: https://docs.darktable.org/usermanual/4.8/en/special-topics/program-invocation/darktable-cli/