見出し画像

240609_StableDiffusion_使い方②Lora、Embeddingの使い方

概要

今回は、StableDiffusion(SD)の使い方②回目です。前回①ではVast.aiでStableDiffusionを使うための環境構築を行いました。これで、SDを使って画像を生成する準備ができました。通常の画像生成であればここまででOKです。しかし、自分の希望の画像を生成するとなるともう少し凝った使い方が必要になります。
①の時の再掲になりますが、料理に例えたLora、Embedding、ControlNetの比較表を以下に示します。

今回は、Lora(調味料)、Embedding(臭み消し)を行っていきます。これができるようになると、自分の希望の画像を生成しやすくなると思います。それでは、順をおって説明していきます。

目標画像

今回自分の希望の画像を生成することを目標にしています。しかし、最初は真似る事から始めた方が効率よく学べると考えました。そこで、下記サイトの生成画像を参考にしていきます。まずは、下記画像を真似して生成していきたいと思います。

この画像では、以下LoraとEmbeddingを使っています。こんなに沢山のLoraを使っているとは驚きです。(調味料沢山使った深みのある料理ですね)

上記で、CHEKPOINTとありますが、詳しく説明します。
CHEKPOINTは、画像を生成する基本となるモデルです。CHEKPOINTには画像生成の基礎となる知識やスタイルが詰まっています。料理に例えると、CHEKPOINTはレシピになります。

CHECKPOINTには様々な種類があり、それぞれ得意な画風や表現が異なります。風景写真が得意なもの、アニメ風のイラストが得意なものなど、目的に合わせて選びます。
今回は、ZavyChromaXLというCHEKPOINTを使っています。詳細は以下となります。

上記CHEKPOINTでは、SDXLというモデルを使っています。SDXLは、SD1.5(旧バージョン)の新しいバージョンです。SDXLは、SD1.5と比べより高品質な画像を生成できるようになっています。
SDXLの基本解像度は 1024 x 1024 です。なので画像を生成するときは 1024 x 1024 を指定する点に注意してください。ちなみに、旧バージョンのSD1.5 の基本解像度は 512x512 です 。
また、この画像ではControlNetを使っていないため、ControlNetの使い方は使い方③で説明します。

CHEKPOINT、Lora、Embeddingモデルの保存

それでは、まずCHEKPOINT、Lora、Embeddingモデルを使えるようにしていきます。現状として、環境構築してサーバーでSDを使えるようになっている状態を想定して話を進めます。

SDでCHEKPOINT、Lora、Embeddingモデルを使えるようにするには、モデルをダウロードして所定のフォルダに保存する必要があります。
Loraモデルは以下Loraフォルダ配下に保存します。
CHEKPOINTモデルは以下Stable-diffusionフォルダ配下に保存します。
Embeddingモデルは以下embeddingsフォルダ配下に保存します。
ファイルの拡張子は、.safetensorsです。

#Lora
/home/user1/stable-diffusion-webui/models/Lora/***.safetensors

#CHEKPOINT
/home/user1/stable-diffusion-webui/models/Stable-diffusion/***.safetensors

#Embedding
/home/user1/stable-diffusion-webui/embeddings/***.safetensors

次に、ダウンロードするファイルのURLを取得します。例えば、Midjourney mimicというLoraモデルをダウンロードする場合、ダウンロードサイトに行き、Downloaded部で右クリックして、リンクアドレスをコピーします。

そうすると以下URLが取得できます。

https://civitai.com/models/251417/midjourney-mimic?modelVersionId=283697

保存先フォルダとダウンロードURLを使って、サーバーにLoraモデルを保存します。ダウンロードするコードをは以下となります。

wget https://civitai.com/api/download/models/283697 -O /home/user1/stable-diffusion-webui/models/Lora/midjourney.safetensors

上記ではファイル名を、midjourney.safetensorsとしています。このmidjourney部分は任意で名前を変えられます。この名前を使って、SDで画像を生成する(プロンプトで使用する)ため、わかりやすい名前にしておくことをお勧めします。

Civit.aiからLoraファイルをダウンロードしますが、ファイルによっては上記コードでダウンロードできない場合があります。
次のようなエラーが出る場合があります>Username/Password Authentication Failed.。

この場合は、ご自身でCivit.aiのAPIを取得して、ダウンロードコードに記載する必要があります。おそらく、誰がモデルをダウンロードしたか確認したいからだと思います。
詳細は以下サイトをご参考ください。

APIキー作成の流れは以下です。
civitaiのアカウントアイコンを押す>Account settings>+Add API keyを押す>名前をつけてSave>account settingsのAPI箇所からcivitaiAPIをコピー。

上記でコピーしたAPIキーをダウンロードコードに追加することで無事ダウンロードすることができると思います。具体的なコード例は以下となります。

wget https://civitai.com/api/download/models/283697?token=****ご自身のcivitaiAPI**** -O /home/user1/stable-diffusion-webui/models/Lora/midjourney.safetensors

上記のようにしてすべてのCHEKPOINT、Lora、Embeddingモデルをダウンロードします。
具体的なコードは以下となります。
※civitaiAPIはご自身のものを使ってください。

# CHEKPOINTのダウンロード
wget https://civitai.com/api/download/models/416867 -O /home/user1/stable-diffusion-webui/models/Stable-diffusion/zavychromaxl_v60.safetensors
# Loraのダウンロード

# lora:EnvyImpressionismXL01
wget https://civitai.com/api/download/models/229260 -O /home/user1/stable-diffusion-webui/models/Lora/EnvyImpressionismXL01.safetensors

# awesomize lora:EnvyAwesomizeXL01
wget https://civitai.com/api/download/models/232944 -O /home/user1/stable-diffusion-webui/models/Lora/EnvyAwesomizeXL01.safetensors

# lora:more_art
wget https://civitai.com/api/download/models/152309?token=****ご自身のcivitaiAPI**** -O /home/user1/stable-diffusion-webui/models/Lora/more_art.safetensors

# lora:RMSDXL_Enhance
wget https://civitai.com/api/download/models/268857 -O /home/user1/stable-diffusion-webui/models/Lora/RMSDXL_Enhance.safetensors

# lora:RMSDXL_Creative
wget https://civitai.com/api/download/models/272849 -O /home/user1/stable-diffusion-webui/models/Lora/RMSDXL_Creative.safetensors

# lora:RMSDXL_Photo
wget https://civitai.com/api/download/models/282532 -O /home/user1/stable-diffusion-webui/models/Lora/RMSDXL_Photo.safetensors

# lora:RMSDXL_Darkness_Cinema
wget https://civitai.com/api/download/models/270554 -O /home/user1/stable-diffusion-webui/models/Lora/RMSDXL_Darkness_Cinema.safetensors

# lora:clothing_slider
wget https://civitai.com/api/download/models/173623 -O /home/user1/stable-diffusion-webui/models/Lora/clothing_slider.safetensors

# lora:great_lighting
wget https://civitai.com/api/download/models/258416 -O /home/user1/stable-diffusion-webui/models/Lora/great_lighting.safetensors

# lora:aesthetic
wget https://civitai.com/api/download/models/259830 -O /home/user1/stable-diffusion-webui/models/Lora/aesthetic.safetensors

# lora:looking_at_viewer
wget https://civitai.com/api/download/models/259540 -O /home/user1/stable-diffusion-webui/models/Lora/looking_at_viewer.safetensors

# lora:photorealistic_portrait_v2
wget https://civitai.com/api/download/models/385437?token=****ご自身のcivitaiAPI**** -O /home/user1/stable-diffusion-webui/models/Lora/photorealistic_portrait_v2.safetensors

# lora:attractive_v2
wget https://civitai.com/api/download/models/381414?token=****ご自身のcivitaiAPI**** -O /home/user1/stable-diffusion-webui/models/Lora/attractive_v2.safetensors

# lora:extremely_detailed_v2
wget https://civitai.com/api/download/models/383563?token=****ご自身のcivitaiAPI**** -O /home/user1/stable-diffusion-webui/models/Lora/extremely_detailed_v2.safetensors

# lora:add_detail
wget https://civitai.com/api/download/models/135867 -O /home/user1/stable-diffusion-webui/models/Lora/add_detail.safetensors

# lora:perfect_eyes
wget https://civitai.com/api/download/models/128461 -O /home/user1/stable-diffusion-webui/models/Lora/perfect_eyes.safetensors

# lora:perfect_hands
wget https://civitai.com/api/download/models/254267?token=****ご自身のcivitaiAPI**** -O /home/user1/stable-diffusion-webui/models/Lora/perfect_hands.safetensors

# lora:midjourney
wget https://civitai.com/api/download/models/283697 -O /home/user1/stable-diffusion-webui/models/Lora/midjourney.safetensors
# Embeddingのダウンロード
wget https://civitai.com/api/download/models/5139 -O /home/user1/stable-diffusion-webui/embeddings/Unspeakable-Horrors-Composition-SDXL.pt

# o ??
wget https://civitai.com/api/download/models/340980?token=****ご自身のcivitaiAPI**** -O /home/user1/stable-diffusion-webui/embeddings/SDXL_TI_my_eyes_are_bleeding.safetensors

# o以下の場合、エラーなく使ている。
wget https://civitai.com/api/download/models/363593?token=****ご自身のcivitaiAPI**** -O /home/user1/stable-diffusion-webui/embeddings/unaestheticXL_Alb2.safetensors

Vast.aiで借りたサーバーによりますが、沢山のモデルをダウンロードするため1時間ほど時間がかかると思います。このダウンロードに時間がかかるとお金(サーバーのレンタル代)がかかってしまうので、下図のダウンロード速度が速いものを選ぶといいと思います。

画像の生成

以上で、目標となる画像を生成するために必要なモデルをダウンロードできました。それでは目標画像の設定を以下に示します。

SDで上記設定をして画像を生成してきます。
画像サイズを1024*1024とすることも忘れないようにしてください。(SDXLモデルのため)
ちなみに、プロンプトに記載している”lora:EnvyImpressionismXL01:0.75”の0.75は、どれくらいloraを効かせるかの数値です。値が大きいほどloraが強く効きます。(マイナスの場合、効かない設定です。)

Embeddingは、ネガティブプロンプトに記載します。Unspeakable-Horrors-Composition-SDXLをネガティブプロンプトに記載するとEmbeddingが効きます。このUnspeakable-Horrors-Composition-SDXLは、Embeddingファイルのファイル名です。

上記設定で画像を生成しました結果を以下に示します。

まったく同じではないですが、似た風合いの画像が生成できました。シード値を少し変えて複数枚生成したものを以下に示します。

やっぱり、全く同じものは生成できないですね。。この辺がSDによる画像生成の難しさでしょうか。

画像の生成_追記

上記では、目標となる画像をうまく生成できなかったですが、もう少し近づける方法がありました。それは、目標となる画像から、生成した設定を取得できるのですが、この設定を利用します。
まず、SDの画面で、PNG Infoタブをクリックして、Source部に目標画像をドラッグ&ドロップします。そうすると、parametersに詳細の設定が表示されます。

このページの下部のSend to txt2imgタブをクリックします。

そうすると、目標画像を生成した時の設定が展開されます。

画像のサイズなど詳細がわかります。
今回足りなかったところとして、Upscalerで”4x-UltraSharp”を使っている所。VAEとして、”sdxl_vae.safetenrors”を使っている所です。
早速、ダウンロードして使える用にしていきます。ダウンロードコードは以下です。

# Upscaler_4x-UltraSharpのダウンロード
mkdir -p /home/user1/stable-diffusion-webui/models/ESRGAN/
wget https://huggingface.co/lokCX/4x-Ultrasharp/resolve/main/4x-UltraSharp.pth?download=true -O /home/user1/stable-diffusion-webui/models/ESRGAN/4x-UltraSharp.pth

# VAE_sdxl_vae.safetenrorsのダウンロード
wget https://huggingface.co/stabilityai/sdxl-vae/resolve/main/sdxl_vae.safetensors?download=true -O /home/user1/stable-diffusion-webui/models/VAE/sdxl_vae.safetensors

UpscalerとVAEのダウンロードの参考サイトは以下です。

上記設定で画像を生成しました結果を以下に示します。

これまた、目標画像とそっくりにはできませんでした。ただ、解像度も上がりきれいな仕上がりになりました。(Upsclaerのおかでしょうか)

シード値を少し変えて複数枚生成したものを以下に示します。

やっぱり、全く同じものは生成できないですね。。難しいですね。

まとめ

今回は、LoraとEmbeddingの使い方を説明しました。ほとんどダウンロードについての説明でしたね。参考とした画像とまったく同じものが生成できませんでしたが、似た風合いの画像は生成できました。重要なのは、LoraやEmbeddingを組み合わせ、希望の画像を生成する事です。この組み合わせには、経験とコツが必用ですね。奥が深い。
次は、③ControlNetの使い方を説明していこうと思います。


いいなと思ったら応援しよう!