【Stable Diffusion】FaeTasticの利用方法

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

「半リアルなキャラクターの画像を高画質で生成したい」
「美しいコントラストで風景を綺麗に描きたい」

このような場合には、FaeTasticがオススメです。
この記事では、FaeTasticについて解説しています。

本記事の内容

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

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

FaeTasticとは?

まずは、FaeTasticの公式ページでサンプル画像を見てください。

FaeTastic | Stable Diffusion Checkpoint | Civitai
https://civitai.com/models/14065/faetastic

美しいコントラストを持つ画像が確認できます。
美しい風景画や半リアルなキャラクターの出力を得意としています。

また、アニメスタイルに関しても出力できます。
つまりは、基本的には何でも描けるということです。

このような特徴を持つFaeTasticは、Stable Diffusion 1.5をベースにした結合モデルです。
結合する際に用いたのは、以下のモデルであると記載されています。

  • Noise Offset for True Darkness
  • ReV Animated
  • The Ally’s Mix III: Revolutions
  • 2DN
  • Deliberate

全部で22回結合したようです。
そして、その比率は覚えていないとのこと。

個人的には、上記モデルの中でDeliberateだけを知っていました。

それ以外のモデルは、Deliberateほど有名ではありません。
その意味で、FaeTasticはマニアックなモデルで結合を繰り返したと言えます。

また、ノイズオフセットにも対応しているようです。
おそらく、「Noise Offset for True Darkness」を含んでいるからでしょう。

ノイズオフセットについては、次の記事で説明しています。

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

FaeTasticの利用方法

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

ダウンロードするファイルは、各自の環境に合ったモノを選びましょう。
ただし、VAEのダウンロードは忘れずに。

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

  • Stable Diffusion web UI(AUTOMATIC1111版)
  • Diffusers

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

Stable Diffusion web UI(AUTOMATIC1111版)

web UIのインストールは、実は非常に簡単です。
その実体は、PythonのWebアプリに過ぎません。

web UIの場合は、VAEのファイル名を変更する必要があります。
今回は、次の2ファイルをダウンロードしています。

  • faetastic_.safetensors
  • kl-f8-anime2.ckpt

この場合、次のようにVAEのファイル名を変更します。

kl-f8-anime2.ckpt
↓
faetastic_.vae.pt

そして、これらのファイルを指定のディレクトリ(models/Stable-diffusion)に設置します。

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

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

Civitai上の各画像には、次のアイコンが表示されていることがあります。

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

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

Diffusers

Diffusersの場合は、若干面倒です。
まずは、Stable Diffusionを動かせることが前提になります。

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

では、その面倒な処理を進めていきましょう。
ダウンロードしたのは、次のファイルになります。

  • faetastic_.safetensors
  • kl-f8-anime2.ckpt

これらのファイルは、そのままではDiffusersからは読み込めません。
そのため、Diffusersで利用できるように変換処理を行います。

モデルの変換

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

今回は、次のコマンドで変換を行いました。

python convert_diffusers20_original_sd.py ..\..\ckpt\faetastic_.safetensors ..\..\model\faetastic_ --v1 --reference_model runwayml/stable-diffusion-v1-5

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

VAEの変換

ckptファイルのままだと、DiffusersではVAEとして利用できません。
そのため、DiffusersでVAEとして利用できるようにckptファイルを変換します。

その方法は、次の記事で解説しています。
記事通りにやれば、問題なく変換できます。

上記記事を参考にして、次のコマンドで変換しています。
パスについては、各自の環境に合わせてください。

python convert_pt_to_bin.py  --checkpoint_path ..\..\ckpt\kl-f8-anime2.ckpt --dump_path ..\..\model\faetastic__vae

上記コマンドを実行すると、次のような形に変換できます。

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

from diffusers import StableDiffusionPipeline, DDIMScheduler
from diffusers.models import AutoencoderKL

model_id = "./model/faetastic_"
vae = AutoencoderKL.from_pretrained("./model/faetastic__vae")

pipe = StableDiffusionPipeline.from_pretrained(model_id, vae=vae, custom_pipeline="lpw_stable_diffusion")
pipe.scheduler = DDIMScheduler.from_config(pipe.scheduler.config)
pipe = pipe.to("cuda")

prompt = "Style-NebMagic, Portrait of a round fluffy cute baby owl with a scarf made of Style-SylvaMagic in the snow, by Ismail Inceoglu, Gazelli, james jean, Anton Fadeev and Yoshitaka Amano, insanely detailed, 8k resolution, digital art, trending on artstation, Vibrant Colours, chibi style, a masterpiece, adorable friendly lovely"
negative_prompt = "bad anatomy, low-res, (watermarks:1.2), username, paintings, sketches, (worst quality:2), (low quality:2), (normal quality:2), monochrome, grayscale, (easynegative:1.1), [ng_deepnegative_v1_75t] bad anatomy, low-res, poorly drawn face, disfigured hands, poorly drawn eyebrows, bad body perspective, animal tail, anime, nipples, pussy, wrong anatomy, poorly drawn legs, wrong perspective legs, poorly drawn hands, (bad-hands-5:1.8), wrong hand, yellow light, canvas frame, cartoon, 3d, ((disfigured)), ((bad art)), ((deformed)),((extra limbs)),((close up)),((b&w)), wierd colors, blurry, (((duplicate))), ((morbid)), ((mutilated)), [out of frame], signature, watermarks,"
image = pipe(
    prompt,
    num_inference_steps=30,
    guidance_scale=10,
    width=512,
    height=512,
    max_embeddings_multiples=2,
    negative_prompt=negative_prompt
).images[0]

image.save("test.png")

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

FaeTasticの動作確認

FaeTasticの動作確認は、実は面倒です。
例えば、次のようなサンプル画像を参考にするとします。

この画像のプロンプトを参考にして、生成したのが次の画像です。

サイズもSEEDも異なるので、そもそも一致することは期待していません。
しかし、あまりにテイストが異なります。

おそらく、公式ページのサンプルではほぼすべて同じことが起こりうるでしょう。
この原因は、LoRAやEmbeddingの有無にあります。

サンプル画像生成の際に利用しているのは、以下になるようです。

  • Nebula Magic
  • Sylva Magic
  • Rust Magic
  • EasyNegative
  • Deep Negative V1.x
  • Dollie Nobody
  • Bridal Style
  • Bad Prompt
  • Bad Artist
  • Style Paint (*)
  • FaeMagic3 (*)
  • Empire Style
  • WLOP Style LoRA(LoRAはこれだけ)

各LoRAやEmbeddingのリンク先は、公式ページで確認してください。
さらに、(*)に関してはモデル開発者の自作らしいです。

そして、それらはまだ未公開になります。
つまり、現時点ではサンプル画像すべてを再現することは不可能ということです。

ただし、ある程度までテイストを近づけることはできるでしょう。
オリジナルEmbedding以外は、すべて手に入るので集めてみることをオススメします。
FaeTastic以外のモデルにおいても、LoRAやEmbeddingは有効ですからね。

Embeddingを有効にする方法ついては、次の記事で説明しています。

LoRAについては、次の記事が参考になります。

こうなってくると、もうStable Diffusion web UIの利用が前提になります。
Diffusersでは、ここまでは対応できないかもしれません。

フクロウの画像に話を戻しましょう。

EmbeddingとLoRAは、可能な限りインストールしたつもりです。
その状態で作成した画像は、以下となります。

なんかフクロウが服を着ていますが、テイストは同じになったのでOKとします。
なお、この画像だけはほぼ再現できました。

FaeTasticでは、風景と半リアルなキャラクターが得意ということでした。
やはり、これは主張するだけあって質が高いです。

あと、FaeTasticのアニメ画像についても質は高いように感じます。

これらは、サンプル画像のプロンプトを適当に変更しただけです。
もっとプロンプトを工夫すれば、幅広く出力できるようなポテンシャルを感じます。

以上、FaeTasticの動作確認について説明しました。

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