メインコンテンツへスキップ
見出し画像

Stable Diffusion web UI (Forge) の個人的な設定メモ

    Last update 2-18-2024
    ※ (8-11-2024) 【重要】Forge版は現在、実験用途となっています。
    → 
    Stable Diffusion WebUI Forge利用手順(旧ver) 
    → 
    Stable Diffusion WebUI ForgeでFLUX.1の利用(新ver) 
    ※モデルのディレクトリを変更して統一する等もしているので、よければ参考にしてください。



    ▼ 0. 本記事について

    0-1. 概要

     現在使用しているAUTOMATIC1111氏のStable Diffusion web UI(以下AUTOMATIC1111版)と、Stable Diffusion WebUI Forge(以下Forge版)設定に関する個人的なメモです(Extensionの話は出てきません)。

     別で、Stable Diffusion WebUI Forgeの導入記事もあります(難易度はAUTOMATIC1111 web UIと同程度)。



    ▼ 1. ディレクトリ構成とバッチファイル

     バッチファイルのファイル名はお好みで変更してください。

    1-1. ユーザーディレクトリ 

     コマンド プロンプトを開くとユーザーディレクトリから始まるため、ここに作業ディレクトリへ移動するバッチファイルを置いています。

    %UserProfile% (=C:\Users\*****)
    └ ai.bat

     下記は「ai.bat」の内容です。

    @echo off
    c:
    cd \aiwork

     実は、筆者の現在の作業フォルダは「D:\aiwork」なのですが、記事では以前の「C:\aiwork」に統一しています。

    1-2. 作業ディレクトリ

     作業ディレクトリにはモデルやツールを置いています。ツールは「git clone」でインストールすることが多いです。下記の詳細は順番に紹介します。

    C:\aiwork
    ├ sd-data
    ├ stable-diffusion-webui
    ├ stable-diffusion-webui-forge
    ├ gp.bat
    ├ gpf.bat
    ├ webui1.bat
    ├ webui2.bat
    ├ webuix.bat
    ├ webuif1.bat
    ├ webuif2.bat
    └ webuifx.bat

    1-3. モデル等のディレクトリ

     Stable Diffusionのバージョンごとに、モデル、TI、LoRAのディレクトリを作り、さらにVAEのディレクトリを用意しています。VAEはSDv1とv2は同じものが使えて、SDXLのみ互換性がありません。

     この仕分けは面倒でしたが、後々のことを考えて行いました。

    C:\aiwork\sd-data
    ├ sdv1 ┬ embeddings
    │      ├ lora
    │      └ models
    ├ sdv2 ─ 同上
    ├ sdxl ─ 同上
    ├ vae
    └ vae-xl

    1-4. AUTOMATIC1111版とForge版

     それぞれ「git clone」でダウンロードしています。

    1-5. アップデート用のバッチファイル

     単に「git pull」するだけのバッチファイルです。「gp.bat」は下記の内容で、「gpf.bat」は「cd \aiwork\stable-diffusion-webui-forge」に変えただけです。ファイル名はお好みで変えてください。

    @echo off
    cd \aiwork\stable-diffusion-webui
    git pull
    cd ..

    1-6. AUTOMATIC1111版の起動バッチファイル

     環境変数の「PYTORCH_CUDA_ALLOC_CONF」はお守りです。「--opt-sdp-no-mem-attention」は再現性のため(同じ設定で常に同一の画像が出力される)、「--no-half-vae」は真っ黒な画像が出ないように、「--medvram」は省メモリ動作のため(ただし少し遅くなる)です。

     モデルの場所は「--ckpt-dir」、LoRAは「--lora-dir」、TIは「--embeddings-dir」、VAEは「--vae-dir」で設定します。設定しなかったものはデフォルトの場所になります。

     ところで、本体をアップデートしたとき、先にExtensionをアップデートし忘れると起動できなくなる場合があります。そのときは「--update-all-extensions」をつけて起動し、起動ができたら外してください。

     下記はSDv1用の「webui1.bat」です。SDv2用はVAE以外のディレクトリを変更し、SDXL用はVAEのディレクトリも変更します(SDXLのみVAEの互換性が無いため)。

    @echo off
    
    set PYTHON=
    set GIT=
    set VENV_DIR=
    set PYTORCH_CUDA_ALLOC_CONF=garbage_collection_threshold:0.6, max_split_size_mb:128
    
    set COMMANDLINE_ARGS=--opt-sdp-no-mem-attention --no-half-vae --medvram --ckpt-dir C:\\aiwork\\sd-data\\sdv1\\models --lora-dir C:\\aiwork\\sd-data\\sdv1\\lora --embeddings-dir C:\\aiwork\\sd-data\\sdv1\\embeddings --vae-dir C:\\aiwork\\sd-data\\vae
    
    cd stable-diffusion-webui
    call webui.bat
    cd ..

    1-7. Forge版の起動バッチファイル

     Forge版の起動バッチファイルは、AUTOMATIC1111版のものから起動オプションを外して、cdコマンドを書き換えるだけで作れます。下記は「webuif1.bat」です。

    @echo off
    
    set PYTHON=
    set GIT=
    set VENV_DIR=
    set PYTORCH_CUDA_ALLOC_CONF=garbage_collection_threshold:0.6, max_split_size_mb:128
    
    set COMMANDLINE_ARGS=--ckpt-dir C:\\aiwork\\sd-data\\sdv1\\models --lora-dir C:\\aiwork\\sd-data\\sdv1\\lora --embeddings-dir C:\\aiwork\\sd-data\\sdv1\\embeddings --vae-dir C:\\aiwork\\sd-data\\vae
    
    cd stable-diffusion-webui-forge
    call webui.bat
    cd ..

     仮想環境を共有して容量を節約したい場合は、「set VENV_DIR=C:\aiwork\stable-diffusion-webui\venv」のような設定にします。当然ながら双方に影響するため、個人的にはあまりおすすめしません。



    ▼ 2. 設定

     Settingsの内容は、インストール先の「config.json」に保存されています。削除すると未設定の状態となって、デフォルト値が使用されます。差し替えてから起動することで、用途別の設定を持つこともできると思います。

    2-1. Settingsの変更

     個人的に変更している箇所について記録しておきます。変更の入力が終わったら「Apply settings」「Reload UI」をクリックします。

    Images filename pattern
    [datetime<%Y%m%d_%H%M%S>]-[seed]-[model_name]
    生成した画像のファイル名で、上記は筆者の設定。

    Add number to filename when saving
    一つ前の設定で十分なためチェックを外す。

    Always save all generated image grids
    プロットした画像は容量が大きいので、チェックを外して保存は手動で行うことにする。

    Save copy of large images as JPG
    容量が大きくてもJPG形式で保存する必要がないのでチェックを外す。

    Save images to a subdirectory
    Save grids to a subdirectory

    画像保存時のディレクトリ分けが不要なのでチェックを外す。なお、ディレクトリ分けするときの名前は「Directory name pattern」で設定できる。

    Print a list of Textual Inversion embeddings when loading model
    チェックを入れる。コマンド プロンプトの表示が少し変わる。

    Eta noise seed delta
    デフォルトは0で、NAIは31337である。後者を設定する。

    Show grid in gallery
    チェックを外す。

    Live preview display period
    デフォルトは10で、4に変更。ライブプレビューの更新頻度。

    Show Width/Height and Batch sliders in same row
    チェックを外す。

    Hires fix: show hires checkpoint and sampler selection
    Hires fix: show hires prompt and negative prompt

    チェックを入れる。Hires fixで別のモデル、サンプラー、プロンプトを指定することができる。

    Quicksettings list
    画面の上部に表示する項目。好みだが、「sd_model_checkpoint」「sd_vae」「Clip_stop_at_last_layers」は必須と言える。

    2-2. Forge版のみの設定等

     Forge版のみに存在する項目や、AUTOMATIC1111版とは名前や設定方法が若干異なる項目がありました。

    Automatic backward compatibility
    Forge版のみ。PNG infoから送った際の挙動に影響しそう(未確認)。

    Downcast model alphas_cumprod to fp16 before sampling. For reproducing old seeds.
    Forge版のみ。チェックの有無で出力が変わる可能性がありそう(未確認)。

    Enables the Extra Networks directory tree view by default
    Forge版のみ。

    Lora not found warning in console
    Lora not found warning popup in webui

    Forge版のみ。

    Pad prompt/negative prompt to be same length (AUTOMATIC1111版)
    Pad prompt/negative prompt (Forge版)
    おそらく同じ設定内容。

    Pad prompt/negative prompt (v0)
    Forge版のみ。

    FP8 weight
    Forge版のみ。

    Cache FP16 weight for LoRA
    Forge版のみ。

    Noise schedule for sampling
    Forge版のみ。

    SD Unet
    Forge版のみ。同名の選択項目の初期値とみられる。

    Enable emphasis (AUTOMATIC1111版)
    Emphasis mode(Forge版)
    同じ設定に関するもの。下記記事の内容が関係するかもしれない(未確認)。
    >Stable Diffusion XLで生成画像の破綻が起きる問題の解析と対策
    >https://note.com/hakomikan/n/nb6dd68a1bd9e 

    Enable comments
    Forge版のみ。チェックすると、プロンプトの領域にコメントを入れられる模様。

    Automatically convert VAE to bfloat16
    Forge版のみ。

    Overlay original for inpaint
    Forge版のみ。

    Full page image viewer: control icon unfocused opacity
    Full page image viewer: tool bar opacity

    Forge版のみ。

    Count tokens of enabled styles
    Forge版のみ。

    Don't Interrupt in the middle
    Forge版のみ。複数枚の生成中に中断した際、現在の画像を生成してから停止するかどうか。

    Show a progress bar in the console for tiled upscaling.
    Forge版のみ。

    Select which DAT models to show in the web UI.
    Tile size for DAT upscalers.
    Tile overlap for DAT upscalers.

    Forge版のみ。Upscalerに「DAT x2~x4」が登場している。

    Use torch.compile to accelerate SwinIR.
    Forge版のみ。SwinIRを使う方はチェックしてみると良いかもしれない(初回は時間がかかるとのこと)。

    Shrink the brush size
    Enlarge the brush size

    Forge版のみ。

    2-3. その他の設定

     拡張機能の設定が色々とあるようですが、そのあたりは省略します。



    ▼ 3. おまけ

     記事内容とは直接の関係がない表紙画像のことです。

     Amethistic_Sound_Mix XL v1.0とsd_xl_turbo_loraを使用して、Forge版で生成を行いました。SDXLは従来バージョンよりも生成に時間がかかるのがネックだったので、LCM LoRAやSDXL Turboのような低Stepsの技術は重要だと思います。

     表示上は「Time taken: 9.5 sec.」で、Generateをクリックしてから再度クリックできるようになるまでの時間は10.5秒でした。この早さなら「やってみようか」という気になりませんか?

    画像
    best quality, anime, pastel painting, upper body, 1lady, smile, :d, hold out hand, gray tied longhair, white ribbon blouse, big round eyes, black eyes, pink bow, entrance of house, flower bed, farm, <lora:sd_xl_turbo_lora_v1-128dim:0.3>
    Negative prompt: bad face, low quality, lowres, bad anatomy, bad hands, 2girl, suspender, teeth, frill,
    Steps: 12, Sampler: DPM++ 2M SDE Turbo, CFG scale: 1.5, Seed: 3782753002, Size: 1344x768, Model hash: da18d25791, Model: amethisticSoundMixXL_v10, Clip skip: 2, Version: f0.0.14v1.8.0rc-latest-184-g43c9e3b5



    ▼ 4. その他

     私が書いた他の記事は、メニューよりたどってください。

     noteのアカウントはメインの@Mayu_Hiraizumiに紐付けていますが、記事に関することはサブアカウントの@riddi0908までお願いします。

     
     
    5060Ti (16GB) と 3060 (12GB) を所持。記載が無い限り文章は手書きです。記事に関することは X の riddi0908 までお願いします。質問箱は気まぐれにお返事します。

    あなたへのおすすめ