「とりあえず、Stable Diffusion XLを触ってみたい」
「Stable Diffusion XLでは日本語を画像に出力できるの?」
このような場合には、この記事の内容が参考になります。
この記事では、Stable Diffusion XLの動作検証について解説しています。
本記事の内容
- Stable Diffusion XLの動作環境
- Stable Diffusion XLのAPI利用
- デモプログラムによる動作確認
- Stable Diffusion XLにおける文字出力の検証
それでは、上記に沿って解説していきます。
Stable Diffusion XLの動作環境
追記 2023年7月11日
SDXL 0.9を使えば、無料で何枚でも画像を生成できるようになっています。
現時点(2023年4月16日)においては、以下の方法でStable Diffusion XLを触れます。
(※ClipDropは対象外)
- DreamStudio(Webサービス)の利用
- Stability APIの利用
これらは、ともに有料です。
ただし、無料枠が用意されています。
もちろん、Stable Diffusion XLが正式に公開されればこれらは不要となります。
ローカルマシンで動かせば、無料で使いたい放題ですからね。
ただし、ここで一つ問題があります。
Stable Diffusion XLが、どれだけのGPUメモリ(VRAM)を必要とするのか問題です。
それに関して、Stability AI社のCEOがユーザーからの質問にTwitter上で回答しています。
Stable Diffusion v2.1(768 x 768)は、8GBのGPUメモリで動くと言われています。
それを基準にすると、20GBのGPUメモリでStable Diffusion XLが動く可能性があります。
でも、そうなってくるとコンシューマー向けGPUはほぼアウトです。
次の3つ(24GB)だけが、ギリセーフと言えます。
- RTX 4090
- RTX 3090 Ti
- RTX 3090
しかし、それも実際に試してみないとわかりません。
したがって、Stable Diffusion XLをローカルマシンで動かすことはかなり敷居が高いです。
追記 2023年4月23日
どうやら16GBのVRAMで動くようです。
16GBのRTX 4080は微妙ですね・・・
そのため、冒頭で挙げた次の方法が有効になります。
- DreamStudio(Webサービス)の利用
- Stability APIの利用
たとえ、Stable Diffusion XLがオープンソースで公開されてもです。
そもそも、お金を払ってまでStable Diffusion XLを使いたい人がどれくらいいるのでしょうか・・・
以上、Stable Diffusion XLの動作環境を説明しました。
次は、Stable Diffusion XLのAPI利用を説明します。
Stable Diffusion XLのAPI利用
現状では、以下の方法でStable Diffusion XLを動かせます。
- DreamStudio(Webサービス)の利用
- Stability APIの利用
ここでは、Stability APIを利用する方法について説明します。
APIを利用する場合には、以下が必要となります。
- stability-sdk
- Stability APIキー
それぞれについて、以下で説明します。
stability-sdk
stability-sdkとは、Stability AI社が公開しているPythonライブラリです。
このライブラリを利用すると、簡単にStability APIが利用できます。
SDKであるため、便利なGUIツールというモノではありません。
あくまで、ソフトやシステムを開発するための部品です。
Stability APIキー
Stability APIキーは、APIを利用する上で必須です。
APIキーを取得するために、DreamStudioでアカウントを登録する必要があります。
アカウント登録ページ
https://beta.dreamstudio.ai/account
とりあえず、アカウント登録を行いましょう。
ログインすると、HOMEらしき画面においてAPIキーを確認できます。
以上、Stable Diffusion XLのAPI利用を説明しました。
次は、デモプログラムによる動作確認を説明します。
デモプログラムによる動作確認
Hugging Face上では、すでにデモが公開されています。
このデモの公開者は、Stability AI社の関係者ではないようです。
このデモでは、次のようにAPIキーを入力する必要があります。
個人的には、APIキーを外部システムに入力するのが怖いです。
そのため、入力しないようにしています。
このデモ画面は、stability-sdkを用いて開発されています。
そのため、これを利用させてもらいましょう。
ファイル一覧画面にアクセスします。
ここから、以下のファイルをダウンロードします。
- app.py
- requirements.txt
正直、requirements.txtはダウンロードする必要はありません。
記載されているのが、次の内容だけですから。
stability-sdk
app.pyをダウンロードできたら、次のコマンドを実行します。
pip install stability-sdk pip install gradio
GUI画面開発に必要となるのが、Gradioです。
そのGradioのインストールも必要となります。
Gradioのインストールで、そこそこ時間がかかります。
インストールが完了したら、app.pyを実行しましょう。
Running on local URL: http://127.0.0.1:7860 To create a public link, set `share=True` in `launch()`.
このようにコンソールに表示されたら、起動は成功です。
ブラウザで「http://127.0.0.1:7860」にアクセスします。
このURL(ローカル)であれば、安心してAPIキーも入力できます。
(app.pyのコードも確認済み)
毎回入力するのが面倒なら、app.pyに直接設定するのもアリです。
まずは、サンプルのプロンプトを利用してみましょう。
Ancient, mysterious temple in a mountain range, surrounded by misty clouds and tall peaks
「Generate image」ボタンをクリックすると、処理が開始されます。
処理時間は、6秒ほどです。
デフォルトの設定では、2枚の画像を生成するようになっています。
もちろん、その分だけCreditsは消費されます。
上記の処理では、1.7のCreditsが消費されています。
Creditsの消費を抑えたいなら、samplesの値を「1」に変更しましょう。
以上、デモプログラムによる動作確認を説明しました。
最後に、Stable Diffusion XLにおける文字出力の検証を説明します。
Stable Diffusion XLにおける文字出力の検証
Stable Diffusion XLでは、文字を画像内に出力できるようになっています。
個人的には、これがStable Diffusion XLを利用する最大の理由かもしれません。
プロンプトは、先行者の実績を利用させてもらいましょう。
次のようなプロンプトを入力すれば、文字が出力できるようです。
Poster on wall that says ‘Free Coffee’ inside minimalistic cofee shop, coffee machines, tables, chairs, high detail quality.
まずは、そのまま入力しましょう。
その結果、次のような画像が生成されました。
英語のテキストが綺麗に出力されることは、確認できました。
では、日本語はどうなのでしょうか?
Poster on wall that says ‘コーヒー無料’ inside minimalistic cofee shop, coffee machines, tables, chairs, high detail quality.
どうやら、日本語はダメみたいですね。
残念。。。
以上、Stable Diffusion XLにおける文字出力の検証を説明しました。