どうせAIに負けるのなら、今のうちから見ておこう、というわけで、Stable Diffusionを触りました。
AUTOMATIC1111版Stable Diffusion web UIが有名らしいので、それを。
ググるといろんなページがトップに出てきますが、どれひとつとして、ゼロから綺麗に説明してくれているページはなかったです。
前提が抜け落ちていたりして、ローカル環境を作るには試行錯誤しないと分からなかったですね。
まず、Pythonが要ります。でもVersionが合致していないと、pytorch絡みのエラーが出ました。(これを解決するのが一番厄介でした)
(この記事の執筆時点では)Python 3.10.9じゃないとダメみたいですね。これは最新Verではないので、システム環境変数に登録して使うのは躊躇します。なので、インストール時の☑Add Pathは使わずに、webui-user.batの中で指定して使うことにしました。
ちなみに、MicrosoftストアのPythonには、このVersionはありませんでした。Windowsアプリ版の方が環境を汚さずに使えそうなのですが(デスクトップアプリ版の場合は、ユーザーフォルダ¥AppDataに一時ファイルみたいなものが残ります)。
次に、Gitが要ります。リポジトリのクローンなんかしなくとも、stable-diffusion-webui-master.zipを落としてきて解凍すればいいわけなんですが、Stable Diffusion web UIがgfpganを自動的に入れてくれるみたいなので、Gitが無いとダメでした。
環境を汚したくなかったので、Portable版をインストール。7zアーカイバは既にあったので、exeの自動展開はせずに、手動で展開しました。そして、自動でされなかった代わりに、post-install.batをコンソールから実行させました。さらに、システム環境変数にGitのパスを追加しておきました。
その次に、CUDA Toolが要ると方々で書かれていますが、私の環境には直近のnVidiaドライバが入っているので、インストールする必要はありません。
ちなみに、グラフィックボードはRTX3050です。RTX3070も持っていますが、このPCは省エネ志向で組んだので、電源ユニットの容量の関係から3050なのです。それでも、VRAMは双方とも同容量の8GBです。
さて、本命です。Stable Diffusion web UIのインストールは前述の通り、stable-diffusion-webui-master.zipを解凍しただけ。
Pythonのパスは、前述の通り、webui-user.batの中で
set PYTHON=
にて指定しておきました。
set GIT=
も念のため、指定しておきます。
学習モデルファイルにどれを使えばいいのかわからなかったので、とりあえず、sd-v1-4.ckptを入れて試すことにしました。
PythonのVersionを3.10.9にしておいたので、今回は「Could not find a version that satisfies the requirement torch」のエラーは見ないで済みました。
それでも、相変わらず、pipをアプグレードしろと言われます。
(Pythonへのパス)python.exe -m pip install --upgrade pip
ですね。でも、なにか変なタイミングでやらかしたらしく、python\Scripts\内のpipが消えてなくなってしまい、get-pip.pyをダウンロードして作り直すということをやりました。
さて、プロンプト…… 呪文と言われるやつ。これ、初見では分からないですねぇ。
……sd-v1-4.ckptのモデルでは、アニメ風で可愛い女の子は出てきませんでした。
人気のモデルをググって、今度はcounterfeit-v1.0を入れてやってみます。
まぁ、確かにアニメ風な萌えっぽい少女が出てきましたが、AIの作った絵は瞳がおかしいんですよね。ミルクを入れたコーヒーみたいに混ざりあった感じになりやすいです。口も裂けたみたいにとげとげになっていたり。
また、Seedを固定していないのに、ある一定の絵柄でしか出力されないのも困りもの。イリュージョン(エロゲメーカー)のデフォルトモデルを弄っているみたいな感じがしてきました。
却って、プロンプトをたくさん指定しない方がバラエティ豊かになるみたいです。

ところで、実行した時、コンソールにwithout xformersと出るのが気になっていたのですが、readme.mdによれば、これによって速度UPできるらしく、
set COMMANDLINE_ARGS=--xformers
としておけばいいようですね。最初からreadmeを読むべきでした。
なんとなく分かってきた呪文:
(もちろん、学習モデルによりますが)
gothic maid ……ゴチックなメイドのことですが、フツーに瀟洒なメイドっぽくなりました
underwear, skirt ……この二語でパンチラになりました
serious ……怒り眉で表現されてました
shy ……恥ずかしがり屋ということで、頬が赤くなって、それらしいポーズが増えました
disordered ……乱れてるということなんですが、けっこう意外性のあるポーズが出てきました
bold ……大胆のつもりなんですが、これも不思議な雰囲気で出てきます
mature ……少し若すぎる娘が出てきた場合、この語を足すと、若干年齢が上がるような気がします
いろいろ試すだけでも、かなり熱中してしまいますね。
↓かなり上手く填まったかな?

A 19 years old girl, human, mature, shy, cleric of fantasy RPG, underwear, flat breasts
Negative prompt: (painting by bad-artist-anime:0.9), (painting by bad-artist:0.9), (worst quality, low quality:1.4), bad anatomy
Steps: 100, Sampler: Euler a, CFG scale: 7, Seed: 1321896658, Size: 512x768, Model hash: 3088848987, Model: anything-v3-fp32-pruned