グラフィックボードのお話
GeForce GT1030 のファンレスモデルを使い始めてはや数年、流石にロー~ミドルエンド程度のグラフィックが欲しいなあとは常々思っていたのだが、さして必要ではないという一点で放置しつづけてきた。
さらに今はメモリ大暴騰時代 に突入し、去年作ったPCのパーツなんかも、染み染み「あの時作っておいて良かった・・・」と安堵させられるほどの状態で、「このまま、おいそれとはグラボも買えなくなっていくのだろう、流石に今の内に手を出すか・・・?」と考えを改めるに十分の材料が揃っていたので、ウォッチングだけは継続していた。いわずもがな、主にグラフィックメモリ12GB~16GB品 、特にIntel Arc B580 、Radeon RX 9060 XT 、GeForce RTX5060 以上あたりが対象である。ハイエンドゲームやらないし。
------------
ちなみに、12GB以上のメモリに拘る理由は、今まで使っていたGeForce GT1030 の話まで遡り、その時やっていたゲームがi7第2世代のオンボグラフィックだと色々破綻し始めたので買わざるを得なかった、という問題が始まりである。
当時、もっと古いGeForce GT440 というやつが手元にあり、それで緊急避難も試みたのだが、純粋な処理速度の部分では改善を見せるものの、メモリ不足が起因していると思われるガクガク がむしろ顕著になったりしたので(オンボは最初からメインメモリ使う、かつグラボは不足したらPCIeバス通さざるを得なくなるから?)、その時からグラフィックメモリ容量がGPUと同率最重要くらいの考えにはなっている。
------------
そこにAmazonの正月セール(PC 周辺 機器が 還元 対象 )で、価格上昇傾向の中でSparkle のIntel Arc B580 Titan Luna とかいうやつが41000円で出ていた。付与ポイント含みほぼ底値付近の38000程度で買えると考えるならば、Arc特有の諸々懸念点があったとしてもコスパお化けだろうということで、思い切って手に入れてみた(現代GPU的には思い切る値段じゃないのだろうが)。どうせなら白いPCだし白がよかったので、渡りに船である。あまり光らないが、まあオマケだし。PC使用9ヶ月にして、ようやくグラフィック等環境が整った。
それまでも、どうしようかな~、Radeon RX 9060XTかな~、とずっと(半年近く)狙ってはいたのだが、16GBだと手頃に手に入ることも無く、マザボもSSD以外がPCIe4 なので60000円以上はちょっと・・・という感じで、GeForce RTXも同じく手を出せずにいたのだった。(PCIeはどうせグラボ側の性能が追いついてないようなので、そこまで気にすることも無いみたいだが、誤差程度には処理性能が下がると思われる)
導入で足止め
しばらく不自由も無く使い、そこまでグラフィックが要されるものに手を出していないのもあり、流石に少し画面出力性能が上がっている体感も得られた。ローグライクとかデッキ構築ゲーのインディーゲーが中心なので。それでも描画のモタツキは明らかに減ったと思われるので、この程度でも体感できるほどには違うと思われる。多分。感覚でモノ言ってるけど。
問題といえば、そもそもGeForce向けにしか作られていないツールが、CPU駆動しかできないということくらいか。それなりにあるが、まあハイエンドゲームとかやらないし、そこまで問題に直面したことは無かった。
そんな中、できるらしいとは目にして気になってはいたが、必要でもないので特に目指してもいなかった生成AI に手を出してみたわけですよ。とんでもねえ ですねこれ。まず動画生成を志したものの、動画は色々無理があるようなので、とりあえず画像生成でもやってみよう、というのが現在の流れ。
導入には紆余曲折あったのだけど、まずSD.NEXTというやつを入れ、動画生成面ではまるでうまくいかないので、隣の芝は青いという話でComfyUI が良いということなので導入を試みたのだけど、Python等について全く馴染みがないために色々と問題が噴出して、最終的には頓挫し放棄することになった。
順序として、まずは普通にminiconda使ってComfyUIを入れようとするも、ComfyUIが出ない問題など発生、順番どっちか忘れたけどIntel Arc向けPyTorchという問題もあったが、最終的にはコンポーネントも入り、UIも(不安定だが)出すことに成功した。
そこでテンプレートから生成を試そうとしたのだが、今度はNumpyとかいうやつのエラーが出たり、他にも色々エラーが出て、一度たりとも生成まで辿り着けなかった。(追記:OS側のPythonのPathが通ってなかったので、それが悪いのかもしれない。でもminiconda使ってCloneしてPython入れたりしてたし、そっちから起動してたので、やっぱりOS側の問題じゃないかもしれない。もう面倒くさいので真相は闇の中)
調べた感じだと、コンポーネントのバージョンによって動いたり動かなかったりということらしく、どのバージョンがあるのかも、どのバージョンだと動くのかということもサッパリ分からない手探り状態なので、少しバージョンダウン等試した結果別のエラーが出て悪化などしたため(今度はバージョン下げすぎかも)、スッパリ諦め、最初に動いていたSD.NEXT に着地しようとした、というのが大まかな流れである。
その後から「Intel AI Playgroundって何だよ 」となり、そこにComfyUIが組み込まれていることを知り、絶妙に無駄なことをしていた気にもなったが、起動オプション指定ができないなどもあるみたいなので、まあこれはこれで良いのかもしれないとSD.NEXTで納得はしている。画像生成に於いては不満ほとんど無いし。Stable Diffusionとほぼ同じとはいえ似て非なるものみたいだし、今は良くても、時が経つにつれて対応状況が置いていかれるかもしれないが、今の時点で既に画像はかなり進んでるようだし、誤差でしょ誤差。たぶん。1024x1024画像が一枚10秒とかで出てくるから、まあプロ仕様でもないし問題ないでしょ。
あれは悪魔のツールだ、間違いないね
で、生成してみるわけですけど。これはやばい 。
AIサーバーとか商用の話はまた違うと思うが(そういう層が利用し利益を生む、という意味で同じかもしれないが)、民生品という意味でいえばこの利用への熱意みたいなものが購入動機に直結しているのだろうということを、今回体験してみて初めて理解した。この生成の需要だけでこれ、PCなんざハイエンドゲームはじめ動画作成等クリエイティブ関連、事務用途等、他の用途もごまんとあるわけで、そりゃハイエンドパーツがバカ売れするわけですわ。
アレな用途で使ったりもするわけだが、そんな中で色々気付いた点についていくつかメモ。
奇形問題とか画面一色などについて。まあ、自分が遭遇した諸問題については、端的に言って「AIの禁則事項 」と「それを避けようとする動作 」が原因だと思われる。
使っているモデルは主にJANKUとnovaAnimeXLというやつなので、他だと違うかもしれないので念の為。これらの中でも、少しずつ引っかかるラインが違う(生成時の解釈が違って引っ掛かりやすいだけかも)のも注意されたし。
キャンバスをチェックし、新規生成が必要か判断
新規生成の場合は、まずAIが禁則事項に触れるか判断
禁則を避ける場合はその要素の指示を無視、fxxkサイン等に換わる
生成原案に規制が必要ないと判断したらとりあえず生成 or 既存物(2.でfxxkサイン生成された場合含む)を発展させる
既存物を発展させる場合も、禁則事項を避けようとする
この部分が八方塞がりになると、とりあえず作った物がドッペルや分裂だった時にも妥協案として拾われ易くなり、その次の段階で不自然なものを消していった結果二人の身体パーツが融合したみたいになってしまい、奇形だけが残るのかも?
ここでまた生成物がチェックされる
作ってみたけどやっぱ禁則ド真ん中でダメだわ~となれば画面一色等にされる
画面一色になる原理は恐らく、代替案として色調や明るさを弄り、禁則から外れてOKになった場所がたまたまコントラストや明るさがMAXとかMINみたいな、実質塗りつぶしにしか見えない状態だっただけだと思われる(次のサイクルで、無地部分に別のものが追加生成され始めたりする)
(色変更したらNGじゃなくなった!ヨシ!)
1に戻る
大体こんな感じなのではないかと思われる。ちょっと違うかも。
ちょっと追記
ChatGPTさんが教えてくれた(ので嘘混じってるかもしれない)が、基本的に
あまりに過度なものを除き、基本的にAI側から禁則事項として縛るようなことはしない、とのこと
その上で、AIが避けがちなものとして「指」というのがある
指とアレな感じなものとが重なった場合、「3D構造を持たない上、複雑な構造なので混乱しやすい(回避行動を取りやすい)」
そうして回避した結果、「関係ない構図にして逃げる」が起き、更にモデル等の特性により「fxxkサイン」が出やすくなっただけ
更に、生成の手順として「可能性の収束」を行っているとの説明で、つまり生成段階では「沢山の指や頭、腰などから絞り込んでいく」ような手順を取るらしい
つまり、これで整合性が無いものでも、消去法で消した結果頭だけが違う人物から残って180度回転、みたいなことが起きる
そして、画面一色になるメカニズムは、ChatGPTさん曰く「可能性の消滅」故らしい
つまり「取捨選択、消去法といっても消去するものしか無かったら全部消えるよね?」ということ
だそうです。要約。AIの言っていることだから間違っているかもしれないが、AIがAIのこと語るのが無知なわけないので、ほぼ真実だとは思われる。
以上、メモ程度だけど書いておいた。おわり
追記
Stable Video Diffusionにネイティブで対応していたので入れてみた。一度画像を経由する必要があるものの、これで動画まで生成できたら嬉しい。早速これまでに作った画像で試すのでさようなら。
もう一回追記
toonyouJPモデルを使って色々試してみたのだが、SVD1.0、14フレームで、デコードチャンク3くらい までならいけた。しかしそれ以上にすると、高確率でVRAMが溢れて止まる(--medvramで起動、プロンプトでも起動処理でmedvram=Trueと表示されてるので有効なはずだが、それでもダメ)。
もっと言うと、デコードチャンク6とかでも画像生成までは終わるようなのだが、終わった後に動画に纏める部分でアッサリ止まる。
あと、ずっとデコードチャンク1でやっていて、ろくに動かないツマンネ と思っていたのだが、デコードチャンク2にするだけで劇的に変わった(多分) ので、そこから結構楽しくなってきた。やっぱりコツの積み重ねが要るのですな。
こんな感じ まあ、思ったより面白い。でもこんなもんだよね、という感じ。VRAM12GBだと、SVDのimg2vidはギリギリだというのは間違いない。ただ静止画がちょっと動くだけ、しかも雑に、というレベル。たまに地面に埋まって消滅したりするのはある意味面白いけど、明らかに楽しみ方が間違っているので置いておく。
VRAM48GBとかなら、25フレームの動画をデコードチャンク8とかで普通に作れるだろうから、そういう環境ならヌルヌル動く動画を迅速に生成できるだろうというのは想像に難くない。個人の趣味でそこまで要る?というのは置いておいて。プロならどんどん買って、どうぞ。