Stable Diffusion Automatic1111 WebUIで「Tagger」を使ってみよう。

アイキャッチ

こんにちは。Stable Diffusionを使ってAI画像を作成していると、なかなか自分の考えたプロンプトどおりに画像が生成されなくて、前回紹介した、ControlNetのconny や openposeを利用して、ポーズを真似ることができてきました。

internal link

 

それでも、思い通りにできない、こんな画像を作るには、どういうプロンプトを入力すればよいのか…を試行錯誤しているうちに、あっという間に時間がたってしまう。何かよい方法はないものか…という悩みを解決してくれるのが、

「Tagger」

という拡張機能ではないでしょうか。

はじめに

「Tagger」とは

画像生成AI「Stable Diffusion」向けの拡張機能で、この機能を使うと、画像からその要素を自動的に解析してプロンプトとして出力してくれます。

ということは、AIが解析した要素をうまく利用してプロンプトを作成することで、自分が出力したい画像生成にさらに近づけることができる!という優れた機能ということになりますね。

「Tagger」のインストール

利用するのはいつも通り、AUTOMATIC1111版web UIでの利用を前提とします。

web-ui を起動したら、Extensions タブを押下し、拡張機能管理画面を開きます。

change Extensions

Install from URL タブで、 URL for extension's git repositoryの欄に以下のURLを記載して、Installボタンを押してインストールしてください。

https://github.com/toriato/stable-diffusion-webui-wd14-tagger.git

installedタブの一覧に「stable-diffusion-webui-wd14-tagger」があるのを確認したら、Apply and restart UI ボタンを押して再起動します。

added tagger

これでインストール終了です。

あれ?再起動しても、「Tagger」タグが表されない…

AUTOMATIC1111版web UIを起動した cmd の画面を見るとなんやら Error の文字が……

ImportError: cannot import name 'models_path' from partially initialized module 'modules.shared' (most likely due to a circular import) ({パス}\stable-diffusion-webui\modules\shared.py)

ImportError: cannot import name 'wrap_gradio_gpu_call' from 'webui' ({パス}\stable-diffusion-webui\webui.py)

とりあえず、ググって2つのファイルを修整したら直ったので、修正内容記載します。

※修正内容や修正方法、修正後の動作については、自己責任でお願いします。

{パス}\stable-diffusion-webui\extensions\stable-diffusion-webui-wd14-tagger\preload.py

from modules.shared import models_path

↓ この行を以下の内容に変更

import argparse
import os
modules_path = os.path.dirname(os.path.realpath(__file__))
parser_pre = argparse.ArgumentParser(add_help=False)
parser_pre.add_argument("--data-dir", type=str, default=os.path.dirname(modules_path), help="base path where all user data is stored", )
cmd_opts_pre = parser_pre.parse_known_args()[0]
data_path = cmd_opts_pre.data_dir

models_path = os.path.join(data_path, "models")

{パス}\stable-diffusion-webui\extensions\stable-diffusion-webui-wd14-tagger\tagger\ui.py

from webui import wrap_gradio_gpu_call

↓ この行を以下の内容に変更

from modules.call_queue import wrap_gradio_gpu_call

 

「Tagger」を使ってみる

Taggerタブが追加されているので、クリックしてみます。

 

open tagger

ここに画像をドロップ- または - クリックしてアップロード に解析したい画像を貼り付けるだけで、勝手に解析が始まります。Interrogate ボタンを押しても解析が始まります。

解析が終わると、画像の右側にプロンプト(要素)が出力されるので、文字列を手動でコピーするなり、Send to txt2imgボタンを押して txt2img に送るなりして利用します。また、出力されるのは、ポジティブプロンプト のみなので、ネガティブプロンプトは自分で打ち込んでください。

以前利用したフリー素材を試しに解析してみます。

original photo

Taggerが解析したプロンプトは以下のようでした。

1girl, solo, thighhighs, black hair, skirt, lying, sweater, black thighhighs, zettai ryouiki, on stomach, turtleneck, white background, simple background, long hair, black skirt, no shoes

日本語に翻訳するとこんな感じでした。(いつものGoogle翻訳)

女の子1人、ソロ、サイハイソックス、黒髪、スカート、寝そべり、セーター、黒ニーソ、絶対領域、うつ伏せ、タートルネック、白背景、シンプル背景、ロングヘア、黒いスカート、靴なし

2,3怪しい単語やセーターの色が解析されていませんでしたが、このプロンプトと、いつも利用している、

・画質アップ用プロンプト

・ネガティブプロンプト

を使って、SDXL1.0ベースモデルで、画像を作成してみた結果です。

result photo

まとめ

解析結果を見て、AI内部ではこんな風に画像を解釈している、逆に、どのような単語が利用されているのかを理解することができまます。

これによってより自分が作成したい画像とプロンプトの関連性を深めることができますね。

Stable Diffusionをはじめ、様々なAIが常に進化していますので、チェックしながら最新にトライしてみてください。

きっとあなたにぴったりのAIが見つかると思います。

Stable Diffusion Automatic1111 WebUIで「Tagger」を使ってみよう。” に対して2件のコメントがあります。

  1. ハギ より:

    コメント失礼します。
    パソコン初心者です。
    上記方法を実行してもタガーが表示されません。

    IDLEでファイルを開いて、指定部分を削除して変更し保存。

    という方法です。
    何が間違っているか分かりますか?
    コードもコピペしているので間違えていないはずです。

    1. ブログの閲覧ありがとうございます。
      コンソールに出力されているエラーは、記載のものと同じ2ファイルについてでしょうか?
      また、修正後の再起動でエラーは出なくなりましたか
      もし、別のエラーが出ているようならそちらの対応も必要かと思います。
      エラー内容をご連絡いただければ、一緒に解決策を見つけられるかもしれません。
      今後ともよろしくお願いします。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA