見出し画像

diffusersで使える Stable Diffusionモデル一覧

diffusersで使える Stable Diffusionモデルが増えてきたので、まとめてみました。

1. diffusersで使える Stable Diffusionモデル一覧

「diffusers」は、様々なDiffusionモデルを共通インターフェイスで利用するためのパッケージです。Stable Diffusionモデルも多数利用できます。

diffusersで使える Stable Diffusionモデル一覧は、以下のサイトで確認できます。


Stable Diffusionモデルの使い方の基本は、以下で紹介しています。基本的にはパイプラインのモデルIDを変更するのみで、切り替えることができます。

2. Stable Diffusion 1.4

原点となる「Stable Diffusion」モデルの最新版です。

パイプラインの作成方法は、次のとおりです。

from diffusers import StableDiffusionPipeline

# StableDiffusionパイプラインの準備
pipe = StableDiffusionPipeline.from_pretrained(
    "CompVis/stable-diffusion-v1-4", 
    use_auth_token=True
).to("cuda")

「cute cat ear maid」の推論結果は、次のとおりです。

3. Waifu Diffusion

2次元絵が得意で有名な「Waifu Diffusion」モデルです。

パイプラインの作成方法は、次のとおりです。モデルIDだけでも切り替わりますが、推奨パラメータを設定した方がクォリティが上がります。

import torch
from diffusers import StableDiffusionPipeline, DDIMScheduler

# StableDiffusionパイプラインの準備
pipe = StableDiffusionPipeline.from_pretrained(
    "hakurei/waifu-diffusion",
    torch_dtype=torch.float16,
    revision="fp16",
    scheduler=DDIMScheduler(
        beta_start=0.00085,
        beta_end=0.012,
        beta_schedule="scaled_linear",
        clip_sample=False,
        set_alpha_to_one=False,
    ),
    use_auth_token=True
).to("cuda")

「cute cat ear maid」の推論結果は、次のとおりです。

4. Trinart Diffusion v2

やわらかいタッチの2次元絵が得意な「Trinart Diffusion」モデルです。

パイプラインの作成方法は、次のとおりです。revision指定 (diffusers-60k / diffusers-95k / diffusers-115k) が必要です。

from diffusers import StableDiffusionPipeline

# StableDiffusionパイプラインの準備
pipe = StableDiffusionPipeline.from_pretrained(
    "naclbit/trinart_stable_diffusion_v2", 
    revision="diffusers-60k",
    use_auth_token=True
).to("cuda")

「cute cat ear maid」の推論結果は、次のとおりです。

5. Trinart Waifu Diffusion 50-50

「Waifu Diffusion」と「Trinart Diffusion」 (trinart2_step115000) を融合したモデルです。

パイプラインの作成方法は、次のとおりです。

from diffusers import StableDiffusionPipeline

# StableDiffusionパイプラインの準備
pipe = StableDiffusionPipeline.from_pretrained(
    "doohickey/trinart-waifu-diffusion-50-50", 
    use_auth_token=True
).to("cuda")

「cute cat ear maid」の推論結果は、次のとおりです。

6. Japanese Stable Diffusion

日本語から画像生成できるモデルです。

日本語を使う分、使い方が他のモデルとは異なります。

(1) 「Japanese Stable Diffusion」のサイトでライセンス合意。
(2) 新規Colabノートブックを開き、GPUを有効化。
(3) パッケージのインストール。

# パッケージのインストール
!pip install git+https://github.com/rinnakk/japanese-stable-diffusion

(4) HuggingFaceにログイン。

# HuggingFaceにログイン
from huggingface_hub import notebook_login
notebook_login()

(5) パイプラインの準備。

import torch
from torch import autocast
from diffusers import LMSDiscreteScheduler
from japanese_stable_diffusion import JapaneseStableDiffusionPipeline

pipe = JapaneseStableDiffusionPipeline.from_pretrained(
    "rinna/japanese-stable-diffusion", 
    torch_dtype=torch.float16, 
    scheduler=LMSDiscreteScheduler(
        beta_start=0.00085, 
        beta_end=0.012, 
        beta_schedule="scaled_linear",
        num_train_timesteps=1000
    ), 
    use_auth_token=True
).to("cuda")

(6) 推論の実行。

from torch import autocast

# テキストからの画像生成
prompt = "かわいい猫耳メイド"
with autocast("cuda"):
    images = pipe(prompt, guidance_scale=7.5).images
images[0].save("output.png")

「かわいい猫耳メイド」の推論結果は、次のとおりです。

7. SD Pokémon Diffusers

「Stable Diffusion」モデルにポケモンでファインチューニングしたモデルです。

パイプラインの作成方法は、次のとおりです。

from diffusers import StableDiffusionPipeline

# StableDiffusionパイプラインの準備
pipe = StableDiffusionPipeline.from_pretrained(
    "lambdalabs/sd-pokemon-diffusers", 
    use_auth_token=True
).to("cuda")

「cute cat ear maid」の推論結果は、次のとおりです。

8. Stable Diffusion Dreambooth Concepts Library

「Stable Diffusion Dreambooth Concepts Library」は、「DreamBooth」のファインチューニングでオブジェクト (object)や画風 (style)を追加学習させたモデルのコレクションです。

今回は以下のモデルで試してみます。

・モデルID : sd-dreambooth-library/a-hat-in-time-girl
・instance_prompt : a render of sks

パイプラインの作成方法は、次のとおりです。

import torch
from diffusers import StableDiffusionPipeline

# StableDiffusionパイプラインの準備
pipe = StableDiffusionPipeline.from_pretrained(
    "sd-dreambooth-library/a-hat-in-time-girl", 
    torch_dtype=torch.float16,
    use_auth_token=True
).to("cuda")

「cute cat ear sks」の推論結果は、次のとおりです。

【おまけ】 use_auth_token

StableDiffusionPipeline.from_pretrained() の use_auth_token=YOUR_TOKEN で、HuggingFaceのサイトで取得できるトークンを指定しますが、以下を実行してHuggingFaceにログインした後であれば、use_auth_token=YES で利用できるようになります。

# HuggingFaceにログイン
from huggingface_hub import notebook_login
notebook_login()



この記事が気に入ったらサポートをしてみませんか?