webui-user.batは起動時に使う実行ファイルです。
これを編集しコマンドライン引数を指定することにより
便利なオプションを付加できます。
編集方法
1.webui-user.bat を開く
webui-user.bat をテキストエディタで開きます(※)。
ダブルクリックじゃないよ。編集するために開くんだよ。
※右クリック→「編集」、またはメモ帳で開く。
stable diffusionのフォルダ
└webui
├ webui-user.bat ←これ。
└ webui.bat ←こっちじゃない。
2.webui-user.bat を編集&保存
- 下記が初期設定です。この中の set COMMANDLINE_ARGS= に引数(オプション)を追記していきます。
※アップデートによって初期設定が変更になる可能性有り。 - 編集の際は「webui-user.bat」のバックアップを残しておきましょう。
@echo off
set PYTHON=
set GIT=
set VENV_DIR=
set COMMANDLINE_ARGS=
call webui.bat
- 2つ以上の引数を記述する時は、下記のようにスペースで区切ってください。
set COMMANDLINE_ARGS=--autolaunch --xformers
- 見やすくしたい場合は、引数の間に「スペース+^」を追加します。
set COMMANDLINE_ARGS= ^
--autolaunch ^
--xformers
「スペース+^」は次の行に継続するandを表す、batファイル作成のルールです。
最後の行には「スペース+^」は付けないでください。
※autolanuchは一例であり、また現在のwebuiでは自動的にブラウザが起動します。(設定から変更可能です)
3.stable diffusionを起動
上記webui-user.batの設定は、stable diffusionを起動時にはじめて有効になります。
オプション
- オプションの引数一覧 ※AUTOMATIC1111氏の外部サイトへ※
- 代表的な引数は、下表の通り。
分類 オプション名 機能 生成系 --xformers 画像生成速度の大幅な向上と使用VRAM量の大幅削減に寄与する。
詳しくはXformersを導入するに掲載--no-half-vae VAEをfp16(低精度)で使用しない。有効にしないと一定の確率で黒画像が発生するため優先度は高い。
現在は黒画像が生成された場合自動でfp32として再試行する。
(関連) エラー解決メモ#A tensor with all NaNs was produced in VAE.
ただしVAEの処理をfp32で行うようになるので、VRAM使用量が少し増す--disable-nan-check 黒画像生成時の警告処理をスキップする。
いわゆるNaNエラーで止まっちゃうのを回避する。
黒画像自体が生成されなくなるわけではない。
しかし出現率が低いなら、これの利用をもって解決という扱いにすることをおすすめする--lowvram GPU↔CPU間でモジュールを転送する*1。特にVRAM不足時に積極的にメインメモリへ移動する。 --medvram lowvramと基本機能は同じで、必要なモジュールを厳選して転送しVRAMを活用する*2 --medvram-sdxl SDXL系列モデルに対してのみ、medvramと同じ処理を行う。
生成結果は変わらない--opt-channelslast nVIDIA社のTensorコアを積んでるグラボではさらなる高速化を図れる。
具体的には16xxや20xx以上のグラボ
…と1111公式wikiには書いてあるが、
2024年10月現在では実際には速度が若干低下してしまう。
古いオプションでもあり、現在では必要なさそう。
アドオンであるが、現在はStable Diffusion Web UI (Enhanced)を利用するのが望ましい。--ckpt-dir 追加のモデルフォルダを指定する
(例)--ckpt-dir "D:\hogehoge\ahoaho"--vae-dir だいたい上と同じ
追加のvaeフォルダを指定する
(例)--vae-dir "E:\Toshiaki\vae"UI系 --autolaunch 1111起動時にwebuiのブラウザページも自動的に開く。
v1.6.0以降ではwebui上で設定可能になったため、不要なオプションとなった。
Settings → System → Automatically open webui in browser on startup--theme dark webuiをダークテーマに変更する。闇属性のとしあきにおすすめ
http://127.0.0.1:7860/?__theme=dark のURLを利用する手もあるその他 --reinstall-xformers Xformerの更新に使用する。
普段は使用せず、webui起動時に「xformersのバージョンが古いよ」と指摘されたときに使う。--reinstall-torch pytorchの更新に使用する。
普段は使用せず、webui起動時に「torchのバージョンが古いよ」と指摘されたときに使う。リモート系 --listen LAN内の他端末から操作できるようになる。 --port xxxx 1111のデフォルトではポート7860が使用されているが、それを任意のポート番号に変更する。
なお1023以下のポートは管理者権限が必要なため、避けるのが望ましい。--share 危険につき使用厳禁!*3
参考:https://github.com/AUTOMATIC1111/stable-diffusion-webui/discussions/2579
インターネット経由で他端末から操作できるようになる。セキュリティに注意。
起動時にコマンドコンソール(白黒画面)にアクセス用のURLが表示される。72時間有効。-gradio-auth ユーザー名:パスワード アクセス時にユーザー名とパスワードによるログインが必要となるよう設定する。
(例)--gradio-auth toshiaki:hogehoge--freeze-settings 設定タブによる設定を変更できないようにする --enable-insecure-extension-access --listenまたは--shareオプションを利用すると、セキュリティ上の理由から、1111への拡張機能の新規導入ができなくなる。他人が勝手に拡張機能を導入してしまうことを未然に防止するためである。
これはその安全装置を外して、拡張機能の導入を可能にするオプション。リスクに注意。
VRAM消費量を削減するオプション
下記の方法で、メインメモリを一部使用することでVRAM消費量を低減できる。
モジュールの転送時間分だけ速度が犠牲になる。
VRAM不足(CUDA out of memory)に遭遇しない場合は不要。
VRAM不足になったら、まずは
set COMMANDLINE_ARGS=--medvram
それでも out of memory が出た場合
set COMMANDLINE_ARGS=--medvram --opt-split-attention
まだまだ out of memory が出た場合
set COMMANDLINE_ARGS=--lowvram --always-batch-cond-uncond --opt-split-attention
- ある程度選択的にモジュールを移動するので、
用途やVRAM容量によっては効果を実感できない場合があります。 - モジュールを小刻みに分割して転送はしないので、
VRAMが小さすぎる場合、または巨大なモデルを使用する場合(SDXL等)には対応できなくなりやすい。
その辺りは妥協が肝心。
SDXLの省VRAM対策オプションについて
- SDXLはcheckpointだけで6GB程度あるため、SD1.5より多くのVRAMが必要になる。
上記の--medvram-sdxlはSDXL利用時のみmedvramを有効にするオプションなのでこれを活用すると良い。
だだしVRAMが十分な場合は出力時間が無駄に増えるだけである- としあきの検証例では3060(12GB) SDXL出力 896x1152で最初の1枚目を除いて3~4枚出力してみたところ
medvram-sdxlありで1枚約30秒、無しで23秒、1枚で7秒、24%程度の差が出た。
- としあきの検証例では3060(12GB) SDXL出力 896x1152で最初の1枚目を除いて3~4枚出力してみたところ
- Optimum SDXL Usage(githubのA1111解説)によると、推奨オプションは
- 12GB以上 --xformers のみ
- 8GB(おそらく10GBも) --medvram-sdxl --xformers
- 4GB --lowvram --xformers
- ただし12GB以上でもhires等で解像度の高い画像を出力したり、サイズの大きなLoRAを使う場合はVRAMサイズを超える可能性が十分考えられる。
タスクマネージャーのパフォーマンスタブ>GPU項目で処理中のグラフを見てVRAMの利用状態をチェックした上で判断して欲しい。 - 起動batを「webui-user_medvram-sdxl.bat」など別名でコピーして--medvram-sdxlを記入し、利用状況で切り替えて使う手もある。
Geforce GTX16XX向け必須オプション
バグでfp16が使えないという報告がある。そのため、fp16を使わないよう下記のオプションを指定する。
set COMMANDLINE_ARGS=--precision full --no-half
VRAM消費量が大幅に増加するので --medvram を併用した方が良いかも。
※関連:GTX16xxユーザー向け
不要になった起動オプション
deepdanbooruを使用する
set COMMANDLINE_ARGS=--deepdanbooru
ちなみに、これ初回起動だいぶ時間かかると思うし、初回に使うときもだいぶ時間かかる ※ダウンロードが入るため
画像の内容からタグやプロンプトを推測して候補を挙げる機能。
現在はInterrogate DeepBooruボタンとして標準機能になっている。
img2imgで色付きペイントをする
set COMMANDLINE_ARGS=--gradio-img2img-tool=color-sketch
img2imgタブ内のimg2img時に使用可能です。
色に関しては様々な方法で指定することが可能です。
別ウィンドウの画像の色をスポイトすることもできます。
マウスでは描きにくいので板タブなどを使ってもよいかも。
現在はimg2imgにsketchタブとして標準機能になっている。
短縮URL
https://wikiwiki.jp/sd_toshiaki/-s/30cd5838