Stable Diffusionの使い方入門 – 呪文(プロンプト)は頑張らずに思い通りのAI画像を生成する方法

いくら丁寧で適切な命令をしてもAIの頭脳(以降モデル)がおバカだとどうにもなりません。
というわけでプロンプトは適当でも結構な思い通り(言い過ぎ)の絵を出す方法をご説明します。

下準備

以下の2点は必須です。

  1. AUTOMATIC1111/stable-diffusion-webuiの構築
  2. Chovitaiのインストール

1については以下をご参照ください。

Stable Diffusionのインストール AUTOMATIC1111/stable-diffusion-webuiを使用

2については以下をご参照ください。

CIVITAIを人気順に検索する方法 CIVITAI検索ツールのご紹介[Chovitai]

準備はよろしいですか?では、本題です。

おおまかな手順

  1. モデルの選定
  2. Promptの丸パクリ
  3. NegativePromptの拡張(TextualInvension)
  4. LoRAの選定
  5. VAEの選定
  6. 画像サイズと品質の関係
  7. Step数と品質の関係
  8. ControlNet導入によるポージングの指定
  9. 無限に画像を生成し続ける方法(Generate forever)
  10. 色んなプロンプトを仕掛けて試す方法
  11. SamplingMethodの選定
  12. 過去に生成した画像のPromptを確認する方法

では、元気よく行ってみましょう。

1. モデルの選定

まずはモデルの選定です。
下準備でご準備頂いたChovitaiを使用します。
アプリを起動して以下を選択します。

  • Types → Checkpoint
  • Sort → Most Downloaded

で、検索ボタンを押します。

ダウンロード数の多いものから順に表示されます。

お好みのモデルを選んでダウンロードボタンを押します。

僕は以下をダウンロードしました。
お好みで選んでください。

ご準備頂いたstable-diffusion-webuiの
以下のフォルダに配置することで使えるようにします。

webui側はこんな感じです。

2. Promptの丸パクリ

プロンプトをコピーします。

プロンプトを貼り付けます。
折角なのでモデル取得元のサンプルを参考にします。

これだけでそこそのイケメンが出来上がりました。

NegativePromptを試すのでSeed値を残しておきます。

3. NegativePromptの拡張(TextualInvension)

NegativePromptのコピー。

Negative Promptを貼り付けてGenerate

違うタイプのイケメンになりました。

しかし、Negative Promptの内容がよくわかりません。

BadDream, (UnrealisticDream:1.3)

少しChovitaiで、以下を選択して検索してみます。

  • Types → TextualInversion
  • Sort → MostDownloaded

下に行くと
BadDream + UnrealisticDream (Negative Embeddings)
があります。

BadDream v1.0とUnrealisticDream v1.0をダウンロードします。

ダウンロードした以下のファイルを
stable-diffusion-webui\embeddings に置きます。

  • BadDream.pt
  • UnrealisticDream.pt

もう一度画像を生成します。
何が変わったかわかりませんが、別ジャンルのイケメンが登場しました。

先ほどのBadDream.ptなどが効いてるかどうかはwebuiの裏側で動いているコンソールで確認できます。

ちょっと解説。
例としてBadhandが一番分かりやすいと思います。
気持ちの悪い手を出させないようにしようとすると
指は6本以上にならないとか4本以下にならないとか色々指定しないといけません。
そこをbadhandv4の一言で解消できるようにしたのがこれです。便利。

というわけで後はTextualInversionで出てきた
ダウンロード順の上から10個程度入れておけば
パクリ魔術師の我々としてはすごく便利なわけです。
パクってくるプロンプトに頻繁に出てくるEasyNegativeは必須。

4. LoRAの選定

例えば、今のイケメンを塗り絵にしたくなったらどうしましょう。
プロンプトで頑張る?それは大変そうですね。
ベースの画像に対して様々な効果や特徴を持たせることができるLoRA。
サイズも小さくてHDDにも優しい。

では行ってみましょう。
Chovitaiで以下を選択し検索します。

  • Type → LORA
  • Sort → Most Downloaded

どうやら丁度良さそうなLoRAがあります。
Anime Lineart / Manga-like (线稿/線画/マンガ風/漫画风) Style

こちらを取ってきます。

ダウンロードしてきた以下をstable-diffusion-webui\models\Loraに配置します。

  • animeoutlineV4_16.safetensors

例によってプロンプトをパクリます。

webuiに貼り付けます。
余計なものがたくさん入っています。
LoRAの決まり事のようですが、以下を探します。

<lora:xxx>

今回は

<lora:animeoutlineV4_16:1>

です。

animeoutlineV4_16は先ほどダウンロードしてきたファイルのファイル名です。
バージョンによってサンプルと名前が異なる場合があります。
異なる場合はファイル名と一致させます。

ちなみに:1の部分は影響度の度合いです。
お手本通りのまま1で行ってみます。

では、余計な部分を除いてGenerateを押します。

うまく行きませんね。
今回のLoRAを効果を発揮するプロンプトまで削ってしまったようです。
見直してみます。

masterpiece, best quality, 1girl, solo, long_hair, looking_at_viewer, 
smile, bangs, skirt, shirt, long_sleeves, hat, dress, bow, holding, 
closed_mouth, flower, frills, hair_flower, petals, bouquet, 
holding_flower, center_frills, bonnet, holding_bouquet, flower field, 
flower field, lineart, monochrome, <lora:animeoutlineV4_16:1>

lineartをプロンプトに入れて実行します。
こんな感じ。

見た目で分かりますがLoRAが効いてるかをコンソール側で確認します。
効いてそうですね。

ちなみに効いてないとこんな感じです。
ファイル名とプロンプトが一致していることを確認してください。

他にもLoRAには有名人の顔とすり替えたり人気アニメやゲームのキャラの顔にすり替えたりできます。
色々試してみてください。

僕が愛してやまないファイアーエムブレム。
地味だけど存在感のある門番を最初にとってきた3つのモデルで出してみます。

使用するLoRAはこちら。
Gatekeeper (Fire Emblem: Three Houses) LoRA

線画にするLoRAと重ねてみます。

LoRAは元の絵に強い影響を与えますので使いどころ次第です。
今回は構図すらも変わってしまいました。
特定の人物や特定のキャラクターなどはかなり近いものが出てきます。
著作権や肖像権の問題等もありますのでご注意ください。

5. VAEの選定

先ほどの門番は少しぼやけているように感じます。

もう少しクリアに出したい場合などVAEを使用します。

Chovitaiで以下を選択し検索します。

  • Types → VAE
  • Sort → Most Downloaded

お好きな雰囲気のものをいくつかとってきます。
僕は上から3つ取ってきました。

ダウンロードしたファイルを
stable-diffusion-webui\models\VAEに配置します。

webuiの
Setting → StableDiffusion → 更新のアイコン
の順に選択します。

先ほどダウンロードしたファイルが反映されているのでお好きなものを選びApply settingsを押します。

以下は結果です。
こちらもモデルによって特徴がありますので色々試してみてください。
元の絵の構図などを変えないのが嬉しいです。

VAEが効いてるかどうかを確認する方法は
例によってwebuiの裏側で動作しているコンソールを確認します。
Generateを押した時ではなくSettingでApply Settingを押した時に以下が表示されます。

6. 画像サイズと品質の関係

ここまで画像サイズには触れずに来ましたが、
画像の品質と画像の大きさには関係があるようです。

大きい方がキレイな画像が出るという話なので以下をご参照ください。

Stable Diffusionの画像サイズとクオリティ【AIアート】

物足りなくなってくれば大き目サイズを指定すると良いと思います。
僕は512×768をよく使います。

7. Step数と品質の関係

Step数は以下の部分です。

こちらもSteps数が大きければ品質が上がります。
ただし数字が大きすぎると途中から変化しなくなります。
劣化はしないのですが時間の無駄ですので手ごろなところを狙ってください。
以下を参考にどうぞ。

Stable Diffusion のステップ数による画像変化【AIアート】

僕は20で雑に確認して品質を上げたくなったら40-60程度を使います。

8. ControlNet導入によるポージングの指定

人物の画像を出す際、ポーズを指定したいことがあります。
その場合はControlNetを使用します。

ControleNetのインストール

webuiでExtension → Install from URL
URL for extension’s git repositoryに以下を入力

https://github.com/Mikubill/sd-webui-controlnet.git

Installを押す

Extension → Installedを選択
sd-webui-controlnetが表示されてチェックが入ってることを確認し
Apply and resturt UIを押します。
どうやら失敗して止まることもあるようですが、
その場合はwebui.batを起動しなおします。

Chovitaiで以下を選択し検索します。

  • Types → pose
  • Sort → Most Downloaded

結構な数あるのでお好きなものを選びます。
今回はジョジョ立ちをさせたいと思います。

Jo Jo’s Bizarre Pose Helper
を取ってきます。

ダウンロードしてきたファイルを展開します。

DioのWryyyなんて良さそうです。
先ほどの門番にWryyyをやらせてみようと思います。

ContoroleNet vX.X.XXXを開きます。

DioWryyy.pngをドラッグアンドドロップ

以下を確認します。
何も無い場合はモデルを取ってくる必要があります。

以下のページに飛びます。

control_v11p_sd15_openpose_fp16.safetensors
をクリック

download

control_v11p_sd15_openpose_fp16.safetensors
を以下の場所に配置します。

stable-diffusion-webui\extensions\sd-webui-controlnet\models

更新ボタンを押した後、control_v~が出てくるので選択。

Enable → none → control_v~
が、選択されている状態にします。

Generate

Wryyyyyyyyyyyyyyyyyyyyyyyyy

モデルを変えて
Wryyyyyyyyyyyyyyyyyyyyyyy

線画でWryyyyyyyyyyyyyy

9. 無限に画像を生成し続ける方法(Generate forever)

Seed値を変えれば同じプロンプトで色んな絵が出せます。
-1を設定しておくとランダムになるので永遠に実行したい。
そういう場合はGenerateを右クリック。

Generate forever

無限Wryyyyyyyyyyyyyy

Chovitaiで
Folderタブからフォルダのアイコンをクリックし画像の出力先フォルダを選択します。

出力先フォルダは以下の通り

stable-diffusion-webui\outputs\txt2img-images\今日の日付

ま、別にエクスプローラーで普通に見れば良いと思います。

止め方はInterruptあたりを右クリックして
Cancel generate forever

もうWryyyyyyy飽きた。

10. 色んなプロンプトを仕掛けて試す方法

先ほどのGenerate foreverはずっと同じプロンプトを実行し続けます。
いやいや、むしろ色んなプロンプトを試したいんだよ。
というシーンもあるかと思います。

たくさんのプロンプトをつくるのは
面倒なので先人たちの素晴らしいプロンプトをパクります。

Chovitaiで以下を選択して検索。

  • Types → Wildcard
  • Sort → Most Downloaded

僕は以下をとってきました。

RPG Male Edition – AutoPrompt – Awesome prompt lists

至高のプロンプトがダウンロードできました。

Scriptの部分を開きます。

Prompt from file or textboxを選択します。

丸パクリエンジニアの僕は先ほどダウンロードしたファイルをぽいっと放り込みます。

Generate!!

よっしゃあ!Wryyyyyyyyyy!!おっと失礼。

11. SamplingMethodの選定

Sampling Methodを色々試すのもありですが、
DefaultのEuler aかDPM++ SDE KarrasかDPM++ 2M Karrasで良いと思います。

Euler aは、さすがデフォルトなだけあって高品質の画像を出してくれます。
体感ちょっと速い気もします。

一方DPM++ SDE KarrasやDPM 2M Karrasは、
Civitaiでイメージを検索していくと大抵これになっているのがわかります。

Civitaiで投稿されている画像の中で、リアクションの多いTOP100に何のSamplerが使われているか確認しました。
使用モデルが公開されていないものも含まれていましたので合計79件です。

Sampler
DPM++ SDE Karras 31
DPM++ 2M Karras 29
Euler a 13
DPM++ SDE 1
DPM2 Karras 1
DDIM 1
DPM++ 2S a Karras 1
DPM++ 2M alt Karras 1
DPM adaptive 1

上位3つのどれかを使っておけばよいかと思います。

12. 過去に生成した画像のPromptを確認する方法

過去に生成した画像のプロンプトを確認するにはwebuiのこちらを使えば良いです。これが地味に便利。
僕はこの機能に気づかずメモ帳に画像と一緒にセットで残してました。

webuiで作成した画像を放り込むとこんな感じで確認できます。

仕組みを簡単に説明すると、
画像の中に含まれるtextのエリアを読み込んでいます。
webuiがなくてもバイナリエディタで開けば見ることができます。

他にも、Chovitaiの以下を使用すれば確認することができます。
この機能を作った後にwebuiの機能を知ったという愚かなワタクシ。

まとめ

いかがでしたでしょうか?
今回はChovitaiを紹介したいがために、
StableDiffusion系のちょっとしたテクニックをご紹介しました。
では、楽しいStableDiffusionライフを!!

おわり

PR

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です