【Stable Diffusion】Waifu Diffusionを使う方法

【Stable Diffusion】Waifu Diffusionを使う方法 機械学習

「Stable Diffusionでキャラクター画像をもっと効率良く作りたい」
「日本人好みのイラストをStable Diffusionで自動生成したい」

このような場合には、Waifu Diffusionがオススメです。
この記事では、二次元イラストに特化したWaifu Diffusionを使う方法を解説しています。

本記事の内容

  • Waifu Diffusionとは?
  • Waifu Diffusionの効果
  • Waifu Diffusionの利用方法

それでは、上記に沿って解説していきます。

Waifu Diffusionとは?

Waifu Diffusionとは、Stable Diffusionをファインチューニングしたモデルのことを言います。
Stable Diffusionは、汎用的なイラストを生成することが多いです。

そんなStable Diffusionに、特定のイラストを生成させたい場合もあるでしょう。
そのようなときに、ファインチューニング(転移学習)が行われます。

今回紹介するWaifu Diffusionは、二次元イラストをもとにファインチューニングされたモデルです。
そのデータ元となっているのは、Danbooruに掲載されているイラストになります。

Waifu Diffusionには、490万枚以上の画像が学習で利用されたろいうことです。

以上、Waifu Diffusionについて説明しました。
次は、Waifu Diffusionの効果を説明します。

Waifu Diffusionの効果

Stable Diffusionでは、CompVis/stable-diffusion-v1-4というモデルを利用しているはずです。
これが、デフォルトの学習済みモデルになります。

そして、デフォルトで生成したのが左の画像です。
右が、Waifu Diffusionで生成した画像になります。

画像を生成する際に用いた呪文は、以下。

cute girl with pink hair | | very very anime!!!, fine - face, symmetry face, fine details. anime. realistic shaded lighting poster by sakimichan, kidmo, trending on pixiv, magali villeneuve, artgerm, jeremy lipkin and michael garmash and rob rey

上記の呪文は、次のページのプロンプトを参考にしています。
https://lexica.art/?prompt=3753e55c-fdb0-4a11-89e3-68965c5eacc2

デフォルトのモデルで生成した画像でも、本来は驚きのレベルと言えます。
しかし、Waifu Diffusionで生成した画像はさらに上のレベルとなっています。

もちろん、好き嫌いはあるでしょうけどね。
また、それぞれの画像をさらにレベルアップしたのが以下となります。

レベルアップには、Stable Diffusionが直接関係しているわけではありません。
GFPGANを用いて高画質化を実現しています。

Stable DiffusionとGFPGANは、セットで利用することをオススメします。
GFPGANを使うと、確実に画像の質がUPすると言えます。

以上、Waifu Diffusionの効果を説明しました。
次は、Waifu Diffusionの利用方法を説明します。

Waifu Diffusionの利用方法

利用方法は、非常に簡単です。
ただし、Stable Diffusionがすでに利用できることが大前提になります。

単純に利用できるだけではなく、上記の記事の内容に従っていることが必要です。
具体的には、DiffusersをインストールしてStable Diffusionを動かしていないといけません。

前提を満たしていれば、モデルIDの値を変更するだけです。

MODEL_ID = "CompVis/stable-diffusion-v1-4"

MODEL_ID = "hakurei/waifu-diffusion"

Waifu Diffusionの公式では、次のコードが公開されています。

import torch 
from torch import autocast 
from diffusers import StableDiffusionPipeline, DDIMScheduler

model_id = "hakurei/waifu-diffusion" 
device = "cuda"

pipe = StableDiffusionPipeline.from_pretrained( 
    model_id, 
    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, 
    ), 
) 
pipe = pipe.to(device)

prompt = "touhou hakurei_reimu 1girl solo portrait" 
with autocast("cuda"): 
    image = pipe(prompt, guidance_scale=7.5)["sample"][0]   
     
image.save("reimu_hakurei.png")

以上、Waifu Diffusionの利用方法を説明しました。

タイトルとURLをコピーしました