少し前に話題になったイラスト QR コードを作りたくて、ローカル環境で動作する Stable Diffusion web UI を手持ちの ThinkPad X280 にインストールしてみました。
ThinkPad X280 は、3年前くらいに購入した PC です。GPU 非搭載で、CPU 第8世代 Core i5、メモリ 8GB、ストレージ 256GB SSD という感じのスペックです。
普段、全く問題なく使っている PC ですが、AI による画像生成という用途に使うとなるとポンコツと言っても過言ではありません。無理かなあ、と思いつつ試してみました。
イラスト QR コードの作成方法と Stable Diffusion web UI のインストールについては、それぞれ以下のサイトを参考にさせていただきました。
・イラスト QR コード
・Stable Diffusion web UI (と ControlNet)のインストール
ひとまず、Stable Diffusion web UI をインストールして、webui-user.bat を実行したところ次のエラーが発生。
RuntimeError: Torch is not able to use GPU; add --skip-torch-cuda-test to COMMANDLINE_ARGS variable to disable this check
「GPU が使えないよ」とのエラーのようです。まぁ、GPU 非搭載ですからね。
回避方法として、webui-user.bat を開いて「set COMMANDLINE_ARGS=」部分に、「--skip-torch-cuda-test」を追記をします。
set COMMANDLINE_ARGS=--skip-torch-cuda-test
再度実行。すると、またエラー表示。
RuntimeError: "LayerNormKernelImpl" not implemented for 'Half'
今度は、「グラフィックカードが半精度浮動小数点数の計算に対応していないよ」とのことだそうです。
回避方法として、webui-user.bat を開いて「set COMMANDLINE_ARGS=」部分に、さらに「--precision full --no-half」を追記をします。
set COMMANDLINE_ARGS=--skip-torch-cuda-test --precision full --no-half
これで、やっとちゃんと動きました。
さて、それでは、参考サイトを見ながらイラスト QR コードを生成していきます。
まず、元となる QR コードを作成。
プロンプトには、キノコを混ぜ込みました。
ポジティブプロンプト:
painting of mushrooms growing against a backdrop of sky and forest, Henri Rousseau, matte painting concept art, detailed matte painting
ネガティブプロンプト:
ugly, disfigured, low quality, blurry, nsfw
その他諸々、参考サイト通りに設定。
いざ、生成!……順調と思いきや、15分くらい経ったところで、またもやエラー発生。
RuntimeError: mat1 and mat2 shapes cannot be multiplied (154x1024 and 768x320)
内容を調べてみると、ControlNet と相性(?)の悪いモデルを使ってしまっていたようです。
モデルを変更。気を取り直して、改めて生成!
・
・
・
1時間半後
・
・
・
無事に完成!ちゃんと読み込める……!
ということで、GPU の載っていない PC でも、なんとか目的のイラスト QR コードを作ることが出来ました。
とは言え、1つの画像生成に1時間以上かかってしまうと、プロンプト等の試行錯誤もなかなかできませんね。
もう少し本格的に使うのならば、Google Colab を課金して使うのがよさそうな気がします。
・追記(2023-7-5)
プロンプトを変更して再度試してみましたが、今度は QR コードとして認識されないものになってしまいました。絵柄はかわいいんですけどね。
ポジティブプロンプト:
cubism painting of mushrooms against a blue sky and forest, Henri Rousseau, concept art for matte painting, detailed matte painting
ネガティブプロンプト:
ugly, disfigured, low quality, blurry, nsfw