Stable Diffusion メモ:インストール・設定編
◆重要メモ
Python Launcher(py.exe)を使って複数のバージョンを切り替えられる。普段使いのpythonのバージョンと同居も可能。
py -3.10
※pyenvはwindowsでは使いにくいので非推奨。(対応しているバージョンが限られている、インストーラー版を認識しない、など)
以下の情報は古くなっています。
◆必要環境
Nvidia Geforceシリーズのグラボが必要。なくてもCPUで動くは動くが死ぬほど重いしまともに使えない。
VRAMが最低4G必要。ただ4Gだとまともに使えないので12Gあるとうれしい。
VRAMが少ないグラボで起動しないときはスイッチ(webui-user.batのset COMMANDLINE_ARGS=の行)に --lowvram を追加すると動くかもしれません
メモリが少ないと単純に遅くなるだけでなく生成できるサイズが小さくなり、またモデルによっては読み込めないかもしれません
メインメモリ(RAM)も多いほうが良い。少ないとメモリエラーになってモデルが読み込めなかったり、あるいは非常に時間がかかったりする。筆者は16Gから32Gに拡張したら起動時間が劇的に改善した。
reForge
https://github.com/Panchovix/stable-diffusion-webui-reForge
◆インストール
python 3.10.*をインストール
Stable Diffusion WebUI(Forge)で要求されている python 3.10系は、もう公式サイトからは(ソースコードしか)手に入らない。Windowsの場合、Microsoft StoreからであればPython 3.10で検索すればインストーラーで手に入る。
オプションでPython Launcherはぜひいっしょに入れておきましょう
メインで使っている別のバージョンと併用したい場合は、インストール時に3.10にPATHを通さないでおいてください。
gitをインストール
リポジトリをクローンしてくる。使うのはWebUI Forge。
> git clone https://github.com/lllyasviel/stable-diffusion-webui-forge
> cd stable-diffusion-webui-forge
ここで別のバージョンと併用したい場合はPython Launcher(py.exe)を使いましょう
3.10に切り替えつつvenvを構築する
py -3.10 -m venv venv
venv/Scripts/Actibateを実行し、python --versionでバージョンを確認してから続行。
> webui-user.bat
あとは必要なモジュールが自動的にインストールされる
標準モデルがインストールされはするが面白くないので適当に好みのモデルを入れる
SDXL(illustrious)系
illustrious系は、Loraを使わなくても大量のキャラクターをキャラクター名だけで出力することができる
さらに進化させたNoob AI(通称NAI)もあるが個人的には以下の2つを最もよく使っている
zukiAnimeILL_best
新バージョンも出てるが個人的にはこのバージョンが至高だと思っている
かわいさと美人さのバランスがちょうどいい
ikastoriousNoobaiXL_v91
もうちょっと色っぽい
SD1系(もう使ってないが、参考まで)
CounterfeitV30 https://civitai.com/models/4468
SD1系では筆者イチオシのモデル。全体的にスタイリッシュでとにかく「センスが良い」。アニメ風のきれいな線も出せるが、漫画風なラフな線も出がち。
※内蔵のVAEをそのまま使うとかなり色彩強調された感じになるのでclearvaeあたりを使うのがおすすめ。
Hassaku Hentai Model リンク自粛
nsfw向け。OrangeMix系統だがクドさが緩和されているのでこちらのほうが使いやすい。
Mix Pro https://civitai.com/models/7241
女の子の体が肉感的になる。引き締まった方向のムチムチ。体が大きくなるぶん頭身も高めになる。肌色が多めのnsfwで映える。華奢な女の子は苦手。
CityEdge ToomMix https://civitai.com/models/45616
顔以外はリアル調、顔だけがイラスト調。という非常に絶妙なバランスのモデル。ファンタジックな世界観やディフォルメの効いた絵は出にくい反面、写実的、現実的なシチュエーションにイラスト美少女を置けるので、ちょっとフェチ気味なシチュや犯罪臭のするシチュで非常に映える。
CuteYukiMix https://civitai.com/models/28169
ロリ萌えぷにケモ耳系。「ディフォルメだが手抜きではない」「かわいいに本気」なバランスが絶妙。
Anything系、NAI(Novel AI)リークはおすすめしません(どちらかというと、クオリティ的な意味で)。
モデルを入れる場所は別フォルダにすると良い。「モデル、出力フォルダの設定方法」も参照のこと
◆おすすめextension
Extensionsタブ>Install from URLタブ>URL for extension's git repository に以下のURLを入れてInstall
インストールが終わったらInstalledタブに行き Apply and restart UI ボタンを押して再読み込み
Booru tag autocompletion prompting
https://github.com/DominikDoom/a1111-sd-webui-tagcomplete
prompt入力中にDanbooruタグを候補としてリスト表示してくれる。若干邪魔なときもあるが便利さのほうが上回る。
設定で
Dynamic Prompts
https://github.com/adieyal/sd-dynamic-prompts
1枚ごとにプロンプトを変更し、全く別の画像を生成することができる。パターンは自分で定義できる。
個人的にキャラクター、ポーズ、表情、場所、服装などの組み合わせが数万になるくらいの大規模なオレオレプロンプトを作り込むくらいハマってしまった。
Regional Prompter
https://github.com/hako-mikan/sd-webui-regional-prompter
画像を区分け(たとえば左半分と右半分)してそれぞれにプロンプトを適用して、別のキャラやポーズ、表情などを書かせることができる。非常に多機能で、うまくやれば、持っているアイテムや服の色だけ変更などもできる。
Couple Forgeも似たような効果があるが、個人的にはこちらのほうが高機能で使い勝手が良いと思う。
Infinite Image Browsing
https://github.com/zanllp/sd-webui-infinite-image-browsing
画像ビューワを導入する。
出力した画像を見れるだけでなく使用したプロンプトや設定なども見返すことができる。
Stable Diffusion Webui Civitai Helper
https://github.com/zixaphir/Stable-Diffusion-Webui-Civitai-Helper.git
Civitaiを使ってる人なら必須。
インストールして真っ先に変える設定
Saving Images>Saving Images/grids>Always save all generated image grids: オフ
Saving Images>Saving Images/grids>Save copy of large images as JPG: オフ
Stable Diffusion>Sampler parameters>Hide samplers in user interface: 好みで
Stable Diffusion>Extra Networks>When adding to prompt, refer to Lora by>Filename
Stable Diffusion>Extra Networks>Always show all networks on the Lora page: オン
これがないと一部のLoraが表示されない
User Interface>Gallery>Show grid in gallery: オフ
User Interface>Live previews>Live preview file format: webp(おまじない。jpgでもいいかも)
User Interface>Live previews>Live preview display period: 0 (一番左に振ると-1になるので注意)
User Interface>User interface>Hidden UI tabs: Checkpoint Merger, Train
(otherwise, those detected as for incompatible version of Stable Diffusion will be hidden)
(Tag Autocompleteを導入しているときのみ)
Uncategorized>Tag Autocomplete>show all results: オン
Uncategorized>Tag Autocomplete>Maximum results: 15
Uncategorized>Tag Autocomplete>Show '?' next to tags, linking to its Danbooru or e621 wiki page: オン
danbooruの辞書ページへ飛ぶリンクが追加される
(Warning: This is an external site and very likely contains NSFW examples!)
その後、お気に入りのプロンプトや設定をいじったあと、
Other>Defaults>View changes, Apply
◆モデル、出力フォルダの設定方法
ここは個人的な好みなので必要に思わなければ飛ばして良い。
個人的にモデルや出力フォルダは実行フォルダとは別に管理したい。モデル(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 にあるファイルは消さないこと
code:dos
E:\Ai_Imaging\stable-diffusion-webui-reForge>mklink /D outputs E:\Ai_Imaging\#outputs
outputs <<===>> E:\Ai_Imaging\#outputs のシンボリック リンクが作成されました
E:\Ai_Imaging\stable-diffusion-webui-reForge>mklink /D models\Stable-diffusion E:\Ai_Imaging\#models\Stable-diffusion
models\Stable-diffusion <<===>> E:\Ai_Imaging\#models\Stable-diffusion のシンボリック リンクが作成されました
E:\Ai_Imaging\stable-diffusion-webui-reForge>mklink /D models\Lora E:\Ai_Imaging\#models\Lora
models\Lora <<===>> E:\Ai_Imaging\#models\Lora のシンボリック リンクが作成 されました
E:\Ai_Imaging\stable-diffusion-webui-reForge>mklink /D extensions\sd-dynamic-prompts\wildcards E:\Ai_Imaging\#extensions\sd-dynamic-prompts\wildcards
extensions\sd-dynamic-prompts\wildcards <<===>> E:\Ai_Imaging\#extensions\sd-dynamic-prompts\wildcards のシンボリック リンクが作成されました
◆実行時にエラー:コード 128が出る場合
ファイルの所有権の問題。管理者のままセットアップを行ってしまい、一般ユーザーに権限がない状態で実行するとアップデートチェック時にこのエラーが出る
フォルダを右クリしてアクセス権の設定をする。詳しくは省略
◆モデルの切り替えが遅すぎる
https://github.com/AUTOMATIC1111/stable-diffusion-webui/issues/11216
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の内容が結果に反映されない。コンソールを見るとエラーが出ている。
https://wikiwiki.jp/sd_toshiaki/エラー解決メモ#v7546bf6
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をアップデートしたい
https://happy-shibusawake.com/webui-update/1520/
stable-diffusion-webuiフォルダをターミナルで開きます。
git pullのコマンドで更新できます。
「Already up to date.」と表示された場合は、最新版になっているので、アップデートは不要です。
ただしその後各モジュールのバージョン整合が取れなくなることが多いので、フォルダごと消して再インストールが最も確実な気がする
フォルダを消すときは画像出力フォルダやモデルフォルダの内容がちゃんと退避されているか確認しよう
LoRAファイル名とWebUI表示名が一致しない
https://wikiwiki.jp/sd_toshiaki/学習ファイルの使用方法
学習ファイルの別名(エイリアス)で読み込まれている可能性があります。
settings→Extra Networks→When adding to prompt, refer to Lora byを「Filename」に変更