今話題の「StreamDiffusion」。
「よく耳にするけどよくわからない。」「使い方もよくわからない。」
そういったお悩みを抱えている方が多いと思います!
この記事では、「StreamDiffusion」について、基礎について分かりやすく解説していきます。
従来の技術を凌駕する「StreamDiffusion」の魅力と、その効果的な活用方法について、詳しくご紹介します。
それでは、一緒に学んでいきましょう!
StreamDiffusionとは?
「StreamDiffusion」は、2023年に登場したAI画像生成技術で、特にNVIDIAのGeForce RTX 4090を使うことで100fpsを超える高速画像生成が可能です。
また「StreamDiffusion」は、Stable Diffusionモデルの高速化に貢献しています。
従来の技術「TensorRT」や「LCM LoRA」も高速化を実現していましたが、「StreamDiffusion」はこれらを上回る性能を持ち、特にRTX 4090で顕著な高速化を実現しています。
StreamDiffusionの導入方法
今回は、Google Colabを使用して、「StreamDiffusion」を簡単にセットアップし、利用する方法を紹介します。
以下の手順に従い、実際に使ってみてください。
ステップ0:Google Colabの設定
- Google Colabを開く。
- 新規ノートブックの作成。
- 「ランタイム」→「ランタイムのタイプの変更」→ハートウェアアクセラレータの中から「GPU」を選択する。
ステップ1:NVIDIAのGPUを確認
まず、Google ColabがNVIDIAのGPUを使用していることを確認します。以下のコマンドを実行してください。
!nvidia-smi
ステップ2:必要なパッケージのインストール
次に、必要なパッケージをインストールします。以下のコマンドを実行してください。
!nvcc -V
!pip install torch==2.1.0 torchvision==0.16.0 xformers --index-url https://download.pytorch.org/whl/cu121
!pip install git+https://github.com/cumulo-autumn/StreamDiffusion.git@main#egg=streamdiffusion[tensorrt]
ステップ3:TensorRTのインストール
ランタイムを再起動した後、TensorRTをインストールします。以下のコマンドを実行してください。
!python -m streamdiffusion.tools.install-tensorrt
ステップ4:TensorRTの確認
TensorRTが正しくインストールされたかを確認するために、以下のコマンドを実行してください。
!pip freeze | grep -i tensorrt
ステップ5:StreamDiffusionのセットアップ
以下のコマンドを実行して、「StreamDiffusion」をセットアップします。
!git clone https://github.com/cumulo-autumn/StreamDiffusion.git
%cd StreamDiffusion
import torch
from diffusers import AutoencoderTiny, StableDiffusionPipeline
from streamdiffusion import StreamDiffusion
from streamdiffusion.image_utils import postprocess_image
ステップ6:パイプラインの構築
次に、StableDiffusionパイプラインを構築します。以下のコードを実行してください。
pipe = StableDiffusionPipeline.from_pretrained("KBlueLeaf/kohaku-v2.1").to(
device=torch.device("cuda"),
dtype=torch.float16,
)
以上で導入が完了です。
- Stable Diffusionのプロンプトの見本が知りたい
- 画像生成が思ったようにできない
- 色々なプロンプトを探したい
StreamDiffusionの使い方
ここからは、画像を生成してみましょう。
ステップ7:StreamDiffusionの初期化
「StreamDiffusion」を初期化し、必要な設定を行います。
stream = StreamDiffusion(
pipe,
t_index_list=[0, 16, 32, 45],
torch_dtype=torch.float16,
cfg_type="none",
)
stream.load_lcm_lora()
stream.fuse_lora()
stream.vae = AutoencoderTiny.from_pretrained("madebyollin/taesd").to(device=pipe.device, dtype=pipe.dtype)
pipe.enable_xformers_memory_efficient_attention()
ステップ8:プロンプトの設定と画像生成
最後に、生成したい画像の説明(プロンプト)を設定し、画像を生成します。
prompt = "a woman, curly black short hair, white t-shirt"
stream.prepare(prompt)
from IPython.display import display
for _ in range(4):
stream()
while True:
x_output = stream.txt2img()
display(postprocess_image(x_output, output_type="pil")[0])
実際に自分で使用するときは、prompt = “a woman, curly black short hair, white t-shirt“の箇所を変更して使用しましょう。
画像が生成された画面
まとめ
いかがでしたでしょうか?
『StreamDiffusion』の導入・使い方にについて解説してきました。
今回のポイントをまとめると、以下のようになります。
- 「StreamDiffusion」は、AI画像生成技術であり、高速画像生成が可能。
- 「StreamDiffusion」は、Gooogle Colab上で使うことが可能。
- 「StreamDiffusion」は、画像生成速度が圧倒的に速い。
この記事を通じて、「StreamDiffusion」魅力と活用方法をご紹介しました。
今回の内容が「StreamDiffusion」についての理解を深め、実際の使用に役立つことを願っています。
さらに知識を深めたい方は、当サイトの他の関連記事もぜひご覧ください。新たな発見があるかもしれません!
それでは、次回の記事でお会いしましょう。
- Stable Diffusionのプロンプトの見本が知りたい
- 画像生成が思ったようにできない
- 色々なプロンプトを探したい