画像をコンピュータに吐かせるやつ。
いろんなGUIがあって、普通の人はブラウザの画面をいじってあれこれやる。
絵心のないやつがなんぼやっても想像力の限界みたいなものが見えてきちゃったりして興味深い。
わたし、気づくとおんなじような絵ばっかり出力させてる。
で、いちユーザとして画像を吐くとかは触ったし、プラグインやらを書くほどの情熱はない。
いよいよ「どうやって動いてるんだ?」って根っこに触れるときがきたかもしれん。
ぼくは数学の素養とかゼロなんで、行列がベクトルがとか言われた時点で爆発して死ぬ。そんなヨワヨワ老人にも出来るであろうか。
いやできないだろ。ナメすぎだよ。
とりあえずPythonから
CUIでパラメタぶんぶん渡すのもいけるっぽいけど、そんなに楽しそうではない。
Pythonなら困らんしいけるやろでスクリプトを書き始めた。
GUIだとメニューからポチポチ選ぶだけの項目が、それぞれどんな機能・意味・コストがあってー的なところを紐解いていく。
たとえばプロンプトに渡せる文字列の個数って77個が上限なんだけど、実際は500個くらい書いたりする。Tokenizerなる仕組みがあり、AIが扱いやすい配列に変換し、さらに特徴量ベクトルとかいう数値の塊に変換する、みたいな謎の仕組みがある。
ぜんぜんわからん。
とにかくこのへんはライブラリやクラスや色々を自前で引っ張ってきて叩いてみないことには理解できそうにない。中の数字の塊についてはとっくに人間が理解できる・読み取りができる世界ではないだろうから、いったん「そういうもの」として取り扱えばいいのかなー。

あちこちのサンプルをツギハギして、一度しょぼい画像を出力することまではできた。
これに、Loraがどうだ、textなんとかがどうだ、各種パラメタを取り替え引き換え、とかをやろうとするとすぐにバグって死んでしまう。
触ろうとする範囲が巨大な機能群だから、学習曲線の上がり方が厳しい。
おまけに処理途中で「いまどうなってるの?」を見ようとすると莫大な行列だけがそこにあり、何も理解できない。
魔法のハコが数珠つなぎになっていて、「なにか入れると出る」を並べているだけって感じ。実際そうだと思うし、関数とはそういうものではある。ただ入出力が巨大すぎて把握できないってだけ。
周辺ツール書いたり
GUIだと普通にできてる「サムネ見てCheckpointやLoraを選ぶ」って動作ができないことが不満になり、それらのギャラリーを生成するスクリプトを書いたりと寄り道している。
プロンプトも「毎回書くお定まりの断片」みたいなのがあるんで、テンプレートエンジンを噛ませて気の利いたなにかができるんでないかな、みたいなことをやっている。
stable diffusionの画面上だとCheckpointの一覧が存外見づらいので、自分用のギャラリーを充実させるのは悪くない。
InvokeAIつうのがある
スクリプティングと相性がいいっぽい。
Dockerfileに「PYTHON_VERSION=3.12」とあるのが何より素晴らしい。3.10.6とか使ってらんないよなあ?そだよなあ?
こいつへの導線を自分で書いてやればいいのか、それに近いものはすでに書いてあるから、繋ぎこみを試してみるのがいいのかも。
そこから徐々に母屋の乗っ取りをして、オレオレ環境つくればいいわけだ。
というかそうでもせんと、あれこれのバージョン不整合の解消作業だけで時間を食いすぎる。
勢いのある分野だからなのか、破壊的変更が多い。しんど。
