ヤマネコ目線

大体独り言、たまに写真その他、レビュー等

Stable-Diffusionを自分のPCで動かせるようにしたが・・・

 書き散らし。前回の記事でも書いたStable-Diffusion遊びの続きをしている。

manuller416.hatenablog.com

 HuggingFaceやDreamStudioでの画像生成はいわば相手サービスにPCの処理能力を"間借り"するものに過ぎず、そこに制約があるので(HuggingFaceでは一度の生成が4枚まで、DreamStudioでは無料体験版が終われば有料、ともに解像度は512pixel四方まで)、自分のPCで動かせばその制約を少しは緩和できるのではと思って土日にいろいろ試行錯誤していた。

結論から言えば

 私のPCのスペックでは512x512pixel以上の解像度の画像を生成することは出来なかった。残念。どうもグラフィックボードの性能が鍵なようで、特にVRAM(グラフィックボードのメモリ)がかなり多くなければ高解像度の画像を生成することは難しいようだ。使用しているのはNVIDIA GeForceRTX2070Superだが、確かにVRAMは8GBしかない。

 Twitterで調べた限り、高解像度の画像を生成しようとして同様にVRAM不足に陥っている人は多かった。33GBのVRAMが必要見込みだと書いている人もいる。無ぇよそんなVRAM積んだグラボ・・・約160万するQuadroGV100ですら32GBなのに・・・。普通のメモリなら32GB積んでるんだけどなあ。おそらく速度等や内部的な要因でVRAMしか使えないのだろう。専門家でも何でもないので憶測だが。

もっと良いクルマが欲しいぜチキショウ

 一応、自分のPCで動かせるようになったので1度の生成枚数やセンシティブな画像(エロ系は興味ないがたまにベクシンスキー風を指定するとフィルタリングで弾かれる)も問題なく生成できるようにはなった。ただし、VRAMが不足しているので時間がかかる。変な絵を出さない、一度の生成枚数を気にしないのであればずっとHuggingFaceのデモ版で良いかも知れない。どうせ生成できる画像のサイズが512pixel四方から抜け出せないので。

 しかし本当に、512pixel四方なんかじゃアイコンには出来ても壁紙にすら出来ないよ・・・イラストレーターを失職させるAI(笑)。もう少しハードウェア面でのハードルが下がるのを待つべきかも知れない。実用的な画像サイズとしては今で言えば最低でもFullHD(1,920x1,080pixel)の解像度は欲しいのだが、解像度が上がるほど負荷が増えていくのは問題としてある。たとえば1,024pixel四方になるだけで、縦2倍×横2倍=4倍のドット数になる訳で単純に負荷が4倍になると考えてもなかなかなもの。FullHDならば単純計算で約8倍。実際はそれ以上に負荷が増えると見るべきだろう。

苦労したこと

 まず実行環境の構築が面倒くさい。PythonやらAnacondaやらPyTorchやら、プログラミングの専門家でも仕事やってる訳でもなんでも無いので、環境構築がまず面倒くさかった。というか慣れない。一応、電気電子工学科を出ているしその時にいろいろ触ったのでやりたい事は分かったりするが、純文系には無理そうなレベル。まあでも、これまでPython触ったことの無い私が1日でなんとか画像生成させる段階まで行けたのだから、誰でも頑張れば出来るレベルではあるかも知れない。あと解説記事を書いてくださっている方々に感謝。

 一番参考になった記事↓

zenn.dev

レタッチが難しい

 不完全な部分を自分でレタッチする事も考えたが、そもそも何をどう描くか、筆をどう運ぶかというメソッドが同レベルで自分の中に無ければそれは結局叶わないし、時間もそれなりにかかる。なので「それっぽい画像が大量に生えてくる」一方、作品として完成できるものはかなり少ない。たとえば下の画像をレタッチしろと言われても無理。変にどこか弄るとそこだけ技量が追いつかずに浮いてしまう、余計に悪目立ちする。

 将来的にはAIで生成させた画像を更にレタッチするAIなんかも出て来るのだろうか。マシンスペックに限界がある以上、たとえば顔なら顔、バイクならバイクといったように用途を限定してブラッシュアップを部分的にかけていく方が実用的にも感じる。

価値とは何か

 いっそ構図含めて生えてきた画像を参考に1から作品を描き直す方がマシなのかも知れない。アイデアをAI生成画像からパクりつつブラッシュアップして再配置する。絵の価値とはまだまだ人間の手によって描かれたものにしか付かないのか。逆に考えればそれっぽい画像ならばもはや誰にでも生成できる訳で、そういった画像にはもう価値は無いとも見ることが出来る。「それっぽい」だけでなく、きちんと細部に至って整合性の取れた綺麗で高解像度な絵にこそ、価値がついていく。

 しかし何というか、こういう絵を生成して見せられると風景画とか描いてみたくなる。物凄く風景画は苦手なのだが、構図やアイデアを代わりに考えてくれるツールと思えばかなり良い。色使いも良いのでそれを真似するだけでもいい感じのが描けそうな気になって来る。小説なんか書く場合も簡単な挿絵なら誰かに依頼する必要は無くなるか。

余談:AIによる生成の限界

 前回記事でも触れたが、AIは1つの要素を完成させる力は弱い。たとえばこの画像を見て何を思うだろうか。

 一見すればかなりそれっぽい絵にはなっているが、走っている様子のクルマなのに運転席には誰もいない。「スチームパンク風の車が走っている様子」を描くように指定するとこういう風に出てくる訳だが、AIには「走っている車」と「運転している人間」はセットであると認識できていないのである。人間なら普通、それらをセットで考えるものだが、AIに描かせる場合は「with driver」を入れてやらないといけない(おそらく)。それでもドライバーの顔が潰れていたりするかも知れないが。

 これは些細な問題にすぎないように思えるかも知れないが、物事の1つ1つの要素を理解するということはかなり高度なことであり、それをコンピュータにさせるのはまだ難しいのだろうと思う。ドライバーくらいなら後から自分で描き足せば良いかも知れないが右の車、サスペンションはどうなっているのか、フロントグリルは穴が無いがそれで良いのかなど、1つ1つの細かい要素を検証・修正して行くのも手間がかかる。

 そして何をどうくっつけて何をどうくっつけないか、何をオミットして何をしないか、そうした取捨選択をどういった基準でするのかも機械にさせるのは難しい。それを過度に制限してしまうと人間には出来ない自由な発想が生まれなくなり、逆に好き放題やらせれば本来あるべきものが無かったり、物理的におかしい絵が量産されることになる。サスペンションの無い車は良く言えば斬新だが、それが実用的かと言われれば違う。

余談の余談:将棋やチェスとの違い

 知り合いと話をしていて、「将棋やチェスではもうAIに勝てないんだから絵もそうなるんじゃないの」と言われたのでついでに書く。

 将棋やチェスは限られたフィールド内で決まった動きをする複数種のコマとルールによって行われるゲームであり、組み合わせの数やゲーム的な有利・不利の判定といった問題はあるものの、そこにある要素自体は絵を描くために必要な要素よりもまだ計算しやすい。組み合わせは膨大ではあるが、今の技術で計算し切れないほどではないというだけの話。これが天竺大将棋*1になればまだ人間に勝ち目があると思う。

 先に述べたように絵を描くために必要な要素には、物事や構造物への理解といったものが含まれる。空想的な絵であればそれはある程度許容されるものの、逆にそこにはリアリティとフィクションを高度に組み合わせて「それっぽく見える」ように仕上げる力が必要。将棋やチェスに必要な計算能力とはまた違ったタイプの能力が求められる。もし、ルールブックをWebカメラで読ませてその画像からルール自体を認識・理解し、その上で天竺大将棋を指せるようなAIが出て来たなら、イラストレーターは本当にピンチに陥るかも知れない。

*1:リンク先、個人ブログ