Stable Diffusion – AUTOMATIC1111版webuiでSDXLを使用する方法

2023年7月25日に公開されたAUTOMATIC1111版webui v1.5.0にてSDXLが正式にサポートされるようになりました。そこで、この記事ではAUTOMATIC1111版webuiでSDXLを使用する方法について書いていきます。

AUTOMATIC1111版webuiを使用したことがないという方は併せてこちらの記事もご覧ください。

目次

SDXLの概要

SDXLはStability AIが2023年7月27日にリリースしたStable Diffusionの最新モデルです。SD1系やSD2系と比べてかなり変化していますが、大きな違いは以下の二点です。

  • 学習ベースが512×512 (SD1系)/712×712 (SD2系) から1024×1024になった。
  • 過程が1passから2passになった。

学習ベースが大きくなったことで、hires.fixやTiled Diffusionを使用せずとも、ある程度の高画質画像を素出しすることが可能になっています。

出典:stabilityai/stable-diffusion-xl-base-1.0・Hugging Face

また、過程が1passから2pass (BaseとRefiner) になることで画質が向上するとされています。

モデル等のダウンロード

SDXLは2passを採用しているため、モデルはBaseとRefinerの二つが必要となります。よって以下の二つのモデルとVAEをダウンロードしてください。

AUTOMATIC1111版webui環境の整備

SDXLを使用する場合、SD1系やSD2系のwebuiとは環境を分けた方が賢明です(既存の拡張機能が対応しておらずエラーを吐くなどがあるため)。

適当な階層 (Cドラ直下など) に作業ディレクトリ (ここではaiworks2-sdxlとした) を作成、直下にstable-diffusion-webuiディレクトリがない状態でコマンドプロンプト等を開きます。その後以下を順に実行します。行頭の>は不要です。

> cd c:\aiwork2-sdxl
> git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git

無事作業ディレクトリにstable-diffusion-webuiが作成されたら、先ほどダウンロードしておいたモデルをstable-diffusion-webui\models\Stable-diffusionに、VAEはmodels\VAEに置いて下さい。

stable-diffusion-webui\webui-user.batをメモ帳などで開き、--autolaunch--no-half-vaeを付けます。その他必要なオプションがあれば適当に付けてください。

@echo off

set PYTHON=
set GIT=
set VENV_DIR=
set COMMANDLINE_ARGS=--autolaunch --no-half-vae

call webui.bat

後はwebui-user.batをクリックして実行し、webuiを起動して下さい。

画像の生成

前述しましたがSDXLは2passを採用しているためstable-diffusion-xl-base-1.0stable-diffusion-xl-refiner-1.0の二つのモデルを使用する必要があります。しかし、執筆時点 (2023/07/28) ではAUTOMATIC1111版webuiはrefinerに対応していません。

このため通常の画像生成とは異なり、少し特殊な生成方法となります(v1.5.0からバージョンアップしていけば対応する可能性はあります)。

checkpointでstable-diffusion-xl-base-1.0を、VAEでsdxl-vaeを指定します。

webuiでVAEやClip skipの表示方法がわからない方はStbale Diffusion web UI AUTOMATIC1111版のインストール方法を参照ください。

モデルとVAEを指定したら適当にプロンプトを入れ、幅と高さをデフォルトの512から1024×1024に変更します。ここまで出来たらGenerateを押して画像を生成します。

これが2passの内、Baseでの推論となります。

続いて生成された画像をi2iに転送します。checkpointをstable-diffusion-xl-refiner-1.0に変更、プロンプトや幅高さ、CFG Scaleなどの設定値はそのままで、Denoising strengthのみ0.1~0.3程度に変更します。Upscaleは行いません。設定が完了したらGenerateを押して画像を生成します。

これが2passの内、Refinerでの推論となります。

AUTOMATIC1111版webuiがRefinerに対応するまでは、このようにt2iで生成した後にi2iへ転送し、checkpointを切り替え生成するという方法を取る必要があるようです。

Refinerを通した後は十分綺麗になっていますがi2i後も解像度は1024×1024と変わらないため、高解像度化する場合などはこの後にTiled DiffusionSD Upscalerを使用する形になります。

【Base後(左)とRefiner後(右)の比較】SD1系やSD2系のデフォルトと比較するとBaseでも十分綺麗になっているように見えますが、2pass処理でRefinerを使用すると書き込みが増えていることがわかります。

以上、AUTOMATIC1111版webuiでSDXLを使用する方法でした。

コメント

コメントする

※ スパム対策のためコメントは日本語で入力してください。また、コメントは管理者による承認作業が完了次第、コメントエリアに掲載されます。

CAPTCHA

目次