#contents

*概要 [#b7447e91]
**アプリについて [#zb972b16]
-学習時のタグファイル作成を目的とした、sd-scripts内蔵ツール。
役割はInterrogator
-公式HP
https://github.com/kohya-ss/sd-scripts
-使用方法などは、まず公式ドキュメントを参照のこと
https://github.com/kohya-ss/sd-scripts/blob/main/docs/wd14_tagger_README-ja.md

**Stable Diffusion WebUI版との違い [#v95f40ea]
#shadowheader(3,メリット)
-Stable Diffusionのバージョンに依存せず使用できる。
たとえば、ComfyUI専用ユーザーの場合、不必要なアプリの導入を減らせる。
-Tagger用モデルの最新版を使える((厳密に言うと「導入しやすい」。webui版でも改造次第で対応はできる))。
--sd-scripts版ではモデルを指定できる。モデルは定期的に更新され、次第に判定精度が向上している。
最新版の方が、新しい作品のキャラ名タグを生成できるかもしれない。
-カスタマイズ性がある。
--こちらはpythonのスクリプトで直接動かすため、他のスクリプトと連携しやすい。
---スクリプト実行時時にundesired tagを別途テキストファイル等で読み込む、複数のフォルダに対して連続実行、etc

*インストール [#l7bb1b9e]
**sd-scriptsをインストール [#ef1845a3]
 誘導→[[LoRA]]
**onnxライブラリのインストール [#d7f290aa]
公式ドキュメントを参照してインストールする。
https://github.com/kohya-ss/sd-scripts/blob/main/docs/wd14_tagger_README-ja.md

*使い方 [#v2d1f27b]
**画像の準備 [#j0903e77]
教師画像を任意のフォルダに置く。
**Tagger実行 [#bebfc928]
-sd-scriptsのfinetunieフォルダ内のpythonのコードを実行。
--下記はbatファイルの場合の実行例。
 python finetune/tag_images_by_wd14_tagger.py ^
 --onnx ^
 --repo_id <モデルのrepo id> ^
 --batch_size <バッチサイズ> <教師データフォルダ>
--下記はPythonコードでの実行例
各行の2列目の変数の代わりに、数値または文字列を書いてください。
#pre{{
  import subprocess

    #(中略)

    subprocess.run([
        "python", scripts_code,
        "--onnx",
        "--repo_id", "SmilingWolf/wd-swinv2-tagger-v3",
        "--model_dir", model_dir,
        "--character_tags_first",
        "--undesired_tags", undesired_tags,
        "--tag_replacement", replacement_tags,
        "--batch_size", "10",
        "--thresh", str(thresh),
        "--character_threshold", str(character_threshold),
        "--recursive",
        "--frequency_tags",
        "--always_first_tags", always_first_tags,
       image_path
    ], check=True)
}}
-オプションなどで除外タグや判定しきい値の設定が可能です。
公式ドキュメントを参照のこと

**オプションについて [#s5296add]
公式ドキュメントに説明がない情報の補足です。

***use_rating_tags/use_rating_tags_as_last_tag [#e6059f44]
-レーティングタグを追加する。例えば、
 questionable, explicit , sensitive
-このオプションを使う意味はあまりない。
個人利用では、年齢制限について考慮する必要性が薄いし、
そもそもNSFWなワードを別途使ってしまうと、意味がなかった。

**モデルのダウンロード(任意) [#c43eec9b]
-初回実行時は、デフォルトで
SmilingWolf/wd-swinv2-tagger-v3
がダウンロードされる。

-これを変更したい場合は、
 --repo_id "SmilingWolf/wd-swinv2-tagger-v3"
の部分を変更すると良い。
huggingfaceに実在する「ユーザー名/モデル名」を代入すれば、
Tagger実行時に自動でダウンロードされる。

-モデルは、HuggingFaceのSmilingWolf氏のリポジトリから探すと良い。
https://huggingface.co/SmilingWolf

***モデルの選び方 [#we59a174]
-同じカテゴリのモデルならば、
--最新Ver.を選ぶ。
--F1スコアが高いほうが良い。
-モデルによって、確実なタグだけを生成するか、可能性のあるタグをできるだけ生成するか、という違いがある。

-自分の持っているデータセットによって、最適なモデルは異なる。
--それぞれどのようなタグが生成されるかは、ネット上に多くの検証があるので探してみてください。

-モデルの種類
|カテゴリ|特徴|h
|wd-v1-4-swinv2-tagger|偏りのあるマニアックな情報への対応力が高い|
|wd-vit-large-tagger|大規模のデータセットに対する速度が早い。|
|wd-v1-4-moat-tagger|swinvよりも速度早め、ただし、更新頻度遅い?|
※雰囲気で書いているので、違う場合は修正をお願いします。

-どのモデルでも正答率100%ではないことに留意する。
--企業レベルの場合は、別途タグ修正を行うことが前提
--個人レベルの場合は、除外タグリストを作ってundesired tagsオプションで除去する、誤検知は放置しつつ沢山のデータセットを準備することで誤答の影響を下げる、などの方法で誤検知による対策を行うと良い。



*Tips [#n8a34e74]