自由にプロンプトを入力することで、自分の好きなように画像を生成することができるStable Diffusionですが、もっと画像の生成速度を上げることができたらより便利になるのになと感じることはないでしょうか?
今回はそんな方向けに、画像の生成速度が格段と早いと話題になっているモデル「SSD-1B」について解説していきたいと思います。
「Google Colab」での使用方法や、他のツールとの画像生成速度の比較も紹介していきますので、ぜひ最後までご覧ください!
※Stable Diffusionの立ち上げ方については、以下の記事で詳しく解説しています。
SSD-1Bとは?
まずは、「SSD-1B」が一体どのようなものなのかについて、詳しく解説していきたいと思います。
「SSD-1B」とは、Stable Diffusion XL(SDXL)を50%も小型化することに成功したモデルのことを指しています。
「SSD-1B」を用いることで、高いクオリティーの画像生成機能を保ちつつ、画像生成に要する時間を、通常のStable Diffusionと比較して60%も高速化することができます。
また、「SSD-1B」に関する詳しい仕組みなどについては、下記のウェブサイトに掲載されています。
【Google Colab版】SSD-1Bの使い方
次に、Google Colabでの「SSD-1B」の使用方法について解説していきたいと思います。
Google Colabを用いて「SSD-1B」を使うには、以下の手順を踏む必要があります。
- Google Colabを起動し、ノートブックを新規で立ち上げる
- 「編集」→「ノートブックの設定」と進み、ハードウェアアクセラレータを「T4 GPU」に変更する
- パッケージをインストールするためのコードを入力し、実行する
- パイプラインを設定するためのコードを入力し、実行する
- プロンプトなどのコードを入力して実行し、画像を生成する
以上の手順に従うことで、Google Colab版の「SSD-1B」を使用することが可能になります。
それでは、画像つきで手順をお見せしていきたいと思います。
まずは、ノートブックを新規で立ち上げていきます。
続いて、ハードウェアアクセラレータを「T4 GPU」に変更していきます。
そして、パッケージをインストールするために、以下のコードを入力し、実行してください。
# パッケージのインストール
!pip install git+https://github.com/huggingface/diffusers
!pip install transformers accelerate safetensors
次は、パイプラインを準備するために、以下のコードを入力し、実行していきます。
from diffusers import StableDiffusionXLPipeline
import torch
# パイプラインの準備
pipe = StableDiffusionXLPipeline.from_pretrained(
"segmind/SSD-1B",
torch_dtype=torch.float16,
use_safetensors=True,
variant="fp16"
)
pipe.to("cuda")
最後に、プロンプトなどのコードを入力し、実行していきます。
今回は、以下のプロンプトとネガティブプロンプトを「prompt=」の欄と「neg_prompt=」の欄に入力して、画像を生成していきます。
・プロンプト
1girl, 15 years old, school uniform, blazer
・ネガティブプロンプト
worst quality, poor quality, poorly eyes
そのため、実際に実行していくコードは以下になります。
%time
from transformers.pipelines.image_to_text import Image
from IPython.display import display
# プロンプトの準備
prompt = "1girl, 15 years old, school uniform, blazer " # プロンプト
neg_prompt = "worst quality, poor quality, poorly eyes" # ネガティブプロンプト
# 画像生成
image = pipe(prompt=prompt, negative_prompt=neg_prompt).images[0]
# 確認
display(image)
すると、約4秒で画像サイズが「1024×1024」の以下の画像が生成されました。
- Stable Diffusionのプロンプトの見本が知りたい
- 画像生成が思ったようにできない
- 色々なプロンプトを探したい
他のツールより高速生成できるのか検証!
ここからは、実際に他のツールよりも高速に画像生成することができるのか、検証していきたいと思います。
今回はわかりやすく、「SDXL」を比較対象にして検証していきます。
「SDXL」で先ほどと同様のプロンプトを用い、画像サイズも同様の「1024×1024」に設定して、画像を生成していきます。
すると、約18秒で以下の画像が生成されました。
結果的に「SSD-1B」を用いた場合の方が14秒ほど早く画像が生成されています。
まとめ
いかがでしたでしょうか?
今回は、「SSD-1B」の使い方や画像生成速度について解説してきました。
今回のポイントをまとめると、以下のようになります。
- 「SSD-1B」とは、「SDXL」を小型化したもので、高いクオリティーを保ちつつ、画像生成速度を60%も高速化することに成功したモデルである
- 「SSD-1B」の使い方は、【Google Colabを起動し、ノートブックを新規で立ち上げる】→【ハードウェアアクセラレータを「T4 GPU」に変更する】→【パッケージをインストールするためのコードを入力し、実行する】→【パイプラインを設定するためのコードを入力し、実行する】→【プロンプトなどのコードを入力して実行し、画像を生成する】である
- 「SSD-1B」の画像生成速度は「SDXL」よりも早い
より高速に画像生成をしたい方には、「SSD-1B」はとてもおすすめなツールです。
ぜひ活用してみてください!
- Stable Diffusionのプロンプトの見本が知りたい
- 画像生成が思ったようにできない
- 色々なプロンプトを探したい