ケモナーのためのStable Diffusion備忘録など
まずはGPUを買いましょう。大抵のAIツールはプロプライエタリなCUDAを前提として組まれているため絶対にAMDはダメ。ファック。素直にNVIDIAのRTX3060 VRAM12GBにしよう。金に余裕があるならVRAM12GB以上でRTX3060よりスペックが高いものでもいい。
また、環境構築可能なOSは実質的にWindowsかLinuxの2択となる。正確にはMacでもStable Diffusionを動かすことは可能だが、Appleがデバイスドライバを監獄化しており、NVIDIAのドライバがないため実質的に不可能。AMDでもROCm(CUDAのAMD版)を使えばStable Diffusionは動かせるが、これまたMacには対応しておらず爆死します。さらに補足するとMPSというMetalを利用したAPIを使うことでApple SiliconのGPUを使って動かすことができるが、VRAMは貧弱だし速度もRTX3060より遅いためおすすめできない。MacにはWSLのようなLinuxの仮想環境もないため何をするにも中途半端。絶対に買わないようにしよう。
環境構築は普通にautomatic 1111のリポジトリをクローンしてOSに応じたシェルスクリプトを走らせればいいのでサルでもできる。Windowsならbatファイル、Linuxならshファイルを起動すれば勝手にPythonの仮想環境を作ってその中に必要なパッケージを全部インストールしてくれる。
環境構築が完了したら、ケモ特化のカスタムモデルを落としてこよう。Civitaiというサイトでは様々なカスタムモデルがサンプル画像付きで配布されている他、Hugging Faceにもモデルがあるだろう。現在私はCrossKemonoというモデルを使用している。商業利用不可のため注意すべし。(やる人いないと思うけどね…) このモデルはかなり万能で、ヒトショタ、ケモショタ、ヨツケモ、ガチムチオスケモ、デブケモ、メスケモ、トリケモとなんでも出力できる。現在私が確認した中で出力できなかったのは原型イルカのみであった。NSFWも余裕で出力できるが、モデルの傾向上ヒトチンになるようだ。またスリットも理解していないようである。しかしながら後述の手法によりスリットや総排出腔を擬似的に描かせることができる。
CrossKemonoの他に私が認知しているモデルはYiffy e18, Furry Diffusionなどがある。Yiffyは試していないが、Furry DiffusionはCrossKemonoより精度が低いと感じた。簡単なプロンプトを入力した際、前者は顔のアップしか出力しないが後者は様々な構図、様々な容姿のキャラクターを出力する。またNSFWを出力させたときの傾向として後者は顔を赤らめさせるようである。
プロンプトを構築する際は「ゆらぎ」を利用するとインスピレーションが得られるのでおすすめである。ここで「ゆらぎ」とはプロンプトで指定していない要素がランダムに構築されることと定義している。例えば furry, spread legs, blushと入力すると開脚して赤面しているえっちめな画像が出力されるはずだが、ここでは足の配置については指定していないのでどのようにspreadしているかはAI任せとなる。ある出力ではM字かもしれないしある出力では片足を手前に出しているかもしれない。絶対に抑えたい性癖以外はあえてプロンプトに入力しないことで構図などの自由度が高まり、SSRを引く確率が上がる。そして一度好みの構図を得たらimg2imgとcontrolnetとinpaintを駆使して望みの一枚を仕上げることができる。
具体的なテクニックや抑えるべきプロンプトについて書く。
まずはfurryは絶対に抑えるべきワード。流石にわかると思うが、これはケモノを意味する。爬虫類系はscalieというワードがあるのだが、CrossKemonoはこの概念を理解していないようである。したがって竜人を出力させたいならdragon, anthroとするのがよいだろう。
次にshotaである。説明不要だろう。 overweight(デブ)、muscular(ムキムキ)、slighly cubby(ぽっちゃり)、musclegut(筋肉デブ)、moobs(デブの雄っぱい), big pecs(ムキムキの雄っぱい), feral(ヨツケモ)あたりを抑えておくと体系と形態についてはカバーできるはず。
スリットはAIがあまり理解してくれない概念となるので、例えばmuscular, pussyとしネガティブプロンプトにbreastsを入れるとカントボーイが誕生する。厳密にはスリットではないのだが、許容範囲の描写が得られるのでおすすめである。avian, muscular, pussy, ネガティブプロンプトにbreastsとすると総排出腔トリケモが得られる。
体系と性別(male, female, ambiguous gender)を指定したら次は性癖シチュエーションのワードを入れよう。
blush(赤面), looking at viewer, looking down/up, narrowed eyes(目を細めている, 悪い顔をさせたいときに使う), bedroom eyes(トロ目), tongue out, open mouth, saliva(唾液), bodily fluid(体液, 汗とか)などを使えばエロ絵の表情に関してはカバーできる。
構図はlow angle view(from below), high angle view(from above), POV(一人称視点)を抑えておくとよいだろう。
性器描写は勃起させたいならerection, 巨根ならbig penis, 短小ならsmall penis, 包茎ならtight_foreskin, カウパーはprecum, 射精はejaculation(cumming) 愛液はpussy juice, これらが性器描写に必要なプロンプト群である。
これらのプロンプトを真っ先に確定し、方向性が合っていれば背景などの指定に入ろう。好きな背景を指定すると良い。私はindoor, bedroom, outdoor, white backgroundなどを利用することが多い。
これらプロンプトを入力して数回ガチャを引けばおそらくあるところで性癖に刺さるけど顔とか絵柄とかが合わない…とか手が破綻してる…とかそういう絵が出力されるだろう。ここまでくればあと一息。img2imgとcontrolnetの出番だ。
controlnetはstable diffusionを触るなら絶対に入れておかなければならない拡張機能で、ポーズを指定することが可能となる。text2imgで入力したプロンプトをそのまま入力してcontrolnetを適用した状態でimg2imgガチャをさらに回せば大抵の場合シコれる絵が出来上がる。また、表情がプロンプト通りにならない…という場合はinpaintを利用しよう。変えたい部分を黒塗りにしてプロンプトを適用すればその部分だけが置き換わる。笑顔から泣き顔にしたり、開眼から閉じさせたりすることができる。
指定した部分だけを絵柄に合わせて再描写させられるということは….おやぁ…????(これ以上は言えません)
これら基本的なプロンプト構築法がわかっていれば誰でもそれなりの出力が得られる。マナーを守って楽しいオカズライフを楽しもう!