web UI(SD.Next)によるSDXLの動作確認

web UI(SD.Next)によるSDXLの動作確認 ツール

「web UIでSDXLの動作確認を行いたい」
「Refinerでさらに画質をUPさせたい」

このような場合には、この記事の内容が参考になります。
この記事では、web UI(SD.Next)を用いたSDXLの使い方を説明しています。

本記事の内容

  • SD.Nextとは?
  • SD.Nextのインストール
  • SDXLのダウンロード
  • SDXLの動作確認

それで、上記に沿って解説していきます。

SD.Nextとは?

GitHub - vladmandic/automatic: SD.Next: Advanced Implementation of Stable Diffusion and other Diffusion-based generative image models
SD.Next: Advanced Implementation of Stable Diffusion and other Diffusion-based generative image models - vladmandic/automatic

SD.Nextとは、Stable Diffusion用のGUIツールです。
AUTOMATIC1111版web UIをベースにして、開発が進められてきました。

開発者の名前から、Vladmandic版web UIとも呼ばれています。
機能的には、AUTOMATIC1111版web UIにプラスアルファという感じになります。

また、インストールがAUTOMATIC1111版に比べると簡単です。
搭載しているGPUの状況から、適切なPyTorchを自動でインストールしてくれます。

現時点(2023年7月9日)での最大の違いは、Diffusersベースで機能できるかどうかでしょう。
この違いにより、SD.NextでSDXLを動かすことが可能になっています。

そうは言っても、AUTOMATIC1111版でも近いうちにSDXLが動くはずです。
それまでは、Vladmandic版と呼ばれるSD.Nextを利用するのもありでしょう。

そして、そのままSD.Nextを利用し続ける人が増えることをVladmandic氏はイメージしているのかもしれません。
立派なマーケティング戦略ですよね。

以上、SD.Nextについて説明しました。
次は、SD.Nextのインストールを説明します。

SD.Nextのインストール

SD.Nextのインストールは、非常に簡単です。
インストールする場合は、仮想環境の利用を推奨します。
(用意しなくても、自動的に仮想環境を構築してインストールを進めるようです)

まずは、GitHubからファイルをダウンロードします。

git clone https://github.com/vladmandic/automatic

ダウンロードできたら、リポジトリルートへ移動。

cd automatic

リポジトリルートには、起動用のファイルが用意されています。
そして、OS毎に起動ファイルが異なります。

OS起動ランチャー
Windowswebui.bat
Linuxwebui.sh

初めて起動する際には、SD.Nextのインストールが始まります。
あと、SDXLを動かす場合には次のオプションを付ける必要があります。

./webui.bat --backend diffusers

起動コマンドをオプション付きで実行します。

自動的にGPUメモリが判別され、それにあったPyTorchがインストールされている様子を確認できます。
これ以降は、パッケージや拡張機能などのインストールが続きます。

途中で次のようなエラーが出る場合があるかもしれません。
少なくとも現時点(2023年7月9日)では、確実に出ます。

ImportError: cannot import name 'deprecated' from 'typing_extensions'
続行するには何かキーを押してください . . .

このような場合は、「Enter」でも何でも良いのキーを押します。
そして、typing_extensionsを少し古いバージョンに置き換えます。

pip install -U typing-extensions==4.6.3

typing_extensionsの再インストールが完了したら、次のコマンドを再度実行します。
しばらくすると、次のように確認してきます。

今回は、SD 1.5は不要のため「N」を入力します。
しばらくすると、次のように表示されます。

ここまで確認できれば、SD.Nextのインストールは完了です。

以上、SD.Nextのインストールを説明しました。
次は、SDXLのダウンロードを説明します。

SDXLのダウンロード

まずは、モデルをダウンロードするための準備からです。

SDXLのダウンロードには、Hugging Faceへのログインが必要です。
そして、規約への同意などを済ませてください。

stabilityai/stable-diffusion-xl-base-0.9 · Hugging Face
We’re on a journey to advance and democratize artificial intelligence through open source and open science.
stabilityai/stable-diffusion-xl-refiner-0.9 · Hugging Face
We’re on a journey to advance and democratize artificial intelligence through open source and open science.

とりあえず、それぞれの画面で次のようなサンプル画像を確認できるようになればOK。

OKとなれば、Hugging Faceにログインして次の画面へアクセスします。
https://huggingface.co/settings/tokens

この画面では、Hugging Faceのアクセストークンを取得できます。
アクセストークンをコピーします。
準備はここまでです。

では、モデルのダウンロードを行います。
SD.Nextを起動させて、ブラウザで「http://127.0.0.1:7860/」へアクセスします。

「Models」タブを開いて、「Huggingface」タブを選択。

各項目には、以下の値を入力します。

Seach modelssdxl
Select model[1回目]stabilityai/stable-diffusion-xl-base-0.9
[2回目]stabilityai/stable-diffusion-xl-refiner-0.9
Huggingface tokenコピーしたアクセストークン

入力できたら、「Download model」ボタンをクリック。
それぞれ、約13GBと約11GBの容量があります。

それなりに時間がかかるので、気長に待ちましょう。
コンソールを見ておけば、ダウンロードの状況が把握できます。
一応、ダウンロード完了後に画面上で完了したという内容の表示はされます。

Windowsの場合、次の場所にモデルが保存されます。(デフォルト)

C:\Users\ユーザー名\.cache\huggingface\hub

以上、SDXLのダウンロードを説明しました。
次は、SDXLの動作確認を説明します。

SDXLの動作確認

SDXLの動作確認を行います。
まず、Refiner選択項目を表示させましょう。

「Settings」タブ内を開いて、「User Interface」を選択。

ここで、「Quicksettings list」を確認しましょう。

「sd_model_refiner」を追加します。

追加できたら、「Apply settings」をクリック。

その後、「Restart server」をクリック。
再起動後の画面では、「Stable Diffusion refiner」を確認できます。

動作確認は、以下のように分けて行いましょう。

  • BASEモデルのみ利用
  • BASEモデル + Refinerモデルの利用

GPUメモリのサイズ次第では、BASEモデルのみしか動かない可能性があるからです。
もっと言うと、 BASEモデルでも動かない可能性が普通にあります。

BASEモデルのみ利用

BASEモデルを選択します。
「Stable Diffusion refiner」は「None」のままです。

あとは、いつものようにプロンプトを入力します。
ここでRefinerモデルを選択すると、エラーで画像生成ができません。

設定は、次のようにします。

プロンプトは、以下を利用します。

Imagine a scene of a human and an AI in conflict, their struggle symbolizing the broader tension between technology and humanity. The medium is a hyper-realistic photograph, with a style that captures the stark reality of this conflict. The lighting is harsh and unforgiving, illuminating the determined expression of the human and the unfeeling gaze of the AI. The composition is a close-up shot, taken with a Nikon D850 DSLR, using a Nikkor 85mm f/1.4G lens. The resolution is 45.7 megapixels, ISO sensitivity: 25,600, Shutter speed 1/8000 second.

このプロンプトは、「AIと人の争い」をお題にChatGPTに作成させています。
詳細は、次の記事で説明しています。

この条件で生成した画像は、以下。

いきなりハイレベルな画像を生成してくれますね。
この画像を生成した際のシステム状況は、以下となっています。

Time taken: 14.31s | GPU active 10723 MB reserved 16368 MB | System peak 17694 MB total 24576 MB

BASEモデル + Refinerモデルの利用

「Stable Diffusion refiner」にRefinerモデルを選択します。

これ以外は、「BASEモデルのみ利用」と同じ条件とします。
SEEDも同じモノを使います。

Refinerされた画像は、以下。

明らかに画質がUPしていることがわかりますね。
Refinerした場合のシステム状況は、以下。

Time taken: 19.48s | GPU active 16708 MB reserved 22236 MB | System peak 23612 MB total 24576 MB

コンソールでは、次のような警告が表示されています。

GPUメモリを使い過ぎだという内容ですね。

23GBまで利用したという結果を確認できます。
これ以上の大きいサイズの画像を生成するのは、厳しいかもしれません。

まあ、こういう問題はすぐに解決されるでしょう。
オープンソースであるため、天才開発者たちが何とかしてくれるはずです。

実際、これまでのStable Diffusionの経緯がそうでしたからね。
大いに期待しましょう。

そうだとしても、Refinerを動かすには8GBでは無理でしょう。
GPUメモリは、16GB以上は必要になるのではないでしょうか?

そうなると、RTX 4090、4080、3090ぐらいしか候補はありません。
上記のセールでは、RTX 4090しか販売中ではないようです。

RTX 4080は品切れなんでしょうかね。
でも、RTX 4090搭載マシンもかなり手ごろな価格になってきています。

もしかしたら、2023年7月中旬以降にRTX 4090、4080、3090の需要は伸びるかもしれません。
2023年7月18日にSDXL 1.0がリリース予定となっています。

以上、SDXLの動作確認を説明しました。

タイトルとURLをコピーしました