画像に対するタグ ファイルを自動で生成する (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 とします。
画像に対するタグ ファイルを自動で生成する (sd-scripts tag_images_by_wd14_tagger.py を利用する):画像1

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

画像に対するタグ ファイルを自動で生成する (sd-scripts tag_images_by_wd14_tagger.py を利用する):画像2

実行すると画像からタグが生成されます。
画像に対するタグ ファイルを自動で生成する (sd-scripts tag_images_by_wd14_tagger.py を利用する):画像3

画像ファイルと同じディレクトリ内に(画像ファイル名).txt のテキストファイルが生成されます。
画像に対するタグ ファイルを自動で生成する (sd-scripts tag_images_by_wd14_tagger.py を利用する):画像4

テキストファイルを開きます。画像のタグが作成されています。
画像に対するタグ ファイルを自動で生成する (sd-scripts tag_images_by_wd14_tagger.py を利用する):画像5

tag_images_by_wd14_tagger.py を利用して、画像からタグを生成できました。

AuthorPortraitAlt
著者
iPentecのメインデザイナー
Webページ、Webクリエイティブのデザインを担当。PhotoshopやIllustratorの作業もする。 最近は生成AIの画像生成の沼に沈んでいる。
作成日: 2023-07-22
Copyright © 1995–2025 iPentec all rights reserverd.