SDXLで高品質な画像を生成する
StableDiffusionの最新モデルであるSDXLを使用して高品質な画像を生成する方法を解説します。
SDXLについて
SDXLはstability.aiが開発した最新の画像生成モデルです。
SDXLはStableDiffusion 1.5に比べて3倍のパラメータのUNetバックボーンを使用するとともに、潜在空間の解像度を64x64から128x128に、生成画像の解像度を512x512から1024x1024に拡大しています。

SDXLの仕様(出典:https://arxiv.org/pdf/2307.01952.pdf)
SDXLはSD1.5に比べて主観品質が大幅に向上しています。

SDXLの主観画質評価(出典:https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0)
SDXLはbaseモデルとrefinerモデルの2モデル構成ですが、baseモデルだけでも使用可能です。本記事では、baseモデルのみを使用します。

SDXLのアーキテクチャ(出典:https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0)
StableDiffusionWebUIからSDXLを使用する
2023/07/27のStableDiffusionWebUIのmasterでSDXLに対応済みです。StableDiffusionWebUI自体の使い方は過去のBLOGを参照してください。SDXLを使用するため、git pullすることで最新版にします。
sd_xl_base_1.0.safetensorsをダウンロードしてmodels/Stable-diffusionに配置します。容量は6.7GBで、StableDiffusion1.5の4.1GBよりも大きくなっています。
WebUIのモデルリストからSDXLを選択し、生成解像度を1024に設定、SettingsにVAEを設定していた場合はNoneに設定します。

プロンプトには「cosplay girl in tokyo, hatsune miku」を使用しました。
生成した画像は下記になります。非常に高品質です。

SDXLの出力
比較用にStableDiffusion1.5で同じプロンプトで生成した画像は下記となります。

StableDiffusion 1.5の出力
ただし、RTX3080を使用した場合、StableDiffusion 1.5では3秒程度で生成できる画像が、SDXLでは30秒程度必要です。
なお、StableDifffusionWebUIのdevブランチでは、refinerモデル対応も進んでいます。もう少ししたらrefinerモデルも後処理に使用できるかと思います。
Koyha’s UIでLoRAを作成する
Kohya’s UIは2023/08/21にdev2ブランチにSDXL対応がマージされています。Kohya’s UI自体の使用方法は過去のBLOGを参照してください。
Kohya’s UIでSDXLのLoRAを作る方法のチュートリアルは下記の動画になります。
SDXL対応版を使用するため、gitでdev2ブランチに切り替え、venvフォルダを削除した後、setup.batを再実行します。なお、venvフォルダを削除してsetup.batを再実行しない場合、「AttributeError: module ‘tensorflow’ has no attribute ‘io’」というエラーが発生することがあります。
モデルタイプはCustomを設定し、SDXLのsafetensorを指定し、SDXL Modelにチェックを入れます。

SDXLのモデルの指定
学習元の画像と、出力先フォルダを指定、Epochsを5に変更し、学習を行います。

フォルダ指定

Epochs指定
学習時間は11枚の画像を5Epochで1時間程度です。StableDiffusion1.5だと6分程度なため、学習時間は長くなっています。作成したLoRAのファイルサイズは56MBです。StableDiffusion1.5だと9.3MB程度なため、こちらも大きくなっています。学習時、VRAMは9.8GB使用します。
作成したLoRAをStableDiffusionWebUIのmodels/Loraフォルダにコピーして推論します。
Promptには学習に使用したフォルダ名を入れます。今回は、「unitychan

画像生成の設定
非常に高品質なUnity Chanが生成できました。

生成された画像
(© Unity Technologies Japan/UCL)
まとめ
SDXLを使用して高品質な画像が生成できることを確認しました。また、SDXL向けのLoRAを作成し、特定の絵柄の高品質な画像が生成できることを確認しました。
アイリア株式会社はAIを実用化する会社として、クロスプラットフォームでGPUを使用した高速な推論を行うことができるailia SDKを開発しています。アイリア株式会社ではコンサルティングからモデル作成、SDKの提供、AIを利用したアプリ・システム開発、サポートまで、 AIに関するトータルソリューションを提供していますのでお気軽にお問い合わせください。
ailia Tech BLOG