Stable Diffusion webuiをWindowsにインストールしました


AI画像生成は、ClipStudio->フィルター->Stable Diffusion->{fine art,kawaii}になるまで待ってたのですが、ナンかモメてCELSISが「『懸念のある機能』をCLIPSTUDIOに搭載しません」とアナウンスしたので先になりそうだなと思ってStable Diffusion webuiをWindowsにインストールして使ってみました。体験記をメモします。2023年5月記す。

やってみたら、いろんな便利なとこあるなー、なんですが、2023年05月の段階では設定が面倒でした。早くClipStudio->Stable Diffusion->{fine art,kawaii}的なのになって欲しいです。

また、次に書く体験記は、「中古PC+中古グラフィックボードを3万円で買ってStableDiffusionweb uiをインストールする」です。6月中に書きます。

中古グラフィックボードは買ったのですが、面倒でまだ設定していないです。Bingで画像生成も出来るし、楽ちんで正常進化だし、体験記の記述を保留します。

1. グラフィックボード

グラフィックボード持ってなかったので最初CPUでやってみて、それで遅かったのでグラフィックボードをパーソナルコンピューターに増設しました。

買ったのは色々なWEBサイトで勧められていたNVIDIA GeForce RTX3060。49000円台で、グラフィックボードのメモリーが12GBなので勧められているのでしょう。

玄人志向 NVIDIA GeForce RTX3060 GDDR6 12GBメモリ搭載 GALAKURO GAMINGシリーズ GG-RTX3060-E12GB/OC/DF

漫画家のI先生はTwitterで8GBでStable Diffusionを使っている、とツイートされていたので、8GBでもStableDiffusionは動くのではないでしょうか。

StableDiffusion webuiのWEBサイトには、「グラフィックボードのメモリー4GBサポート、2GBでも動作報告あり」と書かれていました。

「AMD RADEONのグラフィックボードでの動作はおすすめしない」の情報もWEBで見たのと、後は使っているパーソナルコンピューターのCPUがIntelだったのでNVIDIAのグラフィックボードを買いました。見たら、Stable Diffusion webuiのWEBサイトにはAMD GPUでStable Diffusion webuiを動作させる方法が書いてあるので、Ryzen+RADEONだと苦労するのと、後は性能は出なさそうですが、やれば出来るんだと思います。

使っているパーソナルコンピューターの電源が400W、RTX3060の消費ワット数が189Wと、半分グラフィックボードで使うのはおっかなかったので電源を替えました。面倒でした。

で、グラフィックボード増設。PCIeスロットの長い方に増設。

補助電源接続。6pin + 2pin。

最初間違えて4pin + 4pinを使って、パーソナルコンピューターが上がらなくて3時間悩みました。電源間違えるとグラフィックボードつぶしてしまうかも知れなかったので、おっかないですね。4pin + 4pinの端子ではなかったです。

6pinの端子しか電源から出ていなくても、

グラフィックボードのマニュアルには6pinの場合は出力コネクター方に寄せて接続、と書いてあるので6binの接続で動くでしょう。

グラフィックボードを差して電源繋げてパーソナルコンピューターを起動、「NVIDIA ドライバー」で検索してグラフィックボードのドライバーをダウンロード、インストールしました。

2.Stable Diffusion webuiのインストール

検索して引っかかった、StableDiffusion webuiのインストールの解説ページを見てインストールしました。

AUTOMATIC1111のトラブルシューティングには、Python3.10.6で動作確認している、と書いてあったのでPythonは3.10.6をインストール、Gitは最新のを使いました。DOSプロンプトから使うので、インストール時に「PATHに追加」をチェックしました。

gitでAUTOMATIC1111をダウンロードして、webui-user.batを起動。CUDAとかTorchのダウンロードが始まったので放置。

途中、pipのバージョンが古い、のエラーが出て止まったので、エラー画面に出ている、

python -m pip install --upgrade pip

を実行して再度webui-user.batを起動。Stable Diffusion webuiが起動しました。webui-user.batのCOMMANDLINE_ARGSに--listenを追記して他のパーソナルコンピューターからアクセス出来るようにしました。

また、webui-user.batのショートカットをデスクトップに作成して、楽にStable Diffusion webuiを起動できるようにしました。

3.試しで生成

どこで知ったんだか忘れましたが、ネガティブプロンプトにはEasyNegativeが楽ちんだと知ったので、「EasyNegative」の導入とその使い方【Stable Diffusion web UI】的なページを見て導入。stable-diffusion-webui\embeddingsにEasyNegativeを格納。今回の試し出力のモデルにはSukiAni-Mixを使用。

モデルの導入方法は、stable-diffusion-webui\models\Stable-diffusionにモデルファイルを格納してstable-diffusion-webuiを再起動。

プロンプトに「a school girl」、ネガティブプロンプトに「EasyNegative」を入力して「Generate」を押下。

生成されました。

3. ControlNetの導入

線画から着色を試したかったのでControlNetを導入。初めからインストールされていないです。面倒です。webUIのControlNetv1.1(コントロールネット)の導入方法を解説!などの、「Stable Diffusion ControlNet 導入 方法」で検索に引っかかるページを参考に導入。

ControlNetのインストール時に「拡張のセキュリティーが保証されていない」とエラーが出たので、webui-user.batのCOMMANDLINE_ARGSに「--enable-insecure-extension-access」を追記してStable Diffusion webuiを再起動。

extensions押下、Install from URL押下、URL for extension's git repositoryに「https://github.com/Mikubill/sd-webui-controlnet」を入力してinstallを押下。Reload UIを押下。

https://huggingface.co/lllyasviel/ControlNet-v1-1/tree/mainからモデルファイルをダウンロードして、Controlnetのextension導入後に作成されるstable-diffusion-webui\models\ControlNetに格納し、Stable Diffusion webuiを再起動。

Controlnet1.1が導入されました。

4. 線画を着色

モデルは、ACertainModelを使用しました。

線画。

「ここに画像をドロップ or クリックしてアップロード」に線画を指定。

Enable押下、Pixel Perfect押下、Preprocessorにinvertを選択、modelにlineartを選択。

そういうキャラクターなので、プロンプトに「green eye,silver hair,yellow ribbon,beauty sky」や「green eye,silver hair,exposed shoulders,flying yellow ribbon,beauty sky,wind」を指定してGenerateを押下。

キャラクターが着色されました。自分で書くより見栄えのする絵でした。

5. 3Dモデルから背景作成

LORAのanimeoutlineを導入する方法でやってみました。MultiControlNetでも出来そうです。Anime Lineart / Manga-likeからLORAファイルをダウンロード、stable-diffusion-webui\models\Loraに格納、Stable Diffusion webuiを再起動。

今回は3Dモデルに、公開されているProject PLATEAUを使用してみました。任意の場所で3Dモデルを止め、スクリーンショットを取りました。渋谷のモデルを使って、多分これは109のとこだろうなのところのスクリーンショットを取りました。

ControlNetに3Dモデルを読ませ、Enable, Preprocessor depth_leles, Model control_depthを指定。

プロンプトにtownを指定、Generateボタン下花札アイコンを押下、Loraを押下、animeoutlineアイコンを押下しanimeoutlineを指定し、Generateを押下。

save->[ファイル名]->Downloadを押下して生成された線画を端末に保存し、保存したファイルをControlnetに指定。

プロンプトに、「beauty sky, morning」を指定し、Generate押下。

背景画像が生成されました。

6.ラフから色つけ

MultiControlNetを導入します。Settings押下、ControlNet押下、MultiControlNetの数値を2に。ApplySettings押下、ReloadUI押下。

ControlnetのUnitが2つになったのを確認します。10個並べる人も出てきそうです。

絵柄指定画像とラフ画像を用意。

ControlNet Unit 0に絵柄指定画像を指定。Enable, Preprocessor reference_only, Control Mode ControlNet is more importantを選択。

ControlNet Unit 1にラフ絵を指定。Enable, Preprocessor invert, Model lineart, ControlMode Balancedを選択。

キャラクターと背景に合わせ、プロンプトに「green eye,silver hair,gray dress,white ribbon on the head,brown door,brown floor,tea cup」を指定してGenerateを押下。

ラフ画像から自分の絵柄で絵が生成されました。が、俺はこんなに上手く服の影をつけられないのでゲタ履いてます。また、私より絵が上手い人はより見栄えのする絵が生成できます。

おまけ。ControlNet Unit 0 Control Mode Balanced, Style Fidelity 0.7。

自分の絵より見栄えのする絵になりましたが、他人の絵です。

7.キャラクターに合わせて背景作成

キャラクター画像。

キャラクター画像をControlNetに指定。Enable, Preprocessor reference_adain, Balancedは今回は例えば0.7にしました。

プロンプトに「lighting sea,beautiful sky,flying lighting petals」を指定。Generate押下。背景画像が生成されました。

背景画像とキャラクター画像を重ねました。いまいち馴染んでいないのは私の絵が下手で色が薄いためです。

色調操作しましたが、大して変わんなかったです。元のキャラ絵が野暮ったいので背景に合わないだけでした。

8.背景素材から背景作成

随分前に買った、加工可の許諾の背景素材を用意しました。

横800pixelに画像サイズを変更。

生成画像のサイズを素材ファイルサイズに合わせて変更し、Controlnetに画像を指定、Enable, Pixel Perfect, Preprocessor invert, Model lineart, ControlMode Controlnet is more importantを指定。

プロンプトにcastle, night, lightを指定してGenerate押下。

背景画像が生成されました。例えば生成したキャラクターと合わせてみます。

パースが合っていないのでギャルゲ立ち。

9.おまけ トリッキーな使い方

ナンかよく知りませんが、生成中にinterruptで止めて、生成中の画像をControlnetやimage2imageに使って効果画像にするトリッキーな使い方をTwitterで見ました。

なんかこんなん。

reference_adain+attn。

invert, line_art

生成した画像がこちら。明かりが赤くなってゴシックですが、redlightのプロンプトでも行けねえかなあ、程度。

キャラクターに似たようなことした時、こちらが書いたキャラ勝手に変えずに、効果だけ反映させてくれればいいなーと漠然と思っていますが、まだやり方分かんないです。そのうち出てくるでしょう。おまけ。

以上、2023年05月の段階ではまだ設定と操作が面倒です。早くClipStudio->フィルター->Generate->{fine art,kawaii}になって欲しいです。

次の体験記は、「中古PCを買ってDebianで3万円で始めるStableDiffusion webui」です。

中古グラフィックボードは買ったのですが、面倒で設定していないです。次の体験記の記述を保留します。

[目次]


青島司(@aoshima256)