Google Colab ではじめる Stable Diffusion 1.5
「Google Colab」で「Stable Diffusion」によるテキストから画像を生成する方法をまとめました。
1. Stable Diffusion
「Stable Diffusion」は、2022年8月に無償公開された画像生成AIです。ユーザが画像内容を説明するテキスト(プロンプト)を指定することで、それに応じて画像が自動生成されます。
2. HuggingFace Diffusers
「HuggingFace」は、人工知能のライブラリ、モデル、データセットの共有サイトです。「HuggingFace Diffusers」は、「Stable Diffusion」をはじめとする拡散モデルの各種実装およびモデルを、共通インタフェースで簡単に利用するためのパッケージになります。
3. Colabでの実行
Colabでの実行手順は、次のとおりです。
(1) メニュー「編集→ノートブックの設定」で、「ハードウェアアクセラレータ」に「GPU」を選択。
(2) パッケージのインストール。
# パッケージのインストール
!pip install diffusers[torch]==0.8.1 transformers
(3) パイプラインの準備。
from diffusers import StableDiffusionPipeline
import torch
# パイプラインの準備
pipe = StableDiffusionPipeline.from_pretrained(
"runwayml/stable-diffusion-v1-5",
torch_dtype=torch.float16,
revision="fp16"
).to("cuda")
(4) 推論の実行。
# 推論の実行
prompt = "cute cat ear maid"
image = pipe(prompt).images[0]
# 画像の保存と表示
image.save("output.png")
image
画像が出力されます。
4. StableDiffusionPipelineの引数
「StableDiffusionPipeline」の引数は、次のとおり。
5. Stable Diffusionモデルの一覧
「Stable Diffusion」のモデルには、標準モデルの他に、追加学習が行われた数多くのモデルが提供されています。基本的に上記と同じ手順で、パイプラインを書き換えるだけで利用できます。
diffusers対応モデルは、以下のサイトで確認できます。
◎ Waifu Diffusion 1.3
2次元絵が得意で有名なモデルです。
パイプラインの作成手順は、次のとおりです。
from diffusers import StableDiffusionPipeline
import torch
# パイプラインの準備
pipe = StableDiffusionPipeline.from_pretrained(
"hakurei/waifu-diffusion",
torch_dtype=torch.float16,
revision="fp16"
).to("cuda")
◎ Trinart Diffusion v2
「Trinart Diffusion」は、やわらかいタッチの2次元絵が得意なモデルです。
パイプラインの作成手順は、次のとおりです。revisionには、diffusers-60k / diffusers-95k / diffusers-115k を指定する必要があります。
from diffusers import StableDiffusionPipeline
# パイプラインの準備
pipe = StableDiffusionPipeline.from_pretrained(
"naclbit/trinart_stable_diffusion_v2",
torch_dtype=torch.float16,
revision="diffusers-115k",
).to("cuda")
◎ shirayu/sd-tohoku-v1
東北ずん子プロジェクトのキャラクターイラストを用いて学習したモデルです。
以下の5名のキャラクターのキーワードを使えます。
パイプラインの作成手順は、次のとおりです。DiffusionPipelineを使います。
from diffusers import DiffusionPipeline
# パイプラインの準備
pipe = DiffusionPipeline.from_pretrained(
"shirayu/sd-tohoku-v1"
).to("cuda")
この記事が気に入ったらサポートをしてみませんか?