1 minute read

最も洗練された画像生成モデル、Stable Diffusion 3 Medium のオープンリリースを発表

Stable Diffusion 3 のモデルがリリースされたようなので、試してみます。なお、現在は非商用利用のみ可能なライセンスのようです。

準備

GPU を使えるように設定済みのコンテナを使います。

docker run -it --gpus=all --rm -v /home/tadashi/work:/work nvcr.io/nvidia/cuda:12.1.0-base-ubuntu22.04 /bin/bash

必要なパッケージをインストールします。

apt update
apt install -y git python3-pip libgl1-mesa-dev libglib2.0-0

pip で pytorch をインストールします。

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121

Huggin Face のモデルダウンロードページ を開き、モデルの使用に同意します。あわせて Hugging Face のアカウントのトークンも取得します。

モデルのページに記載の通り、diffusers をインストールします。サンプルの実行には transformers も必要なので、あわせてインストールします。

pip install -U diffusers transformers[sentencepiece]

※補足:transformers をインストールしただけだと、以下のエラーが発生しました。

ValueError: Cannot instantiate this tokenizer from a slow version. If it's based on sentencepiece, make sure you have sentencepiece installed.

これを解決するために、sentencepiece をあわせてインストールするようにしています。

実行

モデルのページにあるコードを実行してみます。初回実行時はモデルをダウンロードするので、20GB 程のダウンロードが発生します。

import torch
from diffusers import StableDiffusion3Pipeline

pipe = StableDiffusion3Pipeline.from_pretrained("stabilityai/stable-diffusion-3-medium-diffusers", torch_dtype=torch.float16)
pipe = pipe.to("cuda")

image = pipe(
    "A cat holding a sign that says hello world",
    negative_prompt="",
    num_inference_steps=28,
    guidance_scale=7.0,
).images[0]
image

GPU をガンガン使っているのが見えます。なお、右下に青丸で囲んだ通り、1 枚生成するのに手元の環境では 12 分以上かかります。

実行中

Hello World! 文字もきれいに出力されていますね。 サンプル

更新日時: