SDXLで高品質な画像を生成する

Kazuki Kyakuno
axinc
Published in
Aug 24, 2023

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 <lora:sdxl:1>」を使用しました。

画像生成の設定

非常に高品質なUnity Chanが生成できました。

生成された画像

(© Unity Technologies Japan/UCL)

まとめ

SDXLを使用して高品質な画像が生成できることを確認しました。また、SDXL向けのLoRAを作成し、特定の絵柄の高品質な画像が生成できることを確認しました。

ax株式会社はAIを実用化する会社として、クロスプラットフォームでGPUを使用した高速な推論を行うことができるailia SDKを開発しています。ax株式会社ではコンサルティングからモデル作成、SDKの提供、AIを利用したアプリ・システム開発、サポートまで、 AIに関するトータルソリューションを提供していますのでお気軽にお問い合わせください。

--

--

Kazuki Kyakuno
axinc
Editor for

CTO — ax Inc. , Managing Director — AXELL