SD-webui-blip2 を利用して blip2 のキャプションを生成する

SD-webui-blip2 を利用して blip2 のキャプションを生成する手順を紹介します。

SD-webui-blip2のインストール

Stable Diffusion WebUI を起動しページを表示します。上部のタブの[Extensions]をクリックして選択します。 下図の画面が表示されます。
SD-webui-blip2 を利用して blip2 のキャプションを生成する:画像1

[Extensions]タブ内の[Install from URL]のタブをクリックします。下図の画面に切り替わります。

SD-webui-blip2 を利用して blip2 のキャプションを生成する:画像2

[URL for extension's git repository]のテキストボックスに、次のSD-webui-blip2リポジトリのURLを入力します。
入力後[Install]ボタンをクリックします。

https://github.com/Tps-F/sd-webui-blip2.git

SD-webui-blip2 を利用して blip2 のキャプションを生成する:画像3

インストールが完了した旨のメッセージが表示されます。
SD-webui-blip2 を利用して blip2 のキャプションを生成する:画像4

Stable Diffusion WebUI を再起動します。上部のタブに[BLIP2]のタブが追加されています。クリックしてタブを選択すると下図の画面が表示されます。
SD-webui-blip2 を利用して blip2 のキャプションを生成する:画像5

[BLIP2]タブが表示されない場合

新しいStable Diffusio WebUIの場合、BLIP2タブが表示されない場合があります。
対処法として以下のファイルを修正します。

(Stable Diffusion WebUIの配置ディレクトリ)\stable-diffusion-webui\extensions\sd-webui-blip2\scripts\main.py


ファイルの冒頭に import modules.infotext_utils を追加します。

main.py import部分
from modules import script_callbacks
import modules.scripts as scripts
import modules.ui
import modules.infotext_utils # 追加


modules.generation_parameters_copypastemodules.infotext_utils に変更します。

main.py 250行付近 (変更前)
            output_text = gr.Textbox(label="Answer", lines=5, interactive=False)
            with gr.Row():
                send_to_buttons = (
                    modules.generation_parameters_copypaste.create_buttons(
                        ["txt2img", "img2img", "extras"]
                    )
                )

        modules.generation_parameters_copypaste.bind_buttons(
            send_to_buttons, "", output_text
        )

main.py 250行付近 (変更後)
            output_text = gr.Textbox(label="Answer", lines=5, interactive=False)
            with gr.Row():
                send_to_buttons = (
                    modules.infotext_utils.create_buttons(
                        ["txt2img", "img2img", "extras"]
                    )
                )

        modules.infotext_utils.bind_buttons(
            send_to_buttons, "", output_text
        )


ファイルを変更後にWebUIを再起動して、[BLIP2] タブが表示されることを確認します。

blip2のキャプションの生成

[model list]のドロップダウンリストボックスをクリックします。下図のモデルのリストがドロップダウン表示されます。 リストから[pretrain_flant5xxl]の項目をクリックして選択します。
SD-webui-blip2 を利用して blip2 のキャプションを生成する:画像6
SD-webui-blip2 を利用して blip2 のキャプションを生成する:画像7

選択後[Load model]ボタンをクリックします。
SD-webui-blip2 を利用して blip2 のキャプションを生成する:画像8

初回はモデルのダウンロードが実行されます。ダウンロード後にモデルの読み込みが実行されます。
読み込みが完了すると、Finish loading model (モデル名) のメッセージが表示されます。
SD-webui-blip2 を利用して blip2 のキャプションを生成する:画像9

BLIP2のキャプションを求めたい画像を読み込みます。画像をドラッグ&ドロップするか、画像の枠をクリックしてファイル選択ダイアログで画像を選択します。
画像が設定された状態が下図です。
SD-webui-blip2 を利用して blip2 のキャプションを生成する:画像10

[Generate Caption]ボタンをクリックします。処理が始まります。
SD-webui-blip2 を利用して blip2 のキャプションを生成する:画像11

処理が完了すると、[Answer]のテキストボックスにBLIP2のキャプションが表示されます。
下図の画像の結果は an anime character with blue hair and white dress となります。
SD-webui-blip2 を利用して blip2 のキャプションを生成する:画像12

別の画像でも試してみます。下図の画像ではharry potter and the order of the phoenixが結果となります。 SD-webui-blip2 を利用して blip2 のキャプションを生成する:画像13

なおダウンロードしたBLIP2のモデルファイルは以下のディレクトリに配置されます。

C:\Users\(ユーザー名)\.cache\huggingface\hub\models--google--flan-t5-xxl\snapshots\(ハッシュ文字列)\

SD-webui-blip2 を利用して blip2 のキャプションを生成する:画像14

バッチ処理で複数画像のblip2のキャプションを生成する

バッチ処理で複数画像のblip2キャプションをまとめて制せする手順を紹介します。

下図の複数画像ファイルを準備します。
SD-webui-blip2 を利用して blip2 のキャプションを生成する:画像15

Stable Diffusion WebUIを起動します。[BLIP2]のタブをクリックして選択します。下図の画面が表示されます。
SD-webui-blip2 を利用して blip2 のキャプションを生成する:画像16

[Process type]の枠の[Batch process]のラジオボタンをクリックしてチェックをつけます。 右側のタブの[batch process]のタブをクリックして切り替えます。下図の画面に切り替わります。
SD-webui-blip2 を利用して blip2 のキャプションを生成する:画像17

右側のタブの[batch process]のタブの[Input Directory]に画像を配置したディレクトリのパスを入力します。 [Output Directory]にBLIP2の結果を出力するディレクトリのパスを指定します。今回は画像のあるディレクトリと同じディレクトリに設定します。
SD-webui-blip2 を利用して blip2 のキャプションを生成する:画像18

[model list]のドロップダウンリストからモデルを選択し、[Load model]ボタンをクリックします。今回もデルは"pretrain_flant5xxl"を選択しています。
SD-webui-blip2 を利用して blip2 のキャプションを生成する:画像19

モデルの読み込み完了後、[Generate caption]ボタンをクリックします。画像を読み込みBLIP2キャプションを生成する処理が始まります。
SD-webui-blip2 を利用して blip2 のキャプションを生成する:画像20

処理が完了すると、出力先のディレクトリに"blip2_caption.csv"ファイルが出力されます。
SD-webui-blip2 を利用して blip2 のキャプションを生成する:画像21

ファイルを開くと、ファイル名とファイル名に対応するBLIP2キャプションが記述されています。
SD-webui-blip2 を利用して blip2 のキャプションを生成する:画像22

バッチ処理でBLIP2キャプションを生成できました。


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