【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の利用方法

追記 2022年10月9日
この記事はWaifu Diffusion 1.2についての内容です。
Waifu Diffusion 1.3の導入方法については、次の記事をご覧ください。

利用方法は、非常に簡単です。
ただし、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をコピーしました