English Document, 中文文档, 日本語
Booruスタイルタグを自動補完するためのAUTOMATIC1111 Stable Diffusion WebUI用拡張機能
変更内容 • 確認されている問題 • バグを報告する • 機能追加に関する要望
Tag AutocompleteはStable Diffusion向けの人気のweb UIである、AUTOMATIC1111 web UIの拡張機能として利用できます。
主にアニメ系イラストを閲覧するための掲示板「Danbooru」などで利用されているタグの自動補完ヒントを表示するための拡張機能となります。
例えばWaifu DiffusionやNAIから派生した多くのモデルやマージなど、Stable Diffusionモデルの中にはこの情報を使って学習されたものもあるため、プロンプトに正確なタグを使用することで、多くのケースで構図を改善した思い通りの画像が生成できるようになります。
組み込みの利用可能な拡張機能リストを使ってインストールしたり、下記の説明に従って手動でファイルをcloneしたり、Releasesにあるパッケージ済みのバージョンを使うことができます。
- 🚀 タイピング中に補完のためのヒントを表示 (通常時)
- ⌨️ キーボードナビゲーション
- 🌒 ダーク&ライトモードのサポート
- 🛠️ 多くの設定とカスタマイズ性を提供
- 🌍 翻訳サポートタグ、オプションでプロンプトのライブ プレビュー付き
- 私が知っている翻訳のリストはこちらを参照してください。
タグの自動補完は組み込まれている補完内容をサポートしています:
- 🏷️ Danbooru & e621 tags (投稿数上位100k、2022年11月現在)
- ✳️ ワイルドカード
- ➕ Extra networks filenames, including
- Textual Inversion embeddings
- Hypernetworks
- LoRA
- LyCORIS / LoHA
- 🪄 Chants(詠唱) (長いプロンプトプリセット用のカスタムフォーマット)
- 🏷️ "Extra file", カスタマイズ可能なextra tagsセット
さらに、サードパーティの拡張機能にも対応しています:
クリックして開く
- Image Browser - ファイル名とEXIFキーワードによる検索
- Multidiffusion Upscaler - 地域別のプロンプト
- Dataset Tag Editor - キャプション, 結果の確認, タグの編集 & キャプションの編集
- WD 1.4 Tagger - 追加と除外タグ
- Umi AI - YAMLワイルドカードの補完
クリックすると開きます
基本的な使い方 (キーボード操作を用いたもの):demo_basic.mp4
ワイルドカードをサポート:
demo_wildcards.mp4
タグカラーを含むDarkモードとLightモードに対応:
- Extensions タブを開く
- Available タブを開く
- "Load from:" をクリック
- リストの中から "Booru tag autocompletion" を探す
- この拡張機能は最初から利用可能だったものなので、 "oldest first" を選択すると、リストの上位に表示されます。
- 右側にある "Install" をクリック
git clone "https://github.com/DominikDoom/a1111-sd-webui-tagcomplete.git" extensions/tag-autocomplete
(第2引数でフォルダ名を指定可能なので、好きな名前を指定しても良いでしょう)
自動補完は、https://github.com/AUTOMATIC1111/stable-diffusion-webui-wildcards 、または他の類似のスクリプト/拡張機能で使用されるワイルドカードファイルでも利用可能です。補完は __
(ダブルアンダースコア) と入力することで開始されます。最初にワイルドカードファイルのリストが表示され、1つを選択すると、そのファイル内の置換オプションが表示されます。
これにより、スクリプトによって置換されるカテゴリを挿入するか、または直接1つを選択して、ワイルドカードをカテゴリ化されたカスタムタグシステムのようなものとして使用することができます。
ワイルドカードはすべての拡張機能フォルダと、古いバージョンをサポートするための scripts/wildcards
フォルダで検索されます。これは複数の拡張機能からワイルドカードを組み合わせることができることを意味しています。ワイルドカードをグループ化した場合、ネストされたフォルダもサポートされます。
これら3つのタイプの補完は、<
と入力することで行われます。デフォルトでは3つとも混在して表示されますが、以下の方法でさらにフィルタリングを行うことができます:
<e:
は、embeddingsのみを表示します。<l:
は、LoRAとLyCORISのみを表示します。- または
<lora:
と<lyco:
で入力することも可能です
- または
<h:
、または<hypernet:
はHypernetworksのみを表示します
Stable Diffusion 1.xまたは2.xモデル用にそれぞれトレーニングされたembeddingsは、他のタイプとの互換性がありません。有効なembeddingsを見つけやすくするため、若干の色の違いも含めて「v1 Embedding」と「v2 Embedding」で分類しています。また、<v1/2
または<e:v1/2
に続けて実際の検索のためのキーワードを入力すると、v1またはv2embeddingsのみを含むように検索を絞り込むことができます。
例:
Chants(詠唱)は、より長いプロンプトプリセットです。この名前は、中国のユーザーによる初期のプロンプト集からヒントを得たもので、しばしば「呪文書」(原文は「Spellbook」「Codex」)などと呼ばれていました。
このような文書から得られるプロンプトのスニペットは、このような理由から呪文や詠唱と呼ばれるにふさわしいものでした。
EmbeddingsやLoraと同様に、この機能は <
, <c:
, <chant:
コマンドを入力することで発動します。例えば、プロンプトボックスに <c:HighQuality
と入力して選択すると、次のようなプロンプトテキストが挿入されます:
(masterpiece, best quality, high quality, highres, ultra-detailed),
Chants(詠唱)は、以下のフォーマットに従ってJSONファイルで追加することができます::
Chant format (click to expand)
[
{
"name": "Basic-NegativePrompt",
"terms": "Negative,Low,Quality",
"content": "(worst quality, low quality, normal quality)",
"color": 3
},
{
"name": "Basic-HighQuality",
"terms": "Best,High,Quality",
"content": "(masterpiece, best quality, high quality, highres, ultra-detailed)",
"color": 1
},
{
"name": "Basic-Start",
"terms": "Basic, Start, Simple, Demo",
"content": "(masterpiece, best quality, high quality, highres), 1girl, extremely beautiful detailed face, ...",
"color": 5
}
]
このファイルが拡張機能の tags
フォルダ内にある場合、settings内の"Chant file"ドロップダウンから選択することができます。
chantオブジェクトは4つのフィールドを持ちます:
name
- 表示される名称terms
- 検索キーワードcontent
- 実際に挿入されるプロンプトcolor
- 表示される色。通常のタグと同じカテゴリーカラーシステムを使用しています。
https://github.com/Klokinator/Umi-AI は、Unprompted や Dynamic Wildcards に似た、機能豊富なワイルドカード拡張です。
例えば <[preset][--female][sfw][species]>
はプリセットカテゴリーを選び、女性関連のタグを除外し、さらに次のカテゴリーで絞り込み、実行時にこれらすべての条件に一致するランダムなフィルインを1つ選び出します。補完は <[
] とそれに続く新しい開く括弧、例えば <[xyz][
] で始まり、 >
で閉じるまで続きます。
タグの自動補完は、これらのオプションをスマートに提案していきます。つまり、カテゴリータグの追加を続けても、その前に来たものと一致する結果だけが表示されるのです。 また、タグの投稿数の代わりに、そのコンボから選択可能なフィルインタグの数を表示し、大規模になる初期内容に対して迅速な概要とフィルタリングを可能にします。
ほとんどの功績は@ctwrsによるものです。この方はUmiの開発者の一人として多くの貢献をしています。
この拡張機能には多くの設定とカスタマイズ機能が組み込まれています。ほとんどのことははっきりしていますが、詳細な説明は以下のセクションをクリックしてください。
Tag filename
スクリプトが使用するメインのタグファイルとなります。デフォルトでは danbooru.csv
と e621.csv
が含まれており、ここにカスタムタグを追加することもできますが、大半のモデルはこの2つ以外(主にdanbooru)では学習していないため、あまり意味はありません。
拡張機能の他の機能(ワイルドカードやLoRA補完など)を使いたいが、通常のタグには興味がない場合は、None
に設定することも可能です。
"Active in" の設定
タグのオートコンプリートがどこにアタッチされ、変更を受け付けるかを指定します。 ネガティブプロンプトはtxt2imgとimg2imgの設定に従うので、"親 "がアクティブな場合にのみアクティブとなります。
Black / Whitelist
このオプションは、タグのオートコンプリートをグローバルにオフにすることができますが、特定のモデルに対してのみ有効または無効にしたい場合もあります。
例えば、あなたのモデルのほとんどがアニメモデルである場合、boorタグでトレーニングされておらず、その恩恵を受けないフォトリアリスティックモデルをブラックリストに追加し、これらのモデルに切り替えた後に自動的に無効にすることができます。モデル名(拡張子を含む)とwebuiハッシュ(短い形式と長い形式の両方)の両方を使用できます。
Blacklist
は指定したすべてのモデルを除外しますが、Whitelist
はこれらのモデルに対してのみ有効で、デフォルトではオフのままです。例外として、空のホワイトリストは無視されます(空のブラックリストと同じです)。
カーソルで補完ポップアップを移動
このオプションは、IDEで行われるような、カーソルの位置に追従するフローティングポップアップを有効または無効にします。スクリプトはポップアップが右側でつぶれないように十分なスペースを確保しようとしますが、長いタグでは必ずしもうまくいきません。無効にした場合、ポップアップは左側に表示されます。
結果の数
一度に表示する結果の量を設定できます。
Show all results
が有効な場合、Maximum results
で指定された数で切り捨てられるのではなく、スクロール可能なリストが表示されます。パフォーマンス上の理由から、この場合はすべてを一度に読み込むのではなく、ブロック単位で読み込みます。ブロックの大きさはHow many results to load at once
によって決まります。一番下に到達すると、次のブロックがロードされます(しかし、そんなことはめったには起こらないと思います)。
特筆すべきこととして、Show all results
が使用される場合でも、Maximum results
は影響を及ぼします。これは、スクロールが開始される前のポップアップの高さを制限するからです。
補完の遅れについて
設定によっては、リアルタイムのタグ補完は計算量が多くなることがあります。
このオプションは debounce による遅延をミリ秒単位で設定します(1000ミリ秒 = 1秒)。このオプションは、入力が非常に速い場合に特に有効です。
"Search for" に関する設定
特定の補完タイプを有効または無効にします。
Umi AIワイルドカードは、使用目的が似ているため、異なるフォーマットを使用しますが、ここでは通常のワイルドカードオプションに含まれます。
"?" Wiki links
このオプションがオンになっている場合、タグの横に ?
リンクが表示されます。これをクリックすると、danbooruまたはe621のそのタグのWikiページを開こうとします。
⚠️ 警告:Danbooruとe621は外部サイトであり、多くのNSFWコンテンツを含んでいます。このため、このオプションはデフォルトで無効になっています。
補完設定
これらの設定で、テキストの挿入方法を指定できます。
Booruのサイトでは、タグにスペースの代わりにアンダースコアを使用することがほとんどですが、Stable diffusionで使用されているCLIPエンコーダーは自然言語でトレーニングされているため、前処理中にほとんどのモデルがこのアンダースコアをスペースに置き換えました。したがって、デフォルトではタグのオートコンプリートも同じようになります。
括弧は、プロンプトの特定の部分をより注目/重視するために、Webuiの制御文字として使用されるため、デフォルトでは括弧を含むタグはエスケープされます (\( \)
) 。
最後の設定によりますが、タグのオートコンプリートはタグを挿入した後にカンマとスペースを追加します。
ワイルドカードのパス補完
ワイルドカードのいくつかのコレクションは、ネストしたサブフォルダに整理されています。
それらは、"hair/colors/light/... " や "clothing/male/casual/... " などのように、ファイルへのフルパスとともにリストアップされています。
このような場合、手動でフルパスを入力するのは難しいことが多いのですが、それでもリストをさらにスクロールする前に選択範囲を狭めたいものです。
この場合、選択する結果がすべてのパスであれば、Tab(またはChooseSelectedOrFirst
のカスタムホットキー)でパスの部分補完をトリガーすることが可能です。
この設定は、補完に使用するモードを決定します:
- 次のフォルダレベルまで:
- パス内の次の/まで補完し、選択したものを進む方向として優先します
- オプションを直接選択したい場合は、Enter キーまたは
ChooseSelected
ホットキーを使用してスキップし、完全に補完します。
- 最初の差分まで:
- 結果内の最初の違いまで補完し、追加の情報を待ちます
- 例:"/sub/folder_a/..." と "/sub/folder_b/..." がある場合、"su" と入力した後に補完すると、"/sub/folder_" まですべてを挿入し、a または b を入力して明確にするまでそこで停止します。
- 矢印キーで何かを選択した場合(EnterキーやTabキーを押すかどうかに関係なく)、それをスキップして完全に補完します。
- 常に全て:
- 名前が示すように、部分的な補完動作を無効にし、通常のタグのようにすべての状況下で完全なパスを挿入します。
Alias 設定
タグはしばしば複数の別名(Alias)で参照されます。Search by alias
がオンになっている場合、それらは検索結果に含まれ、正しいタグがわからない場合に役立ちます。この場合でも、挿入時にリンクされている実際のタグに置き換えられます。
Only show alias
セットは、エイリアスのみを表示したい場合、またはそのエイリアスがマップするタグも表示したい場合に使用します。
(<alias> ➝ <actual>
として表示されます)
翻訳設定
Tag Autocompleteは、別のファイル(Translation filename
)で指定されたタグの翻訳をサポートしています。つまり、英語のタグ名が分からなくても、自身の言語の翻訳ファイルがあれば、それを代わりに使うことができます。
また、コミュニティで使用されている古いファイルのためのレガシーフォーマットオプションや、プロンプト全体のライブ翻訳プレビューなど実験的な機能もあります。
詳細については、以下の 翻訳に関するセクション を参照してください。
Extra ファイル設定
ここで指定したように、通常の結果の前後に追加される追加タグのセットを指定します。一般的に使用される品質タグ (masterpiece, best quality,
など) のような小さなカスタムタグセットに便利です。
長いプリセットやプロンプト全体を補完したい場合は、代わりに Chants(詠唱) を参照してください。
Chant ファイル名
Chantとは、長いプリセット、あるいはプロンプト全体を一度に選択して挿入できるもので、Webuiに内蔵されているスタイルのドロップダウンに似ています。Chantにはいくつかの追加機能があり、より速く使用することができます。
詳しくは上記のChants(詠唱)のセクションを参照してください。
Hotkeys
ほとんどのキーボードナビゲーション機能のホットキーをここで指定できます。
https://www.w3.org/TR/uievents-key/#named-key-attribute-value
機能の説明
- Move Up / Down:次のタグを選択
- Jump Up / Down:一度に5箇所移動する。
- Jump to Start / End: リストの先頭または末尾にジャンプ
- ChooseSelected ハイライトされたタグを選択するか、何も選択されていない場合はポップアップを閉じます。
- ChooseSelectedOrFirst:上記と同じですが、何も選択されていない場合、デフォルトで最初の結果が選択されます。
- Close ポップアップを閉じる
Colors
ここでは、異なるタグカテゴリーに使用されるデフォルトの色を変更することができます。これらは、ソースサイトのカテゴリの色に似ているように選択されています。
フォーマットは標準的なJSON
- オブジェクト名は、タグのファイル名に対応しています。
- 数字はタグの種類を表し、タグのソースに依存します。詳細については、CSV tag dataを参照してください。
- 角括弧内の最初の値はダークモード、2番目の値はライトモードです。HTMLの色名と16進数コードのどちらでも使えます。
これは、カスタムタグ・ファイルに新しいカラーセットを追加するためにも使用できます。
TACの一時作成ファイルのリフレッシュ
これは "フェイク"設定で、実際には何も設定しません。むしろ、開発者がwebuiのオプションに追加できる更新ボタンを悪用するための小さなハックです。この設定の隣にある更新ボタンをクリックすると、タグオートコンプリートにいくつかの一時的な内部ファイルを再作成・再読み込みさせます。
タグオートコンプリートは様々な機能、特に余分なネットワークとワイルドカード補完に関連するこれらのファイルに依存しています。この設定は、例えば新しいLoRAをいくつかフォルダに追加し、タグ・オートコンプリートにリストを表示させるためにUIを再起動したくない場合に、リストを再構築するために使用できます。
また、この設定をクイック設定バーに追加することで、いつでも更新ボタンを利用できるようになります。
タグとエイリアスの両方を翻訳するために使用することができ、また翻訳による検索を可能にするための、追加のファイルを翻訳セクションに追加することができます。
このファイルは、<English tag/alias>,<Translation>
という形式のCSVである必要がありますが、3列のフォーマットを使用する古いファイルとの後方互換性のために、oldFormat
をオンにすると、代わりに新しい2列の翻訳形式ではなく、古い3列の翻訳形式を使用するようになります。
その場合、2番目のカラムは使用されず、パース時にスキップされます。
中国語の翻訳例:
- 🇨🇳 Chinese tags by @HalfMAI, 最も一般的なタグを機械翻訳と手作業で修正(レガシーフォーマットを使用)
- 🇨🇳 Chinese tags by @sgmklp, こちらをベースにして、より小さくした手動での翻訳セット。
翻訳はコミュニティの努力により支えられています。もしあなたがタグファイルを翻訳したことがある場合、または作成したい場合は、あなたの成果をここに追加できるように、Pull RequestまたはIssueを開いてください。 機械翻訳は、最も一般的なタグであっても、多くのことを間違えてしまいます。
⚠️ 警告:この機能はまだ実験的なもので、使用中にバグに遭遇するかもしれません。
この機能はプロンプト内のすべての検出されたタグのライブプレビューを表示します。検出されたタグは、カンマで正しく区切られたものと長い文章の中にあるものの両方が表示されます。自然な文章では3単語まで検出することができ、1つのタグよりも複数単語の完全な一致を優先します。
検出されたタグの上には翻訳ファイルからの訳文が表示されるので、英語のタグの意味がよく分からない場合でも、プロンプトにタグが挿入された後でも(完了時のポップアップではなく)簡単に見つけることができます。
このオプションはデフォルトではオフになっていますが、翻訳ファイルを選択し、「Show live tag translation below prompt」をチェックすることで有効にすることができます。 オフでも通常の機能には影響しません。
中国語翻訳時の例:
検出されたタグをクリックすると、そのタグがプロンプトで選択され、素早く編集できます。
ユーザーがテキストを入力または貼り付けると翻訳が更新されますが、プログラムによる操作(スタイルの適用やPNG Info / Image Browserからの読み込みなど)では更新されません。これは、プログラムによる編集の後に手動で何かを入力することで回避できます。
エクストラファイルは、メインセットに含まれない新しいタグやカスタムタグを追加するために使用されます。
CSV tag dataにある通常のタグのフォーマットと同じですが、ひとつだけ例外があります:
カスタムタグにはカウントがないため、3列目(0から数える場合は2列目)はタグの横に表示される灰色のメタテキストに使用されます。
空欄のままだと、「カスタムタグ」と表示されます。
これは同梱されるextra-quality-tags.csvファイルを使用した例で、非常に基本的な内容となります:
カスタムタグを通常のタグの前に追加するか、後に追加するかは、設定で選択することができます。
このスクリプトは、以下の方法で保存されたタグ付きCSVファイルを想定しています:
<name>,<type>,<postCount>,"<aliases>"
Example:
1girl,0,4114588,"1girls,sole_female"
solo,0,3426446,"female_solo,solo_female"
highres,5,3008413,"high_res,high_resolution,hires"
long_hair,0,2898315,longhair
commentary_request,5,2610959,
注目すべきは、最初の行にカラム名を記載していないことと、count と aliases の両方が技術的にはオプションであることです、
ただし、countは常にデフォルトデータに含まれています。複数のエイリアスは同様にカンマで区切る必要がありますが、CSVの解析に支障がないようにダブルクオーテーションで囲みます。
番号の付け方についてはDanbooruのtag API docsを参照してください:
Value | Description |
---|---|
0 | General |
1 | Artist |
3 | Copyright |
4 | Character |
5 | Meta |
また、e621についても同様です:
Value | Description |
---|---|
-1 | Invalid |
0 | General |
1 | Artist |
3 | Copyright |
4 | Character |
5 | Species |
6 | Invalid |
7 | Meta |
8 | Lore |
タグの種類は、結果の一覧のエントリーの色付けに使用されます。
- お使いのブラウザの設定によっては、古いバージョンのスクリプトがキャッシュされることがあります。例えば、アップデート後に新機能が表示されない場合は、キャッシュを使わずにサイトを強制的にリロードするために、 CTRL + F5 を試してください。
- プロンプトのポップアップが壊れたスタイルで表示されるか、全く表示されない場合(このような場合)、openpose-editor 拡張機能がインストールされている場合は更新してください。古いバージョンでは他の拡張機能との間で問題が生じることが知られています。