「リアルで綺麗な画像を生成したい」
「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の動作確認を説明しました。