DaVinci Resolveに取り込んだ写真の解像度毎にタイムラインを仕分けするスクリプトを作りましたという話です。
これはなにか?
DaVinci Resolveに入れた写真の解像度タイプ毎にタイムラインを分けて写真を放り込むPythonスクリプトです。
DaVinci Resolveで写真を編集する
以前からDaVinci Resolveで写真を編集管理しています。やり方は別記事でまとめています。
この際に問題になるのは写真は横と縦のものが混在するというところです。
動画は普通最初から最後まで同じ向きです。DaVinci Resolveは動画編集ソフトなのでこのようなものは扱うのがやっかいです。
そこで写真の縦横を判別してタイムライン自体をわけてしまおうというのが先ほどの記事にも入っている VertiacalHorizonSorter(初代)というスクリプトです。
SIGMA BF購入で解像度が多様化
さきほどのスクリプトですがバージョンアップもして自動でパワーグレードが当たるような機能など追加してDaVinci Resolveでの写真編集の省力化を進めていました。
GH7だけで写真を撮っていたときは特に問題はなかったのですが、SIGMA BFを買ってちょっと困ったことになっていました。
何かというと解像度が縦横だけではなく様々なタイプが混ざるようになったんですね。
GH7は横5776x縦4336、縦写真だと4336×5776です。比率はマイクロフォーサーズで4:3。
SIGMA BFは6016×4012で3:2が通常です。
さらにSIGMA BFはダイヤルで簡単に1:1や21:9などのアスペクト比(縦横比)が選べます。
多様な解像度に対応
今まではDaVinci Resolveのプロジェクトの設定で一種類の写真の解像度を指定するような使い方だったのですが、スクリプトを大幅改修して写真を解像度毎に仕分けしてそれぞれの解像度毎のタイムラインを作るようにしました。
前のバージョンとは別のスクリプトにしたので名前も変えて「DRSorter」としました。

こんな感じで縦横の解像度の名前でタイムライン作るようにしてみました。
これでいろんなアスペクト比の写真が混ざっていても一発で適切なタイムラインに放り込むことが出来るようになりました。うれしい!
カメラレンズ毎の設定
SIGMA BFもつかうようになったので、カメラを判断して適用するパワーグレードを切り替える機能も追加しました。GH7だとGH7のRAW写真をほどよく色づけるパワーグレードを、BFはBF用のそれを自動適用することでRAW編集が楽になるようにしています。パワーグレード自体はカメラ毎に最初に自分で作らないといけないですけどね。
あとレンズ毎に歪み補正を指定出来るようにしました。これも最初は自分でDaVinci Resolveのエディットで歪み補正はどれぐらいが適正かを調べて入れておく必要がありますが、それ以降は毎回補正する手間が省けます(ズームレンズは倍率によって歪み補正かわるかもしれないけど)。
GitHubページの説明見るとこのあたり書いています。
LuaからPythonに移行
今回LuaスクリプトからPythonスクリプトに移行しました。
元々Luaスクリプトにしていたのは特に何もインストールしなくてもつかえるからですね。
ただ、今回の改修にあたってAIに修正依頼をしたのですが、もう全然まともに動かなくて。AIはインターネットにある情報を元に学習してますから、マイナーなLuaより絶対数が多いPythonとかの言語の方が明らかに良い結果になるんですね。
そんなわけで、このスクリプトは誰も他に使ってる人はおらんだろうというところで、開発のしやすさを優先してPythonに移行しました。
たぶんPythonのインストールと環境変数の設定が一番引っかかるところかも…。
LuaからPythonへの移行もCursolとClaude Sonnet 3.5におまかせ、今回の解像度毎に分ける機能も完全おまかせ。本当に一行もコードは書いてません。
途中、無限ループに入って進まなくなることはあったので、具体的な指示を出して回避したりはしましたが、これだけ楽だとコードを一から書きたくなくなります。
コードを書くのにAPIにかかった費用はだいたい500円~1000円ぐらいだったでしょうか。数日かけて自分で書くよりはこれぐらいだったら払っちゃいますね。
そのうち元のDaVinci Resolveで写真編集するワークフローの記事も修正しようかなと思います。
今回、詳しい導入方法などは面倒でここには書いてないのですが、GitHubのページには一応書いています。もし需要があればもう少し説明入れますのでXにでもメッセージください。
それでは!