こんにちは!悠です!
今回は「Stable Diffusion WebUI」に最初から備わっているCLIPをより強力なものに変更して、入力したプロンプトの効き目を強くできる拡張機能「CLIP Changer」の使い方について紹介していきます。
なお、この拡張機能はAIイラストの生成工程に変更を加えるため、万が一のエラーに備えてGoogle Colaboratoryもしくはテスト環境を構築して試してみるのがおすすめです。

使い方自体はめちゃくちゃ簡単なので安心してください!
CLIPとは?
CLIPとは、「Stable Diffusion」に備わっている入力したプロンプト(テキスト)を画像に反映させるテキストエンコーダーのようなものです。(参考記事)
わかりやすく言うと、”cat”というテキストから実際に「猫の画像」を生成してくれる機能のことです。
「Stable Diffusion」の根幹的役割を担っている部分でもあり、数億枚のサンプル画像をもとに作り出されたらしいですね。
CLIPの性能が良くなるほどプロンプトの効き目が強くなり、使用したものすべてが反映されるようになります。
例えば、セーラー服を指定したのにTシャツを着ている画像が生成される確率が減ります。
なお、皆様もClip Skipという設定を聞いたことがあるのではないでしょうか。これもこのCLIPに関係しています。
CLIPで行われる処理は複数の層に分かれており、通常「Stable Diffusion」では最後の層まで処理を行ってからイラストを生成しますが(clip skip = 1)、それを最後から2番目の層までで処理をやめる(最後の層の処理をスキップする)のがclip skip = 2らしいです。(参考記事)
CLIPの種類について
まず「Stable Diffusion」に最初から備わっているCLIPは、「clip-vit-large-patch14」と呼ばれるものです。
これはStable Diffusion v1.5のHugging Faceのページで確認できます。
ローカル版の「Stable Diffusion WebUI」を導入している方なら、下記のディレクトリ内でも確認できると思います。
この初期設定である「clip-vit-large-patch14」より優れたCLIPを紹介してくれている記事が2つありました。
1つ目は下記の記事で紹介されている「clip-vit-large-patch14-336」というものです。「clip-vit-large-patch14」と同じサイズ(1.71GB)でありながら、性能は上回っているようです。

今回は後述する拡張機能を使ってCLIPを変更するので、自分でダウンロードする必要はありませんが、下記Hugging Faceのページから保存することができます。

2つ目は下記の記事で紹介されている「CLIP-ViT-g-14-laion2B-s12B-b42K 」というものです。こちらはファイルサイズが5.47GBもあるため単純にストレージの容量も食いますし、どうやらVRAM消費量も増えるようです。

Hugging Faceのページはこちらです。

拡張機能「CLIP Changer」とは?
今回紹介する「CLIP Changer」は、上の項で紹介したCLIPの種類をWebUIの設定から1クリックで変更できるようにしてくれる拡張機能です。
自分でスクリプトを編集しなくて済む分、予期せぬエラーが出る可能性も減りますし、何より使い勝手が抜群にいいです!
「CLIP Changer」の導入方法
ローカル版の場合
「Extensions」→「Install from URL」の「URL for extension’s git repository」に下記のURLを入力しInstallをクリックしましょう。
https://github.com/bbc-mc/sdweb-clip-changer
インストール後「Stable Diffusion WebUI」を再起動して、Settingsのタブに「CLIP Changer」の設定欄が追加されていれば導入は成功です。
Google Colaboratory版の場合
下記の方法で紹介している「maintained by Akaibu」のノートブックを使って、拡張機能「CLIP Changer」を導入していきます。
まだご覧になっていない方は、まず最初にこちらを準備しておいてください。


Google Driveからモデルデータを読み込むセルの下に新しくセルを作成し、下記のコードを入力してください。
#clip changerをインストール %cd /content/stable-diffusion-webui/extensions/ !git clone https://github.com/bbc-mc/sdweb-clip-changer /content/stable-diffusion-webui/extensions/sdweb-clip-changer %cd /content/stable-diffusion-webui
「CLIP Changer」の使い方
今回は例として、CLIPを「clip-vit-large-patch14-336」に変更してみます。
「Stable Diffusion WebUI」を起動して、Settingsのタブにある「CLIP Changer」の設定欄に移動し、下記のようにEnable CLIP Changerにチェックを入れた後、下2つの入力欄に「openai/clip-vit-large-patch14-336」と入力します。
「openai/clip-vit-large-patch14-336」の部分はこのページから確認できます。別のCLIPを使いたい場合は同じ形式で入力してみましょう。
後はApply Settingsを押し、モデルを切り替えた時点で設定したCLIPが有効になります。
CLIPを初期設定の「clip-vit-large-patch14」に戻したい場合は、Enableのチェックを外し、再度モデルデータを切り替えます。
RuntimeError: Expected all tensors to be on the same device, but found at least two devices, cpu and cuda:0!
この拡張機能を有効化してCLIPを切り替えると、下記のようなエラーが出る場合があります。
どうやらこれは「webui-user.bat」のset COMMANDLINE_ARGSに、medvramまたはlowvramを使用していると発生するようです。
このエラーが発生するとWebUIでAIイラストを生成できなくなるため、「~\webui\extensions」にある「CLIP Changer」のフォルダを削除しましょう。
これで再びイラスト生成ができるようになります。
CLIPの違いによる画像の比較
参考までに、「clip-vit-large-patch14」と「clip-vit-large-patch14-336」を使って生成した画像を紹介します。
モデルは「animelike2D」で、プロンプトは下記の通りです。なお高画質化は行っておらず、Seed値やサンプラーなどCLIP以外の設定は全て同じです。
masterpiece, best quality, absurdres, highres, official art, 1girl, solo, medium breasts, portrait, looking at viewer, smile, short hair, shirt, thighhighs, gloves, long sleeves, hat, navel, holding, bare shoulders, medium breasts, underwear, standing, panties, jacket, yellow eyes, white shirt, weapon, white hair, thighs, cowboy shot, open clothes, necktie, shorts, sleeveless, midriff, collared shirt, white gloves, off shoulder, stomach, holding weapon, grin, white thighhighs, open jacket, black jacket, crop top, black panties, short shorts, sleeveless shirt, skindentation, beret, white headwear, highleg, black shorts, red necktie, highleg panties, on back
(worst quality, low quality:1.4), (monochrome, greyscale:1.4), zombie, nude, bad-hands-5, EasyNegative, bad anatomy, logo
【clip-vit-large-patch14】
【clip-vit-large-patch14-336】
「clip-vit-large-patch14-336」の方が、ジャケット(上着)の部分を上手く表現できているように見えますね。
まとめ
以上が、「Stable Diffusion WebUI」に最初から備わっているCLIPをより強力なものに変更して、入力したプロンプトの効き目を強くできる拡張機能「CLIP Changer」の紹介でした。
CLIPの精度を上げることで、よりAIイラストのクオリティを向上させることができるかもしれないので、ぜひ試してみてくださいね!
では、ここまで読んでいただきありがとうございました。
コメント