画像に対するタグ ファイルを自動で生成する (sd-scripts tag_images_by_wd14_tagger.py を利用する)
sd-scripts の tag_images_by_wd14_tagger.py を利用して、画像からタグを生成する手順を紹介します。
事前準備
sd-scriptsのインストール
sd-scriptsをインストールします。手順はこちらの記事を参照してください。
onnxのインストール
以下のコマンドを実行して、onnx をインストールします。venv環境を利用している場合には先にvenv環境に切り替えます。
pip install onnx==1.15.0 onnxruntime-gpu==1.17.1
書式
カレントディレクトリが sd-scriptsの配置ディレクトリの場合は以下の書式になります。
python finetune/tag_images_by_wd14_tagger.py --onnx --repo_id [モデルのrepo id] --batch_size [バッチサイズ] [データディレクトリパス]
記述例
wd-swinv2-tagger-v3 モデルを利用し、バッチサイズ4で d:\data
フォルダに画像が配置されている場合は以下のコマンドになります。
python finetune/tag_images_by_wd14_tagger.py --onnx --repo_id SmilingWolf/wd-swinv2-tagger-v3 --batch_size 4 d:\data
2024年10月時点で高性能とされている、wd-eva02-large-tagger-v3 モデルを利用し、バッチサイズ4で c:\train\data01
フォルダに画像が配置されている場合は以下のコマンドになります。
python finetune/tag_images_by_wd14_tagger.py --onnx --repo_id SmilingWolf/wd-eva02-large-tagger-v3 --batch_size 4 c:\train\data01
エラーが発生する場合
以下のエラーが発生する場合があります。
エラーメッセージ
RuntimeError: Failed to import diffusers.pipelines.stable_diffusion.pipeline_stable_diffusion because of the following error (look up to see its traceback):
Failed to import transformers.models.clip.image_processing_clip because of the following error (look up to see its traceback):
Descriptors cannot be created directly.
If this call came from a _pb2.py file, your generated code is out of date and must be regenerated with protoc >= 3.19.0.
If you cannot immediately regenerate your protos, some other possible workarounds are:
1. Downgrade the protobuf package to 3.20.x or lower.
2. Set PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python (but this will use pure-Python parsing and will be much slower).
この場合は以下のどちらかの方法で対処できます。
dev版を利用する
sd-scriptsのdev版をクローンして、dev版の tag_images_by_wd14_tagger.py を利用します。
protobufをダウングレードする
以下のコマンドを実行して、protobuf の 3.20.3 をインストールした後、コマンドを再実行します。
pip install protobuf==3.20.3
実行例
下図の画像を配置したディレクトリを準備します。ディレクトリのパスは d:\data\dataset-toricchi\toricchi-01-renew5
とします。

venv環境に切り替え以下のコマンドを実行します。
python finetune\tag_images_by_wd14_tagger.py --onnx --repo_id SmilingWolf/wd-eva02-large-tagger-v3 --batch_size 4 d:\data\dataset-toricchi\toricchi-01-renew5

実行すると画像からタグが生成されます。

画像ファイルと同じディレクトリ内に(画像ファイル名).txt
のテキストファイルが生成されます。

テキストファイルを開きます。画像のタグが作成されています。

tag_images_by_wd14_tagger.py を利用して、画像からタグを生成できました。
著者
iPentecのメインデザイナー
Webページ、Webクリエイティブのデザインを担当。PhotoshopやIllustratorの作業もする。
最近は生成AIの画像生成の沼に沈んでいる。