【Stable Diffusion】MeinaMixの利用方法

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

「高画質なアニメ画像を生成したい」
「まだあまり知られていないモデルを試してみたい」

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

本記事の内容

  • MeinaMixとは?
  • MeinaMixの利用方法

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

MeinaMixとは?

Stable Diffusion 1.5ベースの結合モデルです。
モデルの開発者は、少ないプロンプトでよいアートを目指すことを目標にしています。

現時点での最新バージョンは、V8となります。
公開して1ヶ月足らずで、この更新頻度はスゴイです。

それだけモデル開発者の改善意欲が高いと言えます。
実際、バージョンアップ毎にその品質もUPしています。

サンプル画像を参考にするだけで、次のような画像を簡単に生成できます。

とにかく、モデル開発者の意欲が高いです。
これが続く限り、MeinaMixtは進化し続けるのでしょう。

なお、モデル開発者はDiscordで質問にも気軽に答えてくれるようです。
https://discord.gg/XC9nGZNDUd

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

MeinaMixの利用方法

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

MeinaMix | Stable Diffusion Checkpoint | Civitai
https://civitai.com/models/7240/meinamix

ボタンをクリックすると、「meinamix_meinaV8.safetensors」をダウンロードできます。
このファイルには、VAEが含まれています。

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

  • Stable Diffusion web UI(AUTOMATIC1111版)
  • Diffusers

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

Stable Diffusion web UI(AUTOMATIC1111版)

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

web UIの場合は、何も工夫はいりません。
ダウンロードしたファイルを指定のディレクトリ(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\meinamix_meinaV8.safetensors ..\..\model\meinamix_meinaV8 --v1 --reference_model runwayml/stable-diffusion-v1-5

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

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

from diffusers import StableDiffusionPipeline, EulerAncestralDiscreteScheduler

model_id = "./model/meinamix_meinaV8"

pipe = StableDiffusionPipeline.from_pretrained(model_id, custom_pipeline="lpw_stable_diffusion")
pipe.scheduler = EulerAncestralDiscreteScheduler.from_config(pipe.scheduler.config)
pipe = pipe.to("cuda")
# pipe.enable_attention_slicing()

prompt = "(masterpiece, best quality, ultra-detailed, best shadow), (detailed background,dark fantasy), (beautiful detailed face), high contrast, (best illumination, an extremely delicate and beautiful), ((cinematic light)), colorful, hyper detail, dramatic light, intricate details, (1 girl, solo,black hair, sharp face,low twintails,red eyes, hair between eyes,dynamic angle), blood splatter, swirling black light around the character, depth of field,black light particles,(broken glass),magic circle,"

negative_prompt = "(worst quality, low quality:1.4), monochrome, zombie,"

image = pipe(
    prompt,
    num_inference_steps=25,
    guidance_scale=7,
    width=512,
    height=512,
    max_embeddings_multiples=2,
    negative_prompt=negative_prompt
).images[0]

image.save("test.png")

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

なお、コード上では長いプロンプトに対応する処理が含まれています。
それらの方法については、次の記事で説明しています。

以上、MeinaMixの利用方法を説明しました。

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