【Stable Diffusion】Waifu Diffusion 1.5の利用方法

【Stable Diffusion】Waifu Diffusion 1.5の利用方法 機械学習

「Stable Diffusion 2.1(768)をベースにしたモデルを探している」
「高画質なイラストを画像生成AIで描きたい」

このような場合には、この記事の内容が参考になります。
この記事では、Waifu Diffusion 1.5を利用する方法を解説しています。

本記事の内容

  • Waifu Diffusion 1.5とは?
  • Waifu Diffusion 1.5の利用方法
  • Waifu Diffusion 1.5の動作検証

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

Waifu Diffusion 1.5とは?

「Waifu Diffusionとは?」という方は、次の記事をご覧ください。

Waifu Diffusion 1.5は、Stable Diffusion 2.1(768)をベースにしています。
Stable Diffusion 2.1をベースにしたモデルは、まだまだ少ないです。

なお、Waifu Diffusion 1.4はStable Diffusion 2.1 Baseを元に開発されていました。
まずは、この違いがWaifu Diffusion 1.5の大きな特徴と言えます。

そして、その学習の際には実写とアニメ画像を用いているようです。
実写には、Instagramやグラビア・コスプレの画像が含まれていると記載されています。
ターゲットは、主に日本人だということです。

Waifu Diffusion 1.5の詳細については、次のページで説明されています。

WD 1.5 ベータ版 – リリースノート
https://cafeai.notion.site/WD-1-5-232cfa9443fc4661b469e7d1df8b7dd8

上記ページで何度も強調されていますが、まだ「ベータ版」です。
今後、改善を重ねていくことも強調されています。

その意味では、長い目でWaifu Diffusion 1.5を見守りましょう。
また、補助エンベッディング(embeddings)が新たに公開されています。

補助エンベッディングは、アニメ風画像の生成品質を向上させる効果があります。
その効果は、次の比較画像を見れば一目瞭然です。

左の画像は、普通に作成した画像です。
普通と言っても、VAEは当然のごとく利用しています。
右の画像は、さらに補助エンベッディングを利用して生成した画像となります。

プロンプトの方でも、変更点があります。
年代を表現するタグが追加されています。

日付範囲タグ和訳
1995年~2010年oldest最も古い
2010年~2015年old古い
2015年~2020年new新しい
2020年以降newest最新

これ以外にも、新たなタグを利用できるようになっています。
詳細は、上記で示したリリースノートで確認してください。

以上、Waifu Diffusion 1.5について説明しました。
次は、Waifu Diffusion 1.5の利用方法を説明します。

Waifu Diffusion 1.5の利用方法

Waifu Diffusion 1.5は、主に以下で動かすことになるでしょう。
ほとんどは、web UIでしょうけどね。

  • Stable Diffusion web UI(AUTOMATIC1111版)
  • Diffusers

それぞれの場合について、以下で説明します。

Stable Diffusion web UI(AUTOMATIC1111版)

web UIのインストール方法を次の記事で説明しています。
OS依存のPythonを利用しない方法のため、安心してインストールできます。

この方法なら、アップデートでぶっ壊れようが問題ありません。
再度、新たにインストールすれば済みます。
また、複数バージョンのweb UIを管理することも簡単にできます。

まずは、モデルのダウンロードから行います。
モデルのダウンロードは、公式ページから可能です。
https://huggingface.co/waifu-diffusion/wd-1-5-beta/tree/main/checkpoints

上記ページから、必要なファイルをダウンロードします。

各自の環境に合ったファイルをダウンロードします。
今回ダウンロードするのは、以下。

  • wd15-beta1-fp32.safetensors
  • wd15-beta1-fp32.yaml

また、VAEは以下からダウンロードします。
https://huggingface.co/hakurei/waifu-diffusion-v1-4/blob/main/vae/kl-f8-anime2.ckpt

ダウンロードしたファイルの名称を変更しましょう。

kl-f8-anime2.ckpt
↓
wd15-beta1-fp32.vae.pt

3つのファイル名を次のように統一します。
そして、これらのファイルをmodels/Stable-diffusion以下に保存。

あとは、web UIを起動すれば次のようにモデルを選択できるようになっています。

Diffusers

Diffusersの場合は、スムーズに行けば非常に簡単です。
そのためには、Stable Diffusionを動かせることが前提となります。

上記記事に従えば、自ずとDiffusersをインストールしています。

あとは、次のコマンドを実行するだけです。

from diffusers import StableDiffusionPipeline, HeunDiscreteScheduler

model_id = "waifu-diffusion/wd-1-5-beta"

pipe = StableDiffusionPipeline.from_pretrained(model_id)
pipe.scheduler = HeunDiscreteScheduler.from_config(pipe.scheduler.config)
pipe = pipe.to("cuda")

prompt = "1girl, aqua eyes, baseball cap, blonde hair, closed mouth, earrings, green background, hat, hoop earrings, jewelry, looking at viewer, shirt, short hair, simple background, solo, upper body, yellow shirt,(waifu, anime, exceptional, best aesthetic, new, newest, best quality, masterpiece, extremely detailed:1.2)"
negative_prompt = "((bad hands)), ((mutated hands and fingers)), ((bad feet)), lowres, text, blurry, (ugly), logo, cropped, worst quality, jpeg, ((jpeg artifacts)), deleted, old, oldest, ((censored)), ((bad aesthetic)), (mosaic censoring, bar censor, blur censor), twitter username, watermark, low quality"

image = pipe(
    prompt,
    num_inference_steps=25,
    guidance_scale=7.5,
    negative_prompt=negative_prompt
).images[0]

image.save("test.png")

通常であれば、初回時にモデルを自動的にダウンロードしてくれます。
(※ダウンロードが中途半端で終わるケースがあります→対応策は後述します)

上手くいくと、次のような画像が生成されます。
768 x 768のサイズがデフォルトです。

エラーが出る場合は、モデルのダウンロードに失敗しています。
以下のディレクトリにあるsafetensors形式のファイルをダウンロードできていないのです。

  • safety_checker
  • text_encoder
  • unet
  • vae

例えば、safety_checkerには次のファイルが保存されています。

この「model.safetensors」を、次の関数でダウンロードできていないのです。

pipe = StableDiffusionPipeline.from_pretrained(model_id)

最新版(0.12.1)のdiffusersですが、このような結果になります。
おそらく、バージョンUPにより解決するとは思いますけどね。
もしかしたら、別の関数を使えばダウンロードできるのかもしれません。

とにかく、現状は各safetensors形式のファイルを手動でダウンロードしておきます。
ダウンロードして、各ディレクトリに配置すれば解決できます。

Windowsであれば、以下の場所にキャッシュは存在しています。

C:\Users\ユーザー名\.cache\huggingface\diffusers\models--waifu-diffusion--wd-1-5-beta

以上、Waifu Diffusion 1.5の利用方法を説明しました。
次は、Waifu Diffusion 1.5の動作検証を説明します。

Waifu Diffusion 1.5の動作検証

Waifu Diffusion 1.5の動作検証を行います。
まずは、過去のバージョンと同じように適当にプロンプトを入力してみてください。

そうすると、しばしば実写の画像が生成されるはずです。
それも、結構な頻度で生成されます。

これは、実写を学習対象にしているからなのでしょう。
一応、それはプロンプトで制御もできるようです。

とにかく、Waifu Diffusion 1.5用のプロンプトについては慣れていくしかないようです。
その際に、次のページが参考となるでしょう。

WD 1.5 ベータ版 – 例
https://cafeai.notion.site/WD-1-5-d45438dd215644659bbe31ffcac8bc2e

今回は、補助エンベッディングの動作検証を行います。
ただし、ここではweb UIのみをその対象とします。

Stable Diffusion WebUIをお使いの方は、これらのファイルをembeddingsフォルダにダウンロードしてご利用ください。

公式のリリースノートでは、上記のように記載されています。
リリースノート上のページから、次の2ファイルをダウンロードします。

ダウンロードしたファイルを指示通りに配置します。

これで、web UIを起動すれば補助エンベッディングが利用できるようになっています。
ただし、そのままでは補助エンベッディングは効果を発揮しません。

効果を発揮するには、プロンプトにそのためのキーワードを含める必要があります。
そのことを確認するために、次のケースで画像を生成してみましょう。

  • 補助エンベッディングなし
  • 補助エンベッディングあり

プロンプト以外のSEEDなどの条件は全く同じとします。

補助エンベッディングなし

プロンプト

1girl, green hair, sweater, looking at viewer, upper body, beanie, outdoors, watercolor, night, turtleneck,(waifu, anime, exceptional, best aesthetic, new, newest, best quality, masterpiece, extremely detailed:1.2)

ネガティブプロンプト

((bad hands)), ((mutated hands and fingers)), ((bad feet)), lowres, text, blurry, (ugly), logo, cropped, worst quality, jpeg, ((jpeg artifacts)), deleted, old, oldest, ((censored)), ((bad aesthetic)), (mosaic censoring, bar censor, blur censor), twitter username, watermark, low quality

補助エンベッディングあり

プロンプト

1girl, green hair, sweater, looking at viewer, upper body, beanie, outdoors, watercolor, night, turtleneck,wdgoodprompt, (symmetric), (exceptional, best aesthetic, new, newest, best quality, masterpiece, extremely detailed, anime:1.2)

ネガティブプロンプト

lowres, ((bad anatomy)), ((bad hands)), text, missing finger, extra digits, fewer digits, blurry, ((mutated hands and fingers)), (poorly drawn face), ((mutation)), ((deformed face)), (ugly), ((bad proportions)), ((extra limbs)), extra face, (double head), (extra head), ((extra feet)), monster, logo, cropped, worst quality, jpeg, humpbacked, long body, long neck, ((jpeg artifacts)), deleted, old, oldest, ((censored)), ((bad aesthetic)), (mosaic censoring, bar censor, blur censor), NSFW, wdbadprompt

補助エンベッディングが反映された場合、生成情報の項目に以下のように表示されます。

以上、Waifu Diffusion 1.5の動作検証を説明しました。

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