この記事では、「SDXL Turbo」のGUIアプリケーションを導入する方法をご紹介します。
SDXL Turboは、最新の敵対的拡散蒸留(ADD)技術により、リアルタイムで高品質な画像生成を可能にしました。
ここでは、そのインストールから、GUIアプリケーションを利用してこの驚異的な速度と効率を実感する方法までを段階的に説明します。
手軽にアクセス可能なウェブインターフェースを通じて、SDXL Turboの革新的なパワーを直接体験しましょう。
本記事の内容
- SDXL Turboとは?
- SDXL Turbo GUIアプリ
- SDXL Turbo GUIアプリのインストール
- SDXL Turbo GUIアプリの動作確認
それでは、上記に沿って解説していきます。
SDXL Turboとは?
SDXL Turboは、Stability AI Japanによって開発された最新のテキスト画像合成モードです。
この技術は、敵対的拡散蒸留(Adversarial Diffusion Distillation、ADD)という革新的な蒸留技術を基盤としています。
ADD技術を活用することで、SDXL Turboは1ステップでの画像出力を実現しています。
その結果として、リアルタイムで高忠実度のテキストから画像への変換が可能になります。
SDXL Turboの開発は、既存のSDXL 1.0モデルに新しい蒸留技術を組み込むことから始まりました。
このアプローチにより、SDXL TurboはGAN(Generative Adversarial Networks)の強みを利用できます。
その強みを利用しながら、他の蒸留手法で見られるアーチファクトや画像のぼやけを回避することが可能です。
また、現時点でSDXL Turboは商用利用を目的としていません。
主に技術的詳細に関心を持つ研究者や愛好家向けに、そのモデルが公開されています。
個人的には、文字出力時に使えそうだと考えています。

SDXL 1.0になって文字が出力されやすくはなっています。
でも、まだまだガチャの要素が大きいと言えます。
そのため、狙いの画像が出るまでガチャを回すことに役に立ちそうです。
その場合、次のようなコードで画像を生成しても意味はありません。
from diffusers import DiffusionPipeline pipe = DiffusionPipeline.from_pretrained( "stabilityai/sdxl-turbo" ).to("cuda") results = pipe( prompt="A cinematic shot of a baby racoon wearing an intricate italian priest robe", num_inference_steps=1, guidance_scale=0.0, ) imga = results.images[0] imga.save("image.png")
リアルタイムに生成された画像を見れないとダメということです。
SDXL Turbo GUIアプリ
ここでSDXL TurboのGUIツールとは、以下のwebアプリを指しています。

Diffusersの開発チームが、Hugging Face上で公開しています。
そのため、品質に関しては安心できます。
このWebアプリをローカルマシンで動かしましょう。
そうすれば、SDXL Turboのスピードを実感できるはずです。
一応、Hugging Face上のアプリも動きます。
でも、サーバの混み具合によって全く動かない場合があります。
それに動いたところで、イマイチなスピードなんですよね。
やはり、GPUリソースを独占できるローカルマシンで動かすのがベストと言えます。
サクサクと画像が生成される様子を是非とも実際に確かめてみてください。
そのためには、GPU版PyTorchが必要となります。

それも、現時点で最新バージョンとなる2.1.1が必要です。事前準備としては、CUDA 11.8かCUDA 12.1をインストールしておきます。
なお、Python仮想環境の利用をオススメします。
SDXL Turbo GUIアプリのインストール
まずは、プログラム一式をダウンロードします。
Hugging Face上のデモ画面にアクセスします。
その画面上で、次のアイコンをクリック。

そして、「Clone repository」をクリックします。

gitコマンドをコピーして、実行。
git clone https://huggingface.co/spaces/diffusers/unofficial-SDXL-Turbo-i2i-t2i cd unofficial-SDXL-Turbo-i2i-t2i
ダウンロードできたら、ルートリポジトリに移動します。
そこで以下のファイルを確認できます。
requirements.txt
diffusers==0.23.1 transformers gradio==4.7.1 --extra-index-url https://download.pytorch.org/whl/cu121 torch==2.1.0 fastapi==0.104.0 uvicorn==0.23.2 Pillow==10.1.0 accelerate==0.24.0 compel==2.0.2 controlnet-aux==0.0.7 peft==0.6.0 xformers hf_transfer
GPU版PyTorchのインストールが前提となっていることを確認できます。
現時点(2023年11月末)では、上記のままでインストール可能です。
もしライブラリのバージョンで問題が出たら、該当するライブラリのバージョン指定を止めてみることです。
それでインストールができる場合が、多々あります。
今回は、上記のままで問題ないので次のコマンドを実行。
pip install -r requirements.txt
結構待つことになります。
処理が終わったら、SDXL Turbo GUIアプリのインストールは完了です。
SDXL Turbo GUIアプリの動作確認
起動は、次のコマンドで行います。
python app.py
初回時はモデルのダウンロードが、行われます。

メインどころの上記二つで大体6.5GBほど。
コンソールに次のように表示されたら起動は成功しています。
Running on local URL: http://127.0.0.1:7860 To create a public link, set `share=True` in `launch()`.
ブラウザで表示されるURLにアクセスします。
Hugging Face上のデモ画面と同じことを確認できます。

あとは、プロンプトを入力する度に画像が生成されます。
ある程度プロンプトが固まったら、「Seed」を変更するだけで画像が生成されます。

「Seed」の変更は、フォーカスを入力欄に合わせて矢印キーをクリックするだけでOK。
お目当ての画像が出てくるまで、あとは矢印を押すだけです。