Skip to content

Latest commit

 

History

History
523 lines (388 loc) · 34.9 KB

README_JA.md

File metadata and controls

523 lines (388 loc) · 34.9 KB

tag_autocomplete_light

SD WebUI Tag Autocomplete

Booruスタイルタグを自動補完するためのAUTOMATIC1111 Stable Diffusion WebUI用拡張機能

Github Release stargazers contributors forks issues

変更内容確認されている問題バグを報告する機能追加に関する要望


📄 説明

Tag AutocompleteはStable Diffusion向けの人気のweb UIである、AUTOMATIC1111 web UIの拡張機能として利用できます。

主にアニメ系イラストを閲覧するための掲示板「Danbooru」などで利用されているタグの自動補完ヒントを表示するための拡張機能となります。
例えばWaifu DiffusionやNAIから派生した多くのモデルやマージなど、Stable Diffusionモデルの中にはこの情報を使って学習されたものもあるため、プロンプトに正確なタグを使用することで、多くのケースで構図を改善した思い通りの画像が生成できるようになります。

組み込みの利用可能な拡張機能リストを使ってインストールしたり、下記の説明に従って手動でファイルをcloneしたり、Releasesにあるパッケージ済みのバージョンを使うことができます。


✨ Features

  • 🚀 タイピング中に補完のためのヒントを表示 (通常時)
  • ⌨️ キーボードナビゲーション
  • 🌒 ダーク&ライトモードのサポート
  • 🛠️ 多くの設定とカスタマイズ性を提供
  • 🌍 翻訳サポートタグ、オプションでプロンプトのライブ プレビュー付き
    • 私が知っている翻訳のリストはこちらを参照してください。

タグの自動補完は組み込まれている補完内容をサポートしています:

  • 🏷️ Danbooru & e621 tags (投稿数上位100k、2022年11月現在)
  • ✳️ ワイルドカード
  • Extra networks filenames, including
    • Textual Inversion embeddings
    • Hypernetworks
    • LoRA
    • LyCORIS / LoHA
  • 🪄 Chants(詠唱) (長いプロンプトプリセット用のカスタムフォーマット)
  • 🏷️ "Extra file", カスタマイズ可能なextra tagsセット

さらに、サードパーティの拡張機能にも対応しています:

クリックして開く

スクリーンショット & デモ動画

クリックすると開きます 基本的な使い方 (キーボード操作を用いたもの):
demo_basic.mp4

ワイルドカードをサポート:

demo_wildcards.mp4

タグカラーを含むDarkモードとLightモードに対応:

results_dark results_light

📦 インストール

内蔵されている拡張機能リストを用いた方法

  1. Extensions タブを開く
  2. Available タブを開く
  3. "Load from:" をクリック
  4. リストの中から "Booru tag autocompletion" を探す
    • この拡張機能は最初から利用可能だったものなので、 "oldest first" を選択すると、リストの上位に表示されます。
  5. 右側にある "Install" をクリック

Load from index Order by oldest Install

手動でcloneする方法

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つを選択して、ワイルドカードをカテゴリ化されたカスタムタグシステムのようなものとして使用することができます。

Wildcard files Wildcard replacements

ワイルドカードはすべての拡張機能フォルダと、古いバージョンをサポートするための scripts/wildcards フォルダで検索されます。これは複数の拡張機能からワイルドカードを組み合わせることができることを意味しています。ワイルドカードをグループ化した場合、ネストされたフォルダもサポートされます。

Extra networks (Embeddings, Hypernets, LoRA, ...)

これら3つのタイプの補完は、<と入力することで行われます。デフォルトでは3つとも混在して表示されますが、以下の方法でさらにフィルタリングを行うことができます:

  • <e: は、embeddingsのみを表示します。
  • <l: は、LoRAとLyCORISのみを表示します。
    • または <lora: と <lyco: で入力することも可能です
  • <h: 、または <hypernet: はHypernetworksのみを表示します

Embedding type filtering

Stable Diffusion 1.xまたは2.xモデル用にそれぞれトレーニングされたembeddingsは、他のタイプとの互換性がありません。有効なembeddingsを見つけやすくするため、若干の色の違いも含めて「v1 Embedding」と「v2 Embedding」で分類しています。また、<v1/2または<e:v1/2に続けて実際の検索のためのキーワードを入力すると、v1またはv2embeddingsのみを含むように検索を絞り込むことができます。

例:

Embedding version filter

Chants(詠唱)

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 - 表示される色。通常のタグと同じカテゴリーカラーシステムを使用しています。

Umi AI tags

https://github.com/Klokinator/Umi-AI は、Unprompted や Dynamic Wildcards に似た、機能豊富なワイルドカード拡張です。
例えば <[preset][--female][sfw][species]> はプリセットカテゴリーを選び、女性関連のタグを除外し、さらに次のカテゴリーで絞り込み、実行時にこれらすべての条件に一致するランダムなフィルインを1つ選び出します。補完は <[] とそれに続く新しい開く括弧、例えば <[xyz][] で始まり、 > で閉じるまで続きます。

タグの自動補完は、これらのオプションをスマートに提案していきます。つまり、カテゴリータグの追加を続けても、その前に来たものと一致する結果だけが表示されるのです。 また、タグの投稿数の代わりに、そのコンボから選択可能なフィルインタグの数を表示し、大規模になる初期内容に対して迅速な概要とフィルタリングを可能にします。

ほとんどの功績は@ctwrsによるものです。この方はUmiの開発者の一人として多くの貢献をしています。

🛠️ 設定

この拡張機能には多くの設定とカスタマイズ機能が組み込まれています。ほとんどのことははっきりしていますが、詳細な説明は以下のセクションをクリックしてください。

Tag filename

スクリプトが使用するメインのタグファイルとなります。デフォルトでは danbooru.csve621.csv が含まれており、ここにカスタムタグを追加することもできますが、大半のモデルはこの2つ以外(主にdanbooru)では学習していないため、あまり意味はありません。

拡張機能の他の機能(ワイルドカードやLoRA補完など)を使いたいが、通常のタグには興味がない場合は、Noneに設定することも可能です。

tagfile

"Active in" の設定

タグのオートコンプリートがどこにアタッチされ、変更を受け付けるかを指定します。 ネガティブプロンプトはtxt2imgとimg2imgの設定に従うので、"親 "がアクティブな場合にのみアクティブとなります。

activeIn

Black / Whitelist

このオプションは、タグのオートコンプリートをグローバルにオフにすることができますが、特定のモデルに対してのみ有効または無効にしたい場合もあります。
例えば、あなたのモデルのほとんどがアニメモデルである場合、boorタグでトレーニングされておらず、その恩恵を受けないフォトリアリスティックモデルをブラックリストに追加し、これらのモデルに切り替えた後に自動的に無効にすることができます。モデル名(拡張子を含む)とwebuiハッシュ(短い形式と長い形式の両方)の両方を使用できます。

Blacklistは指定したすべてのモデルを除外しますが、Whitelistはこれらのモデルに対してのみ有効で、デフォルトではオフのままです。例外として、空のホワイトリストは無視されます(空のブラックリストと同じです)。

blacklist

カーソルで補完ポップアップを移動

このオプションは、IDEで行われるような、カーソルの位置に追従するフローティングポップアップを有効または無効にします。スクリプトはポップアップが右側でつぶれないように十分なスペースを確保しようとしますが、長いタグでは必ずしもうまくいきません。無効にした場合、ポップアップは左側に表示されます。

movePopup

movePopup_on movePopup_off

結果の数

一度に表示する結果の量を設定できます。
Show all resultsが有効な場合、Maximum resultsで指定された数で切り捨てられるのではなく、スクロール可能なリストが表示されます。パフォーマンス上の理由から、この場合はすべてを一度に読み込むのではなく、ブロック単位で読み込みます。ブロックの大きさはHow many results to load at onceによって決まります。一番下に到達すると、次のブロックがロードされます(しかし、そんなことはめったには起こらないと思います)。

特筆すべきこととして、Show all results が使用される場合でも、Maximum results は影響を及ぼします。これは、スクロールが開始される前のポップアップの高さを制限するからです。

resultsCount

補完の遅れについて

設定によっては、リアルタイムのタグ補完は計算量が多くなることがあります。
このオプションは debounce による遅延をミリ秒単位で設定します(1000ミリ秒 = 1秒)。このオプションは、入力が非常に速い場合に特に有効です。

delay

"Search for" に関する設定

特定の補完タイプを有効または無効にします。

Umi AIワイルドカードは、使用目的が似ているため、異なるフォーマットを使用しますが、ここでは通常のワイルドカードオプションに含まれます。

searchFor

"?" Wiki links

このオプションがオンになっている場合、タグの横に ? リンクが表示されます。これをクリックすると、danbooruまたはe621のそのタグのWikiページを開こうとします。

⚠️ 警告:

Danbooruとe621は外部サイトであり、多くのNSFWコンテンツを含んでいます。このため、このオプションはデフォルトで無効になっています。

wikiLink

補完設定

これらの設定で、テキストの挿入方法を指定できます。

Booruのサイトでは、タグにスペースの代わりにアンダースコアを使用することがほとんどですが、Stable diffusionで使用されているCLIPエンコーダーは自然言語でトレーニングされているため、前処理中にほとんどのモデルがこのアンダースコアをスペースに置き換えました。したがって、デフォルトではタグのオートコンプリートも同じようになります。

括弧は、プロンプトの特定の部分をより注目/重視するために、Webuiの制御文字として使用されるため、デフォルトでは括弧を含むタグはエスケープされます (\( \)) 。

最後の設定によりますが、タグのオートコンプリートはタグを挿入した後にカンマとスペースを追加します。

insertEscape

ワイルドカードのパス補完

ワイルドカードのいくつかのコレクションは、ネストしたサブフォルダに整理されています。
それらは、"hair/colors/light/... " や "clothing/male/casual/... " などのように、ファイルへのフルパスとともにリストアップされています。

このような場合、手動でフルパスを入力するのは難しいことが多いのですが、それでもリストをさらにスクロールする前に選択範囲を狭めたいものです。
この場合、選択する結果がすべてのパスであれば、Tab(またはChooseSelectedOrFirstのカスタムホットキー)でパスの部分補完をトリガーすることが可能です。

この設定は、補完に使用するモードを決定します:

  • 次のフォルダレベルまで:
    • パス内の次の/まで補完し、選択したものを進む方向として優先します
    • オプションを直接選択したい場合は、Enter キーまたは ChooseSelected ホットキーを使用してスキップし、完全に補完します。
  • 最初の差分まで:
    • 結果内の最初の違いまで補完し、追加の情報を待ちます
    • 例:"/sub/folder_a/..." と "/sub/folder_b/..." がある場合、"su" と入力した後に補完すると、"/sub/folder_" まですべてを挿入し、a または b を入力して明確にするまでそこで停止します。
    • 矢印キーで何かを選択した場合(EnterキーやTabキーを押すかどうかに関係なく)、それをスキップして完全に補完します。
  • 常に全て:
    • 名前が示すように、部分的な補完動作を無効にし、通常のタグのようにすべての状況下で完全なパスを挿入します。

insertWildcardPath

Alias 設定

タグはしばしば複数の別名(Alias)で参照されます。Search by aliasがオンになっている場合、それらは検索結果に含まれ、正しいタグがわからない場合に役立ちます。この場合でも、挿入時にリンクされている実際のタグに置き換えられます。

Only show alias セットは、エイリアスのみを表示したい場合、またはそのエイリアスがマップするタグも表示したい場合に使用します。 (<alias> ➝ <actual>として表示されます)

alias

翻訳設定

Tag Autocompleteは、別のファイル(Translation filename)で指定されたタグの翻訳をサポートしています。つまり、英語のタグ名が分からなくても、自身の言語の翻訳ファイルがあれば、それを代わりに使うことができます。

また、コミュニティで使用されている古いファイルのためのレガシーフォーマットオプションや、プロンプト全体のライブ翻訳プレビューなど実験的な機能もあります。

詳細については、以下の 翻訳に関するセクション を参照してください。

translation

Extra ファイル設定

ここで指定したように、通常の結果の前後に追加される追加タグのセットを指定します。一般的に使用される品質タグ (masterpiece, best quality, など) のような小さなカスタムタグセットに便利です。

長いプリセットやプロンプト全体を補完したい場合は、代わりに Chants(詠唱) を参照してください。

extraFile

Chant ファイル名

Chantとは、長いプリセット、あるいはプロンプト全体を一度に選択して挿入できるもので、Webuiに内蔵されているスタイルのドロップダウンに似ています。Chantにはいくつかの追加機能があり、より速く使用することができます。

詳しくは上記のChants(詠唱)のセクションを参照してください。

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 ポップアップを閉じる

hotkeys

Colors

ここでは、異なるタグカテゴリーに使用されるデフォルトの色を変更することができます。これらは、ソースサイトのカテゴリの色に似ているように選択されています。

フォーマットは標準的なJSON

  • オブジェクト名は、タグのファイル名に対応しています。
  • 数字はタグの種類を表し、タグのソースに依存します。詳細については、CSV tag dataを参照してください。
  • 角括弧内の最初の値はダークモード、2番目の値はライトモードです。HTMLの色名と16進数コードのどちらでも使えます。

これは、カスタムタグ・ファイルに新しいカラーセットを追加するためにも使用できます。

colors

TACの一時作成ファイルのリフレッシュ

これは "フェイク"設定で、実際には何も設定しません。むしろ、開発者がwebuiのオプションに追加できる更新ボタンを悪用するための小さなハックです。この設定の隣にある更新ボタンをクリックすると、タグオートコンプリートにいくつかの一時的な内部ファイルを再作成・再読み込みさせます。

タグオートコンプリートは様々な機能、特に余分なネットワークとワイルドカード補完に関連するこれらのファイルに依存しています。この設定は、例えば新しいLoRAをいくつかフォルダに追加し、タグ・オートコンプリートにリストを表示させるためにUIを再起動したくない場合に、リストを再構築するために使用できます。

また、この設定をクイック設定バーに追加することで、いつでも更新ボタンを利用できるようになります。

fakeRefresh


翻訳

タグとエイリアスの両方を翻訳するために使用することができ、また翻訳による検索を可能にするための、追加のファイルを翻訳セクションに追加することができます。
このファイルは、<English tag/alias>,<Translation>という形式のCSVである必要がありますが、3列のフォーマットを使用する古いファイルとの後方互換性のために、oldFormatをオンにすると、代わりに新しい2列の翻訳形式ではなく、古い3列の翻訳形式を使用するようになります。
その場合、2番目のカラムは使用されず、パース時にスキップされます。

中国語の翻訳例:

IME-input english-input

翻訳リスト

🫵 あなたの助けが必要です!

翻訳はコミュニティの努力により支えられています。もしあなたがタグファイルを翻訳したことがある場合、または作成したい場合は、あなたの成果をここに追加できるように、Pull RequestまたはIssueを開いてください。 機械翻訳は、最も一般的なタグであっても、多くのことを間違えてしまいます。

ライブ・プレビュー

⚠️ 警告:

この機能はまだ実験的なもので、使用中にバグに遭遇するかもしれません。

この機能はプロンプト内のすべての検出されたタグのライブプレビューを表示します。検出されたタグは、カンマで正しく区切られたものと長い文章の中にあるものの両方が表示されます。自然な文章では3単語まで検出することができ、1つのタグよりも複数単語の完全な一致を優先します。

検出されたタグの上には翻訳ファイルからの訳文が表示されるので、英語のタグの意味がよく分からない場合でも、プロンプトにタグが挿入された後でも(完了時のポップアップではなく)簡単に見つけることができます。

このオプションはデフォルトではオフになっていますが、翻訳ファイルを選択し、「Show live tag translation below prompt」をチェックすることで有効にすることができます。 オフでも通常の機能には影響しません。

中国語翻訳時の例:

image

検出されたタグをクリックすると、そのタグがプロンプトで選択され、素早く編集できます。

image

⚠️ ライブ翻訳に関する確認されている問題:

ユーザーがテキストを入力または貼り付けると翻訳が更新されますが、プログラムによる操作(スタイルの適用やPNG Info / Image Browserからの読み込みなど)では更新されません。これは、プログラムによる編集の後に手動で何かを入力することで回避できます。

Extra file

エクストラファイルは、メインセットに含まれない新しいタグやカスタムタグを追加するために使用されます。
CSV tag dataにある通常のタグのフォーマットと同じですが、ひとつだけ例外があります: カスタムタグにはカウントがないため、3列目(0から数える場合は2列目)はタグの横に表示される灰色のメタテキストに使用されます。 空欄のままだと、「カスタムタグ」と表示されます。

これは同梱されるextra-quality-tags.csvファイルを使用した例で、非常に基本的な内容となります:

image

カスタムタグを通常のタグの前に追加するか、後に追加するかは、設定で選択することができます。

CSV tag data

このスクリプトは、以下の方法で保存されたタグ付き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 拡張機能がインストールされている場合は更新してください。古いバージョンでは他の拡張機能との間で問題が生じることが知られています。