AIずんだもんに実況してもらうなどよんどころない事情でずんだもんの立ち絵が必要なときがある。いつものよく見るずんだもんは坂本アヒルさんによる立ち絵素材として配布されていて、ここに含まれるさまざまなパーツを組み合わせることで立ち絵のバリエーションを生成できるのだけど、これはPSDToolというブラウザで動くツールによって合成できる。非常に便利。
……なのだけど、複数の画像を生成することを考えたときにマウス使いたくないよねー、作業に再現性を持たせたいよねー、ということでCLI版を作った(作らせた)。
PSDToolはGoのライブラリgithub.com/oov/psdをWASM化してブラウザで動かしているらしい。すごい。CLIもこれにしたがってGoで作ることにした。
go install github.com/motemen/psdcompose@latest してください。
最初はコマンドラインで画像を生成させるだけでよいだろうと考えていたけど、やっぱり試行錯誤もしたいのでTUIを作った。とするとプレビューもほしいのでKitty Protocolを使ってプレビュー。こんな感じになる。なんかすごいな。
TUIはBubble Teaで実現しているのだけど、最初の実装ではおそらくbubbleteaの再描画戦略の影響で、カーソルを動かすたびに画像がちらついてしまっていた。今回はKitty ProtocolのUnicode Placeholderという仕様を利用することで、TUIの再描画と画像の再描画を分け、ちらつきを抑えることができた。という理解。この関係で(自分の普段使いの)Weztermでは動かず、Ghosttyなどが必要です……。
ちなみにTUIだけじゃなくて、コマンドライン引数で画像を生成するモードもある、というかこちらが元々やりたかったこと。以下のような感じね。ご利用ください。
$ psdcompose ./ずんだもん立ち絵素材2.3.psd --write out.png 眉/普通眉 服装1/右腕/手を挙げる
