Extensions

Last-modified: 2023-04-01 (土) 00:46:03

Extensionsタブから拡張機能を導入することが出来ます。
従来あったCustom Scriptの機能を発展させ導入しやすくしたもの。
2022/11~12頃にExtensionsになった?

導入方法

基本的な導入方法

Extensions → Available とタブを開いていき、 Load from: ボタンを押すと主要な拡張機能の一覧が出てきます。

すぐ横の「Extension index URL」で一覧の読込先を変更できますが、特に理由が無ければ初期値のまま変更しないことを推奨。

ただし世の中にある全ての拡張機能が網羅されているわけではありません。
「主にこんな拡張機能があるよ」というカタログくらいに考えておくと良いでしょう。
導入したい拡張機能のURLを把握している場合は、後述の「Install from URL」タブを利用する方が早いかもしれません。
 誘導→導入したい拡張機能のURLを知っている場合

1111には膨大な数の拡張機能が存在するため、一覧も長大になっています。2023年3月現在127種!
「Hide extension with tags」に ☑ を付けると、対象カテゴリに該当する拡張機能が非表示になります。適度に切り替えながら閲覧してみてください。
デフォルトでは localization(日本語化等) と ads(?) にチェックが入っています。
「Order」のラジオボタンを利用することで、任意の順序に並べ替えできます。

  • Extension に名前、リンクURL、カテゴリ
  • Description に説明、掲載開始日
  • Action にインストール状況が表示されます。
    • Action が Install になっているモノはボタンを押すことでインストールできます。
    • Installed(グレーアウト) になっているモノはインストール済みの拡張機能です。

インストール後、反映のためにUIのリスタートが必要です。
「Installed」タブを開いて Apply and restart UI ボタンを押す事で、導入した拡張が読み込まれた状態でWebUIが再起動します。
しかし正常に動作するために、1111自体の再起動を必要とする拡張機能が数多くあります。念のため1111のwebUI(=ブラウザページ)およびコマンドプロンプトを一旦終了し、あらためて1111を起動することを推奨します。

導入したい拡張機能のURLを知っている場合

  1. 「Install from URL」タブを開き、上段(URL for extension's git repository)の欄に拡張機能のURLをコピペします。
    下段(Local directory name)は基本的に空欄のままで問題ありません。
  2.  Install ボタンを押すと、インストールが開始され、ほとんどの場合はすぐに完了します。
  3. Installed タブを開いて Apply and restart UI ボタンを押す事で、導入した拡張が読み込まれた状態でWebUIが再起動します。
    しかし正常に動作するために、1111自体の再起動を必要とする拡張機能が数多くあります。念のため1111のwebUI(=ブラウザページ)およびコマンドプロンプトを一旦終了し、あらためて1111を起動することを推奨します。

--listenオプションを利用してる人

webui-user.bat用の引数/起動オプションの一つに「--listen」が存在する。
LANやインターネット経由で1111を操作するためのオプションだ。
 (参考)1111公式の機能wiki#Command Line Arguments
しかしこのオプションを有効化している場合は、webui上からの拡張機能のインストールが無効化されてしまう。
恐らくはセキュリティ上の理由(他者が悪意を持って拡張機能を勝手に導入してしまうことを未然に防止するため)と考えられる。
この場合、拡張機能を手動でインストール(zip解凍あるいはgit cloneなど)する、もしくは一時的に「--listen」オプションを外して対処しよう。

「--listen」に加えて「--enable-insecure-extension-access」も利用する、という手もある。
例えばこのような書き方になる。

set COMMANDLINE_ARGS=--xformers --listen --enable-insecure-extension-access

ただしこの方法を用いる場合、前述の通り、他者が悪意を持って拡張機能を勝手にインストールすることが可能になってしまう。要注意。

拡張機能の更新方法

「Installed」タブにある「Check for updates」を押すことでアップデートの確認ができます。
確認後、Updateの横に ☑ が入った状態で Apply and restart UI を押すことでアップデートができます。
この後、正常に動作するために、1111自体の再起動を必要とする拡張機能が数多くあります。念のため1111のwebUI(=ブラウザページ)およびコマンドプロンプトを一旦終了し、あらためて1111を起動することを推奨します。

拡張機能の無効化

Installed タブから行います。
Extension の名前の横に ☑ が入っているものが現在有効化されている拡張機能です。
チェックのON/OFFを切り替えた後、 Apply and restart UI を押すとそれが反映された状態でWebUIが再起動します。

ただし任意の拡張機能を無効化しても、ファイルの削除までは行われません。
残したままだと1111の起動時間に大きく影響する場合もあります(例: Dreambooth)。
stable-diffusion-webui\extensions に格納されているので、削除、もしくは別の場所へ退避させることも検討してみてください。

拡張機能の紹介

数が膨大なため網羅はしてないし、今後もしません。
個人的に知っている物の中から、おすすめできる物を何点か。

日本語化

ja_JP Localization 🔗

https://github.com/Katsuyuki-Karasawa/stable-diffusion-webui-localization-ja_JP
1111のUIを日本語化してくれる。
 誘導→日本語化

ただし本体以外の拡張機能については、完全に日本語化が済んでいるものから、一部日本語化されているもの、完全に英語のままの拡張機能までさまざま。世の中に存在する拡張機能の数が極めて多いためだ。
また本体についても、新規に追加されたばかりの機能や名称が変更された機能など、100%日本語化されるとは限らない。悪しからず。

日本語と英語を併記させる設定(バイリンガル表示)も可能。
英語UIは利用者人口が多い(としあきにも多い)。なのでスレで尋ねたり調べ物をする際など、英語UIの機能名で質問や検索を行うと捗る。
表示が若干うるさく感じたり、表示が重なって見づらくなる箇所が一部ある、といったデメリットも少し存在するので、お好みで。
loc_jp1.png
上の画像はそのバイリンガル表示を利用したもの。日本語のみや、英語に戻すことも簡単に可能。

入力補助系

Booru tag autocompletion 🔗

https://github.com/DominikDoom/a1111-sd-webui-tagcomplete

入力候補のサジェスト

danbooru語向け。プロンプト入力欄にdanbooru語のオートコンプリートを効かせてくれる。
つまり途中まで入力するだけで候補をサジェストしてくれる。

  • Settings → Tag Autocomplete にて表示数を10くらいに増やしてもいい。
  • Show '?' next to tags, ~ をONにすると、本家danbooruのサイトと同様に、候補の左に「?」が追加される。
    この?をクリックすると、タグの定義の解説や関連タグを確認できる。

Aspect Ratio selector 🔗

https://github.com/alemelis/sd-webui-ar
アスペクト比や解像度のプリセットを呼び出すボタンを追加できる。
導入するとtxt2imgやimg2imgの左下辺りにボタンが追加される。
Config PresetやPreset Utilitiesより機能が限定されてるけど、これはこれでシンプルな良さがある。
WidthとHeightを入れ替える「⇅」ボタンと組み合わせて利用するのも良い。


Config-Presets 🔗

https://github.com/Zyin055/Config-Presets

設定のプリセット

画像サイズ、サンプラー、ステップ数などのプリセット設定を作成し、プルダウンリストから手軽に切替できる。
導入するとtxt2imgやimg2imgの右下の辺りにプルダウンリストが追加される。
プリセットとして設定可能な項目についてはREADME.mdを参照のこと。


Dynamic Prompts 🔗

https://github.com/adieyal/sd-dynamic-prompts

ダイナミックプロンプトの使い方

{red|blue|yellow} hair, みたいに乱数を用いたプロンプトを利用できるようになる。生成毎に結果が変化するので、末永く楽しめる。
テキストファイル形式でワイルドカードのリストを作成して利用することも可能。髪型リスト、衣装リスト、場所リスト等を作ると良い。
導入するとtxt2imgやimg2imgの左下、Scriptの上辺りに[Dynamic Prompts ◀]のパネルが追加される。
(参考) としあき製ワイルドカード
(参考) としあき製おしゃれ着せ替えワイルドカード fsn.txt

おしゃれ着せ替えワイルドカードの出典

おしゃれ着せ替えワイルドカードの出典

226無念Nameとしあき23/03/27(月)23:42:36 ID:fqYA/u1o[3]No.1080928331No.1080928331 ngそうだねx14
おしゃれ着せ替えWildcard作りました
fu2050153.txt
適当に名前を変えてWildcardに指定するといろんな服に着替えるよ

例→ fsn.txt
プロンプト→ __fsn__

あとは好きなLoraなりワードなり追加してね
ファッション雑誌みたいになるよ

(編注: 1girl, とsolo, は除去しておきました)


text2prompt 🔗

https://github.com/toshiaki1729/stable-diffusion-webui-text2prompt
短いシチュエーションの指定から、それっぽいプロンプトを生成してくれる補助タブが追加される。
背景の指定に困ったり、シチュエーションは思いうかぶけど何書いたらいいか分からん人にオススメ。
生成されるのはプロンプトなので、それをtxt2imgにコピペして不要なとこを取っ払えば効率アップできる。

txt2img/img2imgの左下にパネルとして追加されるもの

Additional Networks 🔗

https://github.com/kohya-ss/sd-webui-additional-networks

追加フォルダの設定

(※あんま詳しくないので加筆修正希望)
LoRA利用者に人気のある拡張。

  • 導入するとtxt2imgやimg2imgの左下辺りに[Additional Networks ◀]のパネルが追加される。
  • またtxt2imgやimg2imgと同じ並びにAdditional Networksのタブも追加される。
    こちらではLoRAファイルのメタデータ編集もできる。説明やメモなどの情報を埋め込むのに役立つ。
  • Settings → Additional NetworksにてLoRAファイルの場所を複数指定できる。
    1111標準のLoRAフォルダと、拡張機能用のLoRAフォルダ、両方を指定しておくと便利(上の画像を参照)。

DAAM 🔗

https://github.com/toriato/stable-diffusion-webui-daam

DAAM

単語が画像のどの部分に効いてるかをヒートマップで可視化してくれる拡張機能。
…の、フォーク版。本家は2022/12で更新が止まっていて、エラー吐くので。

281 無念 Name としあき 23/03/28(火)15:05:06 ID:9PtwxEWc No.1081069735 del +
久々にdaam使ってみたらエラーが出たんだけどこっちに差し替えたらちゃんと動いた
https://github.com/toriato/stable-diffusion-webui-daam

導入するとtxt2imgやimg2imgの左下に[Attention Heatmap ◀]のパネルが出現する。


Latent Couple 🔗

https://github.com/opparco/stable-diffusion-webui-two-shot

Latent Coupleの使用例

としあき製。押しカプGenerator (two shot diffusion)を1111の拡張機能にしたもの。
従来のAI絵では、複数人を登場させる際に、各人に対して要素を指定しようとしても結果が混ざってしまいがちで、制御が甚だ難しかった。その問題の解決を図る技術。
要素の混ざりや色移りを完全に防止できるとは限らないが、安定性の向上に役立つ。
導入するとtxt2imgやimg2imgの左下に[Latent Couple ◀]のパネルが出現する。

Latent Coupleのパネルが出現しない時

  • 1111のバージョンが古い(2023/2/19以前のバージョンを使っている)
    →最新版に更新しよう(git pull等)
    あんまり頻繁に更新するのもリスクが高い。
    けれどあんまり更新しないと、今度はこういう問題のリスクが高まることも憶えておいてほしい
  • 1111本体(コマンドプロンプト)を再起動してない
    →拡張機能を導入したら念のために1111を再起動する癖をつけるのがオススメだよ

使用方法やプロンプトの記述例などについてはREADME.mdを参照のこと。
なお、README.mdのExamplesの項目にある通り、プロンプト内にAND構文を利用することが前提となっている。しかしDDIM、PLMS、UniPCなど一部のサンプラーはAND構文に対応しておらず、エラーが出るので注意してほしい。何か他のサンプラーに切り替えて利用しよう。


Composable LoRA 🔗

https://github.com/opparco/stable-diffusion-webui-composable-lora
としあき製。LoRAの影響範囲を任意に限定できる拡張機能。

  • 1111の標準機能では、LoRAがANDを跨いでプロンプト全体に作用してしまう。
    しかしこの拡張機能を利用すると、LoRAの作用を「ANDを跨がない範囲」に限定できる。
    例えば複数のキャラに別々のLoRAを使い分けたい場合や、キャラLoRAと背景LoRAを併用する場合などに役立つ。
  • 1111の標準機能では、LoRAがネガティブプロンプトにまで作用してしまう。
    しかしこの拡張機能を利用すると、ネガティブプロンプトへの作用を無くすことが可能になる。

導入するとtxt2imgやimg2imgの左下に、[Composable LoRA ◀]のパネルが追加される。下の画像参照。
Composable LoRAの設定パネル
使用前にREADME.mdも読んでね。


sd-webui-controlnet 🔗

https://github.com/Mikubill/sd-webui-controlnet
線画や棒人間のポーズを元に画像を生成できるControlNetという技術…を1111上で簡便に利用できるよう、拡張機能にしたもの。
その前処理として、画像から線画や棒人間を抽出する機能も備えている。
詳しくはControlNetのページを参照されたし。


sd-webui-enable-checker 🔗

https://github.com/shirayu/sd-webui-enable-checker

enable_checker.png

拡張機能のEnableチェックボックスのON/OFF状態を検出して、パネルに着色する拡張機能。
パネルを閉じたままでもEnableのON/OFFを確認可能になる。水色=ON、灰色=OFF。


Cutoff 🔗

https://github.com/hnmr293/sd-webui-cutoff

Cutoff.jpg

トークンの影響範囲を限定させることができる。
通常、 red hair, blue ribbon, green skirt, white socks, のように色指定しても他の場所に色移りしてしまうことが多い。これはトークンが後方のトークンにも多少の影響を与える仕組みだからだ。
Cutoffを利用すると、その後方への影響をある程度抑制することできる。つまり色移りなどの防止に役立つ。
導入するとtxt2imgやimg2imgの左下に、[Cutoff ◀]のパネルが追加される。

デフォルト設定を変更する方法
「ui-config.json」のこの辺を書き換えると、1111を起動する度に設定し直す手間を省くことができる。

customscript/cutoff.py/txt2img/Enabled/value
customscript/cutoff.py/txt2img/Target tokens (comma separated)/value
customscript/cutoff.py/txt2img/Weight/value
customscript/cutoff.py/img2img/Enabled/value
customscript/cutoff.py/img2img/Target tokens (comma separated)/value
customscript/cutoff.py/img2img/Weight/value

txt2img/img2img用の追加scrpit

Detection Detailer 🔗

https://github.com/dustysys/ddetailer

Detection Detailerの使用例

基本的にAI絵は小さなものの描写が苦手で潰れてしまいがち。
しかしこの拡張機能を利用すると、顔や人体を自動認識して補正処理を行ってくれる。
顔や人体が小さく描写されてしまう画像サイズや構図において、精細化に役立つ。
InpaintのInpaint area=Only maskedのような処理を自動的に行っているようだ。
また、自動認識した顔や人体のマスクを保存することもできる。
(Settings → Detection Detailer)

導入手順

  1. まずは一般的な拡張機能と同様の手順でDetection Detailerを導入する。
     誘導→導入したい拡張機能のURLを知っている場合
  2. 次に、DDの動作に必要な「Build Tools for Visual Studio 2022」を入手するため、下記ページを開く。
    https://visualstudio.microsoft.com/ja/downloads/
    下にスクロールして「すべてのダウンロード」の「> Tools for Visual Studio」を開く。
    すると候補の中に「Build Tools for Visual Studio 2022」があるので「 ダウンロード 」ボタンを押す。
    これで「vs_BuildTools.exe」のDLが始まる。これは3.5MBなのですぐ終わる。
  3. DLが完了したら「vs_BuildTools.exe」をダブルクリック等で実行し、インストールを開始する。
    BuildTools_1.png
    上図の画面で、インストールする要素を選択する。
    左上にある「C++によるデスクトップ開発」こそが、DDの動作に必要となる物。
    画像にあるようにクリックでを有効にして、右下の「インストール」を押す。
  4. 数GBあるので通信環境にもよるが、早ければ数分でDLとインストールが完了し、下のメッセージが表示される。
    BuildTools_2.png
    「OK」を押してこのメッセージを閉じる。
    Visual Studio Installerの画面も右上の「✕」を押して閉じてしまって構わない。
  5. コマンドプロンプトを起動する。
  6. コマンドプロンプト内で、「cd /d」を使って、1111のあるディレクトリへ移動する。
    例:cd /d D:\hogehoge\stable-diffusion-webui
  7. 下記の通りに入力して、venv(仮想環境)に入る。コピペするといいよ。
    venv\Scripts\activate
  8. 下記の通りに入力して、Cythonとやらをvenvにインストールする。
    pip install Cython
  9. 下記の通りに入力する。
    pip install "git+https://github.com/philferriere/cocoapi.git#egg=pycocotools&subdirectory=PythonAPI"
  10. コマンドプロンプトを閉じる。右上の✕ボタンでいい。
  11. 1111を起動し、txt2imgのScriptのプルダウンの中に「Detection Detailer」が表示されていればOK。
    Detection_Detailer_2.png
    確認が済んだら、先ほどのインストール完了のメッセージにあった通り、一度PCを再起動するのが望ましい。

困った時は

  • 手順9を実行すると、エラーがいっぱい出てきちゃう…
     →まずpip install numpyを試して、その後で再度手順10を実行してみて
     →それでもダメならエラー画面のスクショをスレに貼って尋ねてみてね
  • 手順11でプルダウンに「Detection Detailer」が表示されない…
     →とりあえず1111を最新版に更新してみて
     →もしも1111起動時にエラーが表示されるなら、エラー画面のスクショをスレに貼って尋ねてみて
  • 手順11に「Detection Detailer」は表示されるけど、利用するとエラー吐いちゃう…
     →エラー画面のスクショをスレに貼って尋ねてみてね

使用方法
https://github.com/dustysys/ddetailer#usage

備考

備考

108 無念 Name としあき 23/03/13(月)23:56:55 ID:wfutWe4Y No.1076049653 del そうだねx6

>ScriptでDetection Detailer使うと

>Outputフォルダに画像が自動保存されないんだけど俺だけかしら

t2iの生成でDetection DetailerをONにしておくと
顔を認識して修正の必要がない画像の場合はスルーされてoutputフォルダに画像が自動保存されない
たとえばこの画像なんかは顔が見えないのでスルーされる
さらにDDetailerとdynamic promptを併用して使ってるとPNGに埋め込まれる呪文がランダム化前のだけ埋め込まれて結果的にどんなpromptを引いたか謎のままになる
なのでDDetailerをONにしつつこういう顔のない画像も保存したいのならこまめに手動保存をするか
顔のない画像は破棄であきらめる

Extrasに追加

Pixelization 🔗

https://github.com/AUTOMATIC1111/stable-diffusion-webui-pixelization

ドット絵風

画像をドット絵風に変換してくれる拡張機能。楽しいよ! おいで!
README.mdにある通り、インストール後に3つのファイルを手動でDLして配置する必要がある。
導入するとExtrasタブの左下辺りに項目が追加される。
Pixel sizeを2~4くらいに設定して実行しよう。

学習に役立つ

sd_katanuki 🔗

https://github.com/aka7774/sd_katanuki
学習の友。画像から人物を切り抜いて白背景にしたり、透過させることができる。
マスクを作成することもできるので、フォトショ等の画像編集ソフトに持ち込んで、より丁寧に切り抜くといった利用法も可能。


WD 1.4 Tagger 🔗

https://github.com/toriato/stable-diffusion-webui-wd14-tagger
学習の友。画像に基づいてタグ付けしてくれる。学習素材の準備に。


Dataset Tag Editor 🔗

https://github.com/toshiaki1729/stable-diffusion-webui-dataset-tag-editor
としあき製。webUI上で学習用データセットのキャプションを編集できるようにします。

その他独特なもの

sd_images_browser 🔗

https://github.com/aka7774/sd_images_browser
初期の1111にあったHistoryやImage Browserが拡張機能化されたもの。
…に壺の有志が不具合修正や改良を加えて更新したもの。


Model Toolkit 🔗

https://github.com/arenatemp/stable-diffusion-webui-model-toolkit

Toolkitの使い方

モデルの変換・編集に役立つ拡張機能。省ファイルサイズ化にも。
ファイルサイズを小さくすると、モデルの読み込み時間も大幅に短縮される。
また破損トークンの検出・修正機能もある(修正機能はSettingsから有効化が必要)。

ごく基本的な使い方

  1. 導入後にまずSettings → Model Toolkit を開き、
    「Fix broken CLIP position IDs」をONにして、「Apply settings」を押す。
    これで破損トークンの修正機能が有効になる。
  2. Toolkitタブを開く。
  3. BasicのタブでモデルをLoadする。
    おめーのモデルにゴミデータんGBあるから!とか
    これこれのCLIPの位置がおかしい(=トークンが破損してる)から!とか言われるのでよく読む。
  4. Saveすると、ダイエット&修正後のモデルを別名で保存してくれる。
  5. 次のモデルの処理に移りたい場合は一旦「クリア」を押す。

Avancedタブには詳しくないので他のとしあきによる加筆修正をお待ちしてます。

Q. なんかSettings → Model Toolkit に「Enable Autopruning」っていう便利そうな項目がありますが、これは?
A. 1111起動時にmodels/Autopruneフォルダを読みに行って、その中の全てのモデルに対してプルーニング処理を行う機能だそうです。
https://github.com/arenatemp/stable-diffusion-webui-model-toolkit#autopruning
つまりONにした上で、そのフォルダに目的のモデルを入れて利用することになります。

Aesthetic Image Scorer

モデル学習の元画像の選別にも使われたCLIPを使った画像を自動でスコアリングして埋め込む拡張機能
https://github.com/tsngo/stable-diffusion-webui-aesthetic-image-scorer
としあき作成のチューニングセット

コメント

  • Detection Detailerはとても強力な拡張機能だ
    https://wikiwiki.jp/sd_toshiaki/%E3%82%88%E3%81%8F%E3%81%82%E3%82%8B%E8%B3%AA%E5%95%8F#m76bc62b
    ただREADME.mdのTroubleshootingにもある通り
    「Build Tools for Visual Studio 2022」の導入が必要となる
    まずこのページを開き https://visualstudio.microsoft.com/ja/downloads/
    下にスクロールして「すべてのダウンロード」の「Tools for Visual Studio」を開く
    すると候補の中に「Build Tools for Visual Studio 2022」があるのでこいつをDLしてインスコ -- 2023-03-05 (日) 01:47:34
  • それをスレに書いたのは俺だ
    今あるDetection Detailerの紹介文を書いたのも俺だがな…
    まあ書けるだけ加筆しておくとしよう -- 2023-03-05 (日) 05:39:01
  • プロンプトのコメントアウト機能超ほしいなぁ… -- 2023-03-08 (水) 23:13:35
  • >プロンプトのコメントアウト機能超ほしいなぁ…
    現状でも方法は一応なくもない
    …けど使い勝手が必ずしも良くないから俺もそういう拡張機能ほしいと思ってる
     誘導→Tips#メタデータにコメントを残す方法 -- 2023-03-09 (木) 05:14:01
  • listenオプションありで起動しているとwebuiからのインストールが無効化される仕様になってるようです.手動でインストールするかオプションを外しましょう. -- memo? 2023-03-11 (土) 19:56:02
  • 情報ありがとう。こんな感じで書いておきました。
    --listenオプションを利用してる人 -- 2023-03-14 (火) 19:30:10
  • PixelizationをAMD環境で動かす方法募集 -- 2023-03-24 (金) 10:12:08
  • web uiの拡張の自作情報ってどこかある? 公式のFor developing extensions, see Developing extensionsのリンク死んでるやがる。gradioのコンポーネント所定のフォルダに突っ込むだけなんか?とりあえずやってみふ -- 2023-03-24 (金) 20:05:15
  • script_callbacksにフックするだけか。いけますた -- 2023-03-24 (金) 20:55:21
  • Tiled VAEの設定とか最適値が知りたい。ただ今模索中 -- 2023-03-28 (火) 20:01:42
  • web uiでControlNetを実行したのですが、「RuntimeError: model not found: None」と出て使えなかった・・・。何かお分かりになる方いらっしゃいますか? -- 2023-03-30 (木) 03:05:58
  • extensions\sd-webui-controlnet\models の中に Controlnet用のモデルを配置してないからじゃないかな? -- 2023-04-01 (土) 00:46:03