Stable Diffusion メモ:インストール・設定編
以下の情報は古くなっています。
◆必要環境
Nvidia Geforceシリーズのグラボが必要。なくてもCPUで動くは動くが死ぬほど重いしまともに使えない。
VRAMが最低4G必要。ただ4Gだとまともに使えないので12Gあるとうれしい。
VRAMが少ないグラボで起動しないときはスイッチ(webui-user.batのset COMMANDLINE_ARGS=の行)に --lowvram を追加すると動くかもしれません
メモリが少ないと単純に遅くなるだけでなく生成できるサイズが小さくなり、またモデルによっては読み込めないかもしれません
メインメモリ(RAM)も多いほうが良い。少ないとメモリエラーになってモデルが読み込めなかったり、あるいは非常に時間がかかったりする。筆者は16Gから32Gに拡張したら起動時間が劇的に改善した。
◆インストール
python 3.10.6をインストール
gitをインストール
> cd stable-diffusion-webui
> webui-user.bat
あとは必要なモジュールが自動的にインストールされる
標準モデルがインストールされはするが面白くないので適当に好みのモデルを入れる
筆者イチオシのモデル。全体的にスタイリッシュでとにかく「センスが良い」。アニメ風のきれいな線も出せるが、漫画風なラフな線も出がち。
※内蔵のVAEをそのまま使うとかなり色彩強調された感じになるのでclearvaeあたりを使うのがおすすめ。 Hassaku Hentai Model リンク自粛
nsfw向け。OrangeMix系統だがクドさが緩和されているのでこちらのほうが使いやすい。
女の子の体が肉感的になる。引き締まった方向のムチムチ。体が大きくなるぶん頭身も高めになる。肌色が多めのnsfwで映える。華奢な女の子は苦手。
顔以外はリアル調、顔だけがイラスト調。という非常に絶妙なバランスのモデル。ファンタジックな世界観やディフォルメの効いた絵は出にくい反面、写実的、現実的なシチュエーションにイラスト美少女を置けるので、ちょっとフェチ気味なシチュや犯罪臭のするシチュで非常に映える。
ロリ萌えぷにケモ耳系。「ディフォルメだが手抜きではない」「かわいいに本気」なバランスが絶妙。
「中華系ソシャゲ風イラスト」が得意。人気のあまりこのモデル独特の顔立ちが「マスピ顔」のお手本みたいな印象になっている。ハイコントラストでやけにつやつやした肌の細かいディティールの絵が出る。絵柄はクドめで、ハの字眉が出やすく常に煽っている表情になりがち。ちょっと気を抜くとすぐにnsfwに傾く。それを防ぐにはnegativeにnsfwを入れること。
SD黎明期から育てられた由緒あるモデルで今となっては古めの印象だがプロンプト次第でまだまだ戦える。「ギャルゲイラスト」「ラノベ風」が得意。比較的すっきりした線のキャラが出る。非常に長いネガティブプロンプトが公式で推奨されているのも特徴だが、実際はそんなに徹底的にnegativeしなくてもそれなりに良い絵が出る。モデルサイズがかなり大きめなのでtoolkit拡張でjunkデータを削ろう。名前の割にエグいnsfwはそんなに出ず、おとなしめ。
Anything系、NAIリークはおすすめしません(どちらかというと、クオリティ的な意味で)。
モデルを入れる場所は別フォルダにすると良い。「モデル、出力フォルダの設定方法」も参照のこと
◆おすすめextension
Extensionsタブ>Install from URLタブ>URL for extension's git repository に以下のURLを入れてInstall
インストールが終わったらInstalledタブに行き Apply and restart UI ボタンを押して再読み込み
Booru tag autocompletion prompting
prompt入力中にDanbooruタグを候補としてリスト表示してくれる。若干邪魔なときもあるが便利さのほうが上回る。
sd-webui-controlnet
もはや必須。様々な画像情報から望む結果に誘導する。特にopenposeでキャラクターのポーズを指定できるのが便利
別途モデルのダウンロードが必要。公式のモデルは重いので軽量版がおすすめ
Openpose Editor
WebUI上で人形を動かしてポーズを指定できる。類似したものはいくつかあるが、タブが独立して大きな画面で操作できることと、平面のみで奥行きがないことがかえって良い
Model toolkit
モデル(LoRaやLyCORISも含む)をチェックし、無駄なゴミデータを削ってくれるツール。標準のv1.5-pruned-emaonly.ckptですら無駄なデータが2G程度含まれている。削ることで当然読み込みが速くなる。削っても出力結果に影響はない。
Stable Diffusion Webui Civitai Helper
Civitaiを使ってる人なら必須。
◆モデル、出力フォルダの設定方法
ここは個人的な好みなので必要に思わなければ飛ばして良い。
個人的にモデルや出力フォルダは実行フォルダとは別に管理したい。モデル(checkpoint)なら#models、画像出力先を#outputs、のように。しかし、venvのおかげで、stable-diffusion-webuiより親のディレクトリはスクリプト側で認識できない。そこで、シンボリックリンクを張ってやることにする。
基本フォルダをC:/AI_Imagingとする
出力フォルダを#outputsとする
モデルのフォルダを#modelsとする
Stable-diffusionのモデル置き場を#models/Stable-diffusionとする
VAEのモデル置き場を#models/VAEとする
管理者権限でコマンドプロンプトを開き、以下を実行
> cd C:\AI_Imaging\stable-diffusion-webui
> mklink /D outputs C:\AI_Imaging\#outputs
> cd models
> mklink /D Stable-diffusion C:\AI_Imaging\#models\Stable-diffusion
> mklink /D VAE C:\AI_Imaging\#models\VAE
Controlnetのモデルフォルダの設定
※もとからある設定ファイルを生かすため、追加モデルフォルダとして設定する
Settings > ControlNet > Extra path to scan for ControlNet models (e.g. training output directory)
例:C:\AI_Imaging\#model\ControlNet-v1-1_fp16_safetensors
C:\AI_Imaging\stable-diffusion-webui\extensions\sd-webui-controlnet\models にあるファイルは消さないこと
◆実行時にエラー:コード 128が出る場合
ファイルの所有権の問題。管理者のままセットアップを行ってしまい、一般ユーザーに権限がない状態で実行するとアップデートチェック時にこのエラーが出る
フォルダを右クリしてアクセス権の設定をする。詳しくは省略
◆モデルの切り替えが遅すぎる
Settingsの「Disable memmapping for loading .safetensors files.(fixes very slow loading speed in some cases)」をチェックしてみる
set COMMANDLINE_ARGS= --xformers --no-hashing --opt-channelslast --no-download-sd-model --lowramも試してみる
単純にメモリ不足なだけの可能性も。筆者はメインメモリを16Gから32Gに換装したら劇的に起動時間が短縮した。
◆UIが白いのは落ち着かない
Settings>User Interface>Gradio Theme から好きなスキンを選ぼう
gradio/dracula_test が個人的にお気に入り
◆使わないタブを消す
Settings>User Interface>Hidden UI Tabs
Checkpoint Marger, Trainは出力するだけならいらない
◆生成中のプレビューを1段階ずつ表示したい
Settings > Live previews > Live preview display period を0にする(左端は-1なので注意。-1にすると生成完了まで全く表示されない)
◆グリッド一覧画像を保存しない
グリッド一覧画像は、複数枚を一度に出力したときにできるまとめ画像のようなもの
Settings > Saving images/grids > Always save all generated image grids のチェックをはずす(一番上のAlways save all generated imageではないので注意)
保存しないだけで、生成しないわけではない
◆VAEを設定する
Settings>VAE>SD VAE
VAEを切り替える機会が多いならUser Interface>Quicksetting listに"sd_vae"を追加すれば画面上部にプルダウンメニューが出現する
◆Sampling Methodが多すぎるので絞りたい
Settings>Sampler parameters>Hide samplers in user interface
個人的にあんまり好きじゃないやつ※主に低ステップでノイズが出がちなやつ
DPM++ 2M SDE Heun
DPM++ 3M SDE
DPM fast (低ステップでは使い物にならない。50でやっとまともに?)
IPNDM
IPNDM_V
DDIM
DDIM CFG++
PLMS
◆img2img時のアップスケーラーを指定する
Settings>Upscaling>Upscaler for img2img
4x_Fatality_MKII_90000_G が個人的に好み…(リンク紛失)
◆高画質画像で保存する
Settings > Saving images/grids > Quality for saved jpeg images を100(デフォでpng保存なので関係ないかも)
◆LoRa/LoCon/LyCORYSのサムネイルを小さくしたい
Settings > Extra Networks > Card width(height) for Extra Networks (in pixels) を調整
デフォは256x384くらいだろうか
半分の128x192くらいがちょうどよい?
次の項目のCard text scale も小さくしないと文字がはみ出ます
Auto tag Completeのセッティング
Show all results -> on :全件表示する
Show ? next to tags, ... -> on : キーワードの横に「?」マークを出し、それをクリックするとdanbooruのWikiページへ飛ぶ
dynamic promptsをインストールしているとwildcardsも検索できる(__で検索)。再起動が必要
◆プロンプトのプリセットの例
ポジティブ:なし
ネガティブ: (worst quality, low quallity:1.4), text, monochrome, signature, speech bubble
※nsfwバージョン … nsfwをオンにするとビクビク線やハートっぽいセリフが出やすくなるのでそれを消す
ポジティブ:nsfw
ネガティブ: (worst quality, low quallity:1.4), text, monochrome, signature, speech bubble, censored, trembling, twitching, motion lines
なおポジティブにmasterpieceやhigh qualityなどをつけてクオリティを限定すると、融通が聞かなくなったり似たような絵が出がちになる。ポジティブではクオリティを指定せずネガティブで悪いクオリティを弾くのみにすることで表現に幅が出る。
以下は個別にプリセットを分けて作っておくと切り替えやすくて便利
画面内の人数(1girl, solo / 1girl, 1boy, hetero / 1girl, 2boys, mmf threesome など)
服装 (nude / swimsuit / underware / bikini / school uniform / track suit / friled dress など)
場所 (indoors / outdoors / bedroom / classroom / school gym / beach / poolside / city / park など)
体位 (詳細は省略)
トラブルシューティング
ControlNetの内容が結果に反映されない。コンソールを見るとエラーが出ている。
OSError: [Errno 22] Invalid argument: '(ファイルパスが2回繰り返される)\\sd-webui-controlnet\\models\\cldm_v15.yaml"
config.jsonに保存されているファイルパスの情報が破損しているため、以下を含む行を探し、削除する。
“control_net_model_config”: ...,
“control_net_model_adapter_config”: ...,
“control_net_detectedmap_dir”: ...,
config.jsonファイルを保存後、webui-user.batを実行する。
WebUIをアップデートしたい
stable-diffusion-webuiフォルダをターミナルで開きます。
git pullのコマンドで更新できます。
「Already up to date.」と表示された場合は、最新版になっているので、アップデートは不要です。
ただしその後各モジュールのバージョン整合が取れなくなることが多いので、フォルダごと消して再インストールが最も確実な気がする
フォルダを消すときは画像出力フォルダやモデルフォルダの内容がちゃんと退避されているか確認しよう
LoRAファイル名とWebUI表示名が一致しない
学習ファイルの別名(エイリアス)で読み込まれている可能性があります。
settings→Extra Networks→When adding to prompt, refer to Lora byを「Filename」に変更