概要
アプリについて
- 学習時のタグファイル作成を目的とした、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版との違い
メリット
- Stable Diffusionのバージョンに依存せず使用できる。
たとえば、ComfyUI専用ユーザーの場合、不必要なアプリの導入を減らせる。 - Tagger用モデルの最新版を使える*1。
- sd-scripts版ではモデルを指定できる。モデルは定期的に更新され、次第に判定精度が向上している。
最新版の方が、新しい作品のキャラ名タグを生成できるかもしれない。
- sd-scripts版ではモデルを指定できる。モデルは定期的に更新され、次第に判定精度が向上している。
- カスタマイズ性がある。
- こちらはpythonのスクリプトで直接動かすため、他のスクリプトと連携しやすい。
- スクリプト実行時時にundesired tagを別途テキストファイル等で読み込む、複数のフォルダに対して連続実行、etc
- こちらはpythonのスクリプトで直接動かすため、他のスクリプトと連携しやすい。
インストール
sd-scriptsをインストール
誘導→LoRA
onnxライブラリのインストール
公式ドキュメントを参照してインストールする。
https://github.com/kohya-ss/sd-scripts/blob/main/docs/wd14_tagger_README-ja.md
使い方
画像の準備
教師画像を任意のフォルダに置く。
Tagger実行
- sd-scriptsのfinetunieフォルダ内のpythonのコードを実行。
- 下記はbatファイルの場合の実行例。
python finetune/tag_images_by_wd14_tagger.py ^ --onnx ^ --repo_id <モデルのrepo id> ^ --batch_size <バッチサイズ> <教師データフォルダ>
- 下記はPythonコードでの実行例
各行の2列目の変数の代わりに、数値または文字列を書いてください。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)
- 下記はbatファイルの場合の実行例。
- オプションなどで除外タグや判定しきい値の設定が可能です。
公式ドキュメントを参照のこと
オプションについて
公式ドキュメントに説明がない情報の補足です。
use_rating_tags/use_rating_tags_as_last_tag
- レーティングタグを追加する。例えば、
questionable, explicit , sensitive
- このオプションを使う意味はあまりない。
個人利用では、年齢制限について考慮する必要性が薄いし、
そもそもNSFWなワードを別途使ってしまうと、意味がなかった。
モデルのダウンロード(任意)
- 初回実行時は、デフォルトで
SmilingWolf/wd-swinv2-tagger-v3
がダウンロードされる。
- これを変更したい場合は、
--repo_id "SmilingWolf/wd-swinv2-tagger-v3"
の部分を変更すると良い。
huggingfaceに実在する「ユーザー名/モデル名」を代入すれば、
Tagger実行時に自動でダウンロードされる。
- モデルは、HuggingFaceのSmilingWolf氏のリポジトリから探すと良い。
https://huggingface.co/SmilingWolf
モデルの選び方
- 同じカテゴリのモデルならば、
- 最新Ver.を選ぶ。
- F1スコアが高いほうが良い。
- モデルによって、確実なタグだけを生成するか、可能性のあるタグをできるだけ生成するか、という違いがある。
- 自分の持っているデータセットによって、最適なモデルは異なる。
- それぞれどのようなタグが生成されるかは、ネット上に多くの検証があるので探してみてください。
- モデルの種類
※雰囲気で書いているので、違う場合は修正をお願いします。
カテゴリ 特徴 wd-v1-4-swinv2-tagger 偏りのあるマニアックな情報への対応力が高い wd-vit-large-tagger 大規模のデータセットに対する速度が早い。 wd-v1-4-moat-tagger swinvよりも速度早め、ただし、更新頻度遅い?
- どのモデルでも正答率100%ではないことに留意する。
- 企業レベルの場合は、別途タグ修正を行うことが前提
- 個人レベルの場合は、除外タグリストを作ってundesired tagsオプションで除去する、誤検知は放置しつつ沢山のデータセットを準備することで誤答の影響を下げる、などの方法で誤検知による対策を行うと良い。