【Stable Diffusion 2.1】リアル画像ならRealism Engine

【Stable Diffusion 2.1】リアル画像ならRealism Engine 機械学習

「リアルで綺麗な画像を生成したい」
「Stable Diffusion 2.1をベースにしたモデルを探している」

このような場合には、この記事の内容が参考になります。
この記事では、Realism Engineについて解説しています。

本記事の内容

  • Realism Engineとは?
  • Realism Engineの利用方法
  • Realism Engineの動作確認

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

Realism Engineとは?

Realism Engineとは、Stable Diffusion 2.1(768)をファインチューニングしたモデルです。
学習には、大量なパブリックドメインの画像を用いたということです。

また、以前は「_optimal」というコードネームで開発されていました。
リアルな画像の生成が、Realism Engineの特徴です。

デモ画像として、次の画像が公開されています。

Stable Diffusion 2.1(768)は、デフォルトでも高画質な画像を生成します。
さらにそこに学習を加えて、このような品質を実現しているのでしょう。

でも、日本人の描画はダメみたいですね。

明らかに学習不足と思われます。
日本人の画像を生成するなら、ChilloutMixをオススメします。

ただ、人物以外の画像はRealism Engineがかなり使えそうです。
モデルは一つに固執するのではなく、使い分けることがベターだと思います。

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

Realism Engineの利用方法

まずは、公式ページからモデルをダウンロードします。

Realism Engine | Stable Diffusion Checkpoint | Civitai
https://civitai.com/models/17277/realism-engine

とりあえず、両方ともをダウンロードしましょう。

  • realismEngine_v10.safetensors
  • realismEngine_v10.yaml

利用方法については、それぞれの環境で異なります。

  • Stable Diffusion web UI(AUTOMATIC1111版)
  • Diffusers

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

Stable Diffusion web UI(AUTOMATIC1111版)

web UIのインストールを簡単にできる方法を次の記事で説明しています。
LinuxでもWindowsでも、macOSでも何でもOKです。

web UIの場合は、何も工夫はいりません。
ダウンロードした2ファイルを指定のディレクトリ(models/Stable-diffusion)に設置します。

web UIの起動後、以下のようにcheckpointを選択できるようになっています。

あとは、プロンプトを入力して画像生成を行うだけです。
この際、Civitai上のサンプル画像やユーザー投稿などを参考にできます。

このアイコンをクリックすると、次のような画面が表示されます。

この情報は、web UI上のPNG Infoで確認できる情報と同じです。

Diffusers

Diffusersの場合は、少し工夫が必要です。
まずは、Stable Diffusionを動かせることが前提になります。

上記記事に従えば、自ずとDiffusersをインストールすることになります。

Diffusersの場合は、そのままではダウンロードしたモデルを読み込めません。
そのため、Diffusersで利用できるように変換処理を行います。

Safetensors形式ファイルの変換処理は、次の記事で解説しています。

python convert_diffusers20_original_sd.py ..\..\ckpt\realismEngine_v10.safetensors ..\..\model\realismEngine_v10 --v2 --reference_model stabilityai/stable-diffusion-2

変換に成功すると、次のようなディレクトリ・ファイルが作成されます。

ここまで準備できたら、あとは次のコードで画像生成が可能です。

from diffusers import StableDiffusionPipeline, EulerAncestralDiscreteScheduler

model_id = "./model/realismEngine_v10"

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

prompt = "Ferret in Dry deciduous forest light atmosphere, Soft lighting"
negative_prompt = "3d render, cgi, painting, drawing, cartoon, anime"

image = pipe(
    prompt,
    num_inference_steps=30,
    guidance_scale=7,
    width=768,
    height=768,
    negative_prompt=negative_prompt
).images[0]

image.save("test.png")

上記コードを実行すると、次のような画像が生成されます。

以上、Realism Engineの利用方法を説明しました。
次は、Realism Engineの動作確認を説明します。

Realism Engineの動作確認

Realism Engineの動作確認は、web UIの利用を前提で行います。
web UIであれば、以下のembeddingを簡単に利用できます。

  • nfixer
  • nrealfixer

これらのembeddingは、Illuminati Diffusion v1.1用に作られたembeddingです。
利用方法は、次の記事で説明しています。

公式ページにおいて、embeddingの利用を推奨しています。
ただし、ポートレートは除くということです。

準備ができたら、次のプロンプトを試してみましょう。

ネガティブプロンプトに「nfixer」と「nrealfixer」を用います。
このプロンプトを実行すると、次のような渋い画像が生成されます。

コントラストが綺麗に出る感じですね。
次は、フェレットの画像を生成します。

やはり、embeddingを利用するとよりリアルに表現してくれますね。

以上、Realism Engineの動作確認を説明しました。

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