コンテンツへスキップ

画像生成AI ローカル構築のメモ

Stable Diffusion

用語の整理

個人的に触った感じでまとめているので、細かくは違うかもです。大まかに。

  • Stable Diffusion:画像生成AI を組み込んだ本体プログラム
    • stable-diffusion-webui:人気の画像生成AI をGUI で簡単に使えるようにしたソフトウェア。AUTOMATIC1111 さんが公開しているものが人気。
    • プロンプト:画像生成させたいキーワード
    • ネガティブプロンプト:画像生成させたくないキーワード
  • CHECKPOINT:画像生成のコアになるモデル。全体の画風的な部分を左右する。
  • VAE:変分オートエンコーダ。これも大事なやつ^^; 発色とか雰囲気が変わる。
  • sampling method:雰囲気変わる。
  • LoRA:画像生成AI の出力結果に影響を与えるアタッチメント的なモデル。他にもLyCORIS などがある。
    (巷にあふれるLoRA 動画はこのモデルを自作するという、ディープな内容です。)
    • DreamBooth キャプション方式:ずんだもんLoRA をつくる動画で紹介されている学習方式。stable-diffusion-webuiとは別のプログラムをインストールする必要がある。CLI。GUI 版もあるけど、みんなCLI でやっている。
    • Train-Tools:stable-diffusion-webui のプラグイン。こちらでもLoRA の学習ができます。
  • lycoris:LoRA みたいなモデル。新型。
  • Textual Inversion:LoRA みたいなモデル(だと思うんだけど、)逆にネガティブプロンプト代わりに使う。

Stable Diffusion web UI

インストール

とりあえず、グラフィックボードが必要です。VRAM 8G 以上。
私はNVIDIA CeForce GTX 1080 を使用しています。ギリVRAM 8G。

図1: GPUの使用率とメモリ状況。VRAMは4.5/8.0GB使用中で、温度は88℃とやや高め。
図1: GPUの使用率とメモリ状況。VRAMは4.5/8.0GB使用中で、温度は88℃とやや高め。

グラボがあることが前提で、あとはgit とpython が入っていれば簡単に導入できる。
それどころか入ってなくても一発インストーラーまで用意されている模様。

stable-diffusion-webui /README.md

図2: AUTOMATIC1111のREADME。Windows10/11でNVIDIA GPUならsd.webui.zipを落としてrun.batを実行するだけでOKという説明。
図2: AUTOMATIC1111のREADME。Windows10/11でNVIDIA GPUならsd.webui.zipを落としてrun.batを実行するだけでOKという説明。

一発インストーラーの説明。試してないから、実際どうなのかわからない。

図3: stable-diffusion-webuiのGitHubリリースページ。v1.0.0-preのsd.webui.zip(50.3MB)がここからダウンロードできる。
図3: stable-diffusion-webuiのGitHubリリースページ。v1.0.0-preのsd.webui.zip(50.3MB)がここからダウンロードできる。

The webui.zip is a binary distribution for people who can’t install python and git. Everything is included – just double click run.bat to launch. No requirements apart from Windows 10. NVIDIA only. After running once, should be possible to copy the installation to another computer and launch there offline.
(Google 翻訳:webui.zip は、Python と git をインストールできない人のためのバイナリ配布です。 すべてが含まれています。run.bat をダブルクリックして起動するだけです。 Windows 10 以外の要件はありません。NVIDIA のみ。 一度実行した後は、インストールを別のコンピュータにコピーして、そこでオフラインで起動できるはずです。)

https://github.com/AUTOMATIC1111/stable-diffusion-webui/releases/tag/v1.0.0-pre

とりあえず、バッチの方でインストールする。楽すぎる^^;
もっと敷居の高いものかと思ってたましたが、下記のように4ステップです。

図4: 手動インストールの手順。Python 3.10.6とgitを入れてリポジトリをクローンし、webui-user.batを実行するだけ。
図4: 手動インストールの手順。Python 3.10.6とgitを入れてリポジトリをクローンし、webui-user.batを実行するだけ。

Python とGit をインストールしたら、適当にフォルダを作成。
コマンドプロンプトを開いて、作成したフォルダをカレントディレクトリに指定。
Git Hub からリポジトリをクローン。

cd C:\Users\koti_\AppData\Roaming\StableDiffusion
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git

git clone でコピーしたファイルの中にバッチファイルがあるので、実行します。

cd stable-diffusion-webui
webui-user.bat

一応、バージョン指定だけいれておこう。

図5: webui-user.batの中身をエディタで開いたところ。PYTHON_VERやGIT、VENV_DIRなどを設定してwebui.batを呼び出している。
図5: webui-user.batの中身をエディタで開いたところ。PYTHON_VERやGIT、VENV_DIRなどを設定してwebui.batを呼び出している。

インストールが終わって、起動までしたみたい。
起動バッチと一緒になっている(っぽい)ので、次回 stable diffusion を起動したいときも、
このバッチファイルから起動します。

図6: webui-user.batを実行したコマンドプロンプトのログ。起動が終わって「Running on local URL: http://127.0.0.1:7860」と出たところに矢印で注目させている。
図6: webui-user.batを実行したコマンドプロンプトのログ。起動が終わって「Running on local URL: http://127.0.0.1:7860」と出たところに矢印で注目させている。

URL にアクセス。

図7: ブラウザでlocalhost:7860を開いたところ。txt2imgタブの初期状態で、プロンプト欄はまだ空っぽ。
図7: ブラウザでlocalhost:7860を開いたところ。txt2imgタブの初期状態で、プロンプト欄はまだ空っぽ。

画像生成について

画像生成の準備

スペックの確認(RTX 1080 で動いてくれるだろうか。)

まず心配なのが「このグラボでちゃんと動くのか」ということです。

試しに「unimoni」のイメージを生成してみた。
ちゃんと生成されました。

解像度は1440 * 1440 px まで生成できました。

図8: 「Image of "unimoni"」というプロンプトでバッチ10枚生成してみた結果。民族衣装っぽいフクロウ風のキャラが出てきた。
図8: 「Image of “unimoni”」というプロンプトでバッチ10枚生成してみた結果。民族衣装っぽいフクロウ風のキャラが出てきた。

画像生成のキーワードについて

プロンプトとネガティブプロンプトがあります。
「プロンプト」は生成させたいキーワード、「ネガティブプロンプト」は生成させたくないキーワードです。

  • 順番で強弱が変わる(らしい)
  • ( )で囲むと強度アップ。最大3重 ((( prompt )))
  • [ ] で囲むとナーフ
  • AND 構文使える(らしい)
  • キーワードに「:n(コロン数字)」を追加すると、重みを指定できる。

デフォルトの状態だと、神絵は降りてこないです。神絵を学習したモデル(テンプレみたいなもの、もしくはパズルのピース、ブロックのセットみないなイメージ、、、)が要ります。

モデルは投稿サイトでダウンロードできます。

画像生成時の「モデル」について(CHECKPOINT とVAE)

「モデル」は画像生成するときのモジュールというか、データベースというか、ひな形というか、そういう感じのもの(みたいなものととらえています^^)。

CHECKPOINT モデルが変わるとガラッと絵柄が変わる!(左)
素晴らしいです。
さらにVAE も変更すると、発色なども変化します。(右)

図9: 生成された女の子のイラスト。青みがかった銀髪に花飾り、白いフリル袖のブラウス姿。
図9: 生成された女の子のイラスト。青みがかった銀髪に花飾り、白いフリル袖のブラウス姿。

primemix_v21

図10: 同じ設定で生成した別バリエーション。髪や表情はほぼ同じだけど微妙に違う。
図10: 同じ設定で生成した別バリエーション。髪や表情はほぼ同じだけど微妙に違う。

primemix_v21 + BerrysMix.vae.safetensors

図11: こちらも同じキャラクターの生成結果。花飾りや衣装はそのまま。
図11: こちらも同じキャラクターの生成結果。花飾りや衣装はそのまま。

primemix_v21 + kl-f8-anime2.vae

図12: またも似た構図の生成結果。同じシード違いのバリエーションらしい。
図12: またも似た構図の生成結果。同じシード違いのバリエーションらしい。

primemix_v21 + pastel-waifu-diffusion.vae.pt

ちなみにサンプリングステップ数や、サンプリングメソッド、クリップステップ数などでも変化します。
(これらはパラメータなので、ダウンロードは不要。)

図13: 別パターンの生成結果。銀髪ツインテールに赤い星形のヘアピンが特徴的な女の子。
図13: 別パターンの生成結果。銀髪ツインテールに赤い星形のヘアピンが特徴的な女の子。

サンプリングステップ:30

図14: 金髪の女の子が屋外の段差に座っているイラスト。白いワンピースに紺のリボンが目を引く。
図14: 金髪の女の子が屋外の段差に座っているイラスト。白いワンピースに紺のリボンが目を引く。

サンプリングメソッド:DPM++ 2M SDE Karras

図15: 前髪だけ明るく後ろが黒っぽいメッシュヘアの女の子。ピンクの花飾りが可愛い。
図15: 前髪だけ明るく後ろが黒っぽいメッシュヘアの女の子。ピンクの花飾りが可愛い。

Clip skip:2

さらにLORA モデルを追加で指定する。

図16: セーラー服っぽい白い服の女の子。青みがかったツインテールで、ちょっと驚いた表情。
図16: セーラー服っぽい白い服の女の子。青みがかったツインテールで、ちょっと驚いた表情。

+ LoRA
MilimNavaMerge@Tensei Shitara Slime Datta Ken (characters pack)

モデルのダウンロードと保存先フォルダ

モデルは投稿サイトで入手可能です。
(モデルごとに利用規約があるので注意が必要です。※クレジット入れてねとか、売っちゃダメとか。)

出力される絵がガラッと変わります。
下記のようなモデルが投稿されているサイトから好みの絵柄のものをダウンロードしましょう。

https://civitai.com/

図17: Civitaiの「#animal」タグ検索結果。カピバラやマヌルネコなど動物モチーフのLoRAがずらり。
図17: Civitaiの「#animal」タグ検索結果。カピバラやマヌルネコなど動物モチーフのLoRAがずらり。

ここで気を付けるのはモデルの種類。
「CHECKPOINT」か、「CHECKPOINT MARGE」というタイプのモデルを入手します。

タイプについては、どのサイトでも多分どこかに表示されていると思います。
下記のサイトだと、プレビューの左上のタグや、詳細画面を開いた時のTYPE 欄で確認できます。

プレビュー:左上

図18: Civitaiのモデルカードにオレンジの矢印で注釈。左が「CHECKPOINT」、右が「LORA」のバッジだと分かるようになっている。
図18: Civitaiのモデルカードにオレンジの矢印で注釈。左が「CHECKPOINT」、右が「LORA」のバッジだと分かるようになっている。

詳細の画面:Type 欄

図19: CivitaiのNabiMixというチェックポイントマージのページ。赤黒の悪魔風装備の女の子がサンプル画像。VAE同梱の注意書きもある。
図19: CivitaiのNabiMixというチェックポイントマージのページ。赤黒の悪魔風装備の女の子がサンプル画像。VAE同梱の注意書きもある。

保存先フォルダ

  • CHECKPOINT
    <StableDiffusion インストールフォルダ>\stable-diffusion-webui\models\Stable-diffusion
  • VAE
    <StableDiffusion インストールフォルダ>\stable-diffusion-webui\models\VAE
  • LoRA
    <StableDiffusion インストールフォルダ>\stable-diffusion-webui\models\Lora
  • TEXTUAL INVERSION
    <StableDiffusion インストールフォルダ>\stable-diffusion-webui\embeddings

ライセンスの確認

ダウンロードするときに、画面右下のアイコンで使用上の注意を確認します。
売っちゃダメとか、サービスに使用してはダメとか、クレジットを掲載すること、など、
モデルによってそれぞれです。

図20: NabiMixのページをスクロールした先。ライセンス欄に何が許可されているかが矢印付きで囲まれている。
図20: NabiMixのページをスクロールした先。ライセンス欄に何が許可されているかが矢印付きで囲まれている。

CHECK POINT ダウンロード時の注意点

たまにVAE を指定されているモデルがあるので、一緒にダウンロードして画像生成時に指定する。
VAE のリンクをクリックすればダウンロードできます。

ダウンロードしてあっても自動で適用にはならないみたいなので、なんか違うなーと思ったら確認^^

図21: NabiMixのダウンロードボタン周り。VAE同梱の注意書きに矢印で注目させている。
図21: NabiMixのダウンロードボタン周り。VAE同梱の注意書きに矢印で注目させている。

参考:VAE 設定

VAE ダウンロード先

気に入ったVAE は他のモデルにも適用してみましょう。雰囲気や、クリア具合がだいぶ変わります。
なんか生成した画像が薄いなーとか思ったら、VAE を適用してみるといいと思う。

https://civitai.com/models/47127/nabimix

BerrysMix.vae.safetensors(VAE のリンクからダウンロード)

図22: NabiMixのバージョン切り替えタブ(V1/V2)。18+表示でぼかされた画像と赤黒装備の女の子の見本が並ぶ。
図22: NabiMixのバージョン切り替えタブ(V1/V2)。18+表示でぼかされた画像と赤黒装備の女の子の見本が並ぶ。

https://civitai.com/models/6755/cetus-mix

pastel-waifu-diffusion.vae.pt(VAE のリンクからダウンロード)

図23: CetusMixというチェックポイントのページ。海辺に立つ白と金の衣装の女の子がサンプル画像で、ダウンロードは3.63GB。
図23: CetusMixというチェックポイントのページ。海辺に立つ白と金の衣装の女の子がサンプル画像で、ダウンロードは3.63GB。

https://civitai.com/models/23906/kl-f8-anime2-vae

kl-f8-anime2.vae

図24: kl-f8-anime2というVAEのページ。「NONE」と「VAE」で赤毛の女の子の発色を比較した画像が分かりやすい。
図24: kl-f8-anime2というVAEのページ。「NONE」と「VAE」で赤毛の女の子の発色を比較した画像が分かりやすい。

https://civitai.com/models/59683/counterfeit-v25-vae

Counterfeit-V2.5.vae.pt

図25: Counterfeit-V2.5 VAEのページ。庭に佇む白髪の女の子がサンプル画像。
図25: Counterfeit-V2.5 VAEのページ。庭に佇む白髪の女の子がサンプル画像。

CHECK POINT やLoRAの保存について

ダウンロードしたファイルをフォルダに入れる。
StableDiffusion\stable-diffusion-webui\models\Stable-diffusion

同名でイメージを保存しておくと、プレビュー画像に使用される。

図26: Windowsのエクスプローラーでモデル格納フォルダを開いたところ。cetusMixやCounterfeitなど、いろんなチェックポイントのサムネイルがずらり並ぶ。
図26: Windowsのエクスプローラーでモデル格納フォルダを開いたところ。cetusMixやCounterfeitなど、いろんなチェックポイントのサムネイルがずらり並ぶ。

花札マーク >CHECPOINT タブ

図27: WebUIのツールバーを拡大表示。保存アイコンの位置がオレンジの矢印で示されている。
図27: WebUIのツールバーを拡大表示。保存アイコンの位置がオレンジの矢印で示されている。

正直、名前だけでは把握しきれないから、プレビューされるようにしておくと便利。
LoRAも同様にできます。

図28: WebUIの拡張ネットワークタブでチェックポイント一覧を表示したところ。サムネイル付きでずらっと並んでいて選びやすい。
図28: WebUIの拡張ネットワークタブでチェックポイント一覧を表示したところ。サムネイル付きでずらっと並んでいて選びやすい。

モデルの切り替え方法

CHECKPOINT の設定

画面左上のプルダウンメニュー または、
花札マークのアイコン >CHECKPOINT タブの中から、ダウンロードしたモデルを選んで切り替える。

図29: チェックポイントの切り替えドロップダウン。graffitiArtやprimemix_v21などが並んでいて、今はprimemix_v21が選択中。
図29: チェックポイントの切り替えドロップダウン。graffitiArtやprimemix_v21などが並んでいて、今はprimemix_v21が選択中。

VAE 設定

絵柄にも作用する気がするけど、大きく

変分オートエンコーダ。もやもやを画像に変換する役割をもつみたい。
発色とかに大きく影響する。

Settings タブ >User interface >Quicksettings list にて「sd_vae」を追加する。

図30: WebUIの設定画面。上部にチェックポイントとVAEの選択欄、下は設定タブの「User interface」でクイック設定リストにsd_vaeを追加する手順が番号付きで説明されている。
図30: WebUIの設定画面。上部にチェックポイントとVAEの選択欄、下は設定タブの「User interface」でクイック設定リストにsd_vaeを追加する手順が番号付きで説明されている。

model フォルダ内のVAE に配置したVAE が画面の左上で選択できるようになる。

図31: クイック設定にVAE選択欄を追加した後のWebUI上部。SD VAEのドロップダウンがオレンジ枠で強調されている。
図31: クイック設定にVAE選択欄を追加した後のWebUI上部。SD VAEのドロップダウンがオレンジ枠で強調されている。

LoRA の設定

LoRA の設定方法は、エクステンション(Additional Networks)を使う方法もありますが、
Stable Diffusion web ui はデフォルト機能でLoRA が使えるので、そっちの手順で。

モデルのタイプでCHECPOINT が生成エンジンみたいなやつで、LORA がニュアンスみたいなやつらしい。
画像生成時にその影響は絶大。

図32: Civitaiのモデルカード注釈(CHECKPOINTとLORAバッジの説明)。さっきと同じ画像が別の箇所でも使われている。
図32: Civitaiのモデルカード注釈(CHECKPOINTとLORAバッジの説明)。さっきと同じ画像が別の箇所でも使われている。

ダウンロードして、フォルダに配置してあれば、花札マークのアイコン >LORA タブで指定できる。
プロンプトとして追加されます。

保存先フォルダ:<StableDiffusion インストールフォルダ>\stable-diffusion-webui\models\Lora

図33: Civitaiの「Tensei Shitara Slime Datta Ken」キャラクターパックLoRAのページ。ピンク髪で角の生えたシュナのイラストがサンプル。
図33: Civitaiの「Tensei Shitara Slime Datta Ken」キャラクターパックLoRAのページ。ピンク髪で角の生えたシュナのイラストがサンプル。

プロンプトに追加される。

図34: img2imgのプロンプト欄。「<lora:ShunaV1>」というLoRA呼び出しタグが矢印で示されている。
図34: img2imgのプロンプト欄。「<lora:ShunaV1>」というLoRA呼び出しタグが矢印で示されている。

これが

図35: 生成された天使風の女の子。黒髪に白い翼、黒いボディスーツ姿で電柱の並ぶ夕景を背景に立っている。
図35: 生成された天使風の女の子。黒髪に白い翼、黒いボディスーツ姿で電柱の並ぶ夕景を背景に立っている。

こうなる。

図36: 同じく天使風のイラストだけど、今度は白髪赤目のバージョン。金色の装飾が入った衣装で森を背景にしている。
図36: 同じく天使風のイラストだけど、今度は白髪赤目のバージョン。金色の装飾が入った衣装で森を背景にしている。

生成画像の詳細な描きこみレベルが上がるLoRA モデル。

https://civitai.com/models/58390/detail-tweaker-lora-lora

図37: Civitaiの「Detail Tweaker LoRA」のページ。add_detailの数値を1・0・-1で変えた比較画像や、歩く女の子のイラストがサンプルとして載っている。
図37: Civitaiの「Detail Tweaker LoRA」のページ。add_detailの数値を1・0・-1で変えた比較画像や、歩く女の子のイラストがサンプルとして載っている。

後ろに「:n(コロン 数字)」を追加すると、LoRA の影響度を変更できます。

<lora:add_detail:1.5>

TEXTUAL INVERSION タイプのモデル。

ネガティブプロンプト に指定するタイプのLoRAとは逆の学習をしたようなモデルです。
使用できるモデル(CHECKPOINT)が指定されており、使っているCHECKPOINT によっては効果がない可能性があります。

図38: チェックポイント×ネガティブプロンプトのX/Y/Zプロット比較。6枚の女の子イラストが縦横に並んでいて違いが一目で分かる。
図38: チェックポイント×ネガティブプロンプトのX/Y/Zプロット比較。6枚の女の子イラストが縦横に並んでいて違いが一目で分かる。
保存先フォルダ

<StableDiffusion インストールフォルダ>\stable-diffusion-webui\embeddings フォルダへ保存します。

図39: Windowsの保存ダイアログ。embeddingsフォルダに「badquality.pt」という名前で保存しようとしているところ。
図39: Windowsの保存ダイアログ。embeddingsフォルダに「badquality.pt」という名前で保存しようとしているところ。

TEXTUAL INVERSION いろいろ

指定モデルを確認して使うのがベター。

https://civitai.com/models/11772?modelVersionId=25820

図40: Civitaiの「veryBadImageNegative」というText Inversionのページ。ネガティブ用埋め込みモデルで、比較用のサンプル画像も載っている。
図40: Civitaiの「veryBadImageNegative」というText Inversionのページ。ネガティブ用埋め込みモデルで、比較用のサンプル画像も載っている。

https://civitai.com/models/16807?modelVersionId=40158

図41: Civitaiの「Useful Quality Embeddings」ページ。aid28とaid29を比較したサンプル画像で、ロボット風の女の子とピンク髪の女の子のイラストが並ぶ。
図41: Civitaiの「Useful Quality Embeddings」ページ。aid28とaid29を比較したサンプル画像で、ロボット風の女の子とピンク髪の女の子のイラストが並ぶ。

https://civitai.com/models/7808/easynegative

図42: Civitaiの「EasyNegative」ページ。「No Np」と「Np:EasyNegative」でセーラー服の女の子の生成結果を比較している。
図42: Civitaiの「EasyNegative」ページ。「No Np」と「Np:EasyNegative」でセーラー服の女の子の生成結果を比較している。

画像生成の記録

画像生成の記録。
具体例というか、実験の記録みたいな感じで書いています。
使った感じのメモや感想なので、認識の間違いとか、用語などの間違いがあると思います。
あくまで、情報共有というか、そんな感じで読んでもらえてたらうれしいです。

Train Tools(LoRA モデルの作成)

コスプレとか、キャラクターのファンアートみたいなものを作成できるLoRA モデルが自作できるということでときめいてやってみました。

何をめざしてるかにもよりますが、頑張ってLoRA作るよりは、投稿されているものをダウンロードした方が手軽だし、CHECPOINT のマージや、img2img の方が使い勝手はいいと思いました。

Train Tools の導入

LoRA は専門的なジャンルに対して集中的に学習させたようなモデルのことです。
「Train Tools」は、これを自分でも作成できるようにするモデル訓練用の拡張機能です。

https://github.com/liasece/sd-webui-train-tools.git

図43: GitHubの「liasece/sd-webui-train-tools」リポジトリのページ。ファイル一覧が表示されている。
図43: GitHubの「liasece/sd-webui-train-tools」リポジトリのページ。ファイル一覧が表示されている。

導入方法は、通常のStable Diffusion webui の拡張機能インストール手順と同様です。

Extensions >install from URL でURLを指定してインストール。

図44: WebUIの拡張機能タブでtrain-toolsのURLからインストールしているところ。処理中の表示が出ている。
図44: WebUIの拡張機能タブでtrain-toolsのURLからインストールしているところ。処理中の表示が出ている。

なんか、パーミッションエラーが出てインストールできなかったので いったん停止してから、管理者権限でStable Diffusion webui のバッチを実行。

インストールできたみたい。

図45: コマンドプロンプトでwebui.batを実行したログ。train-toolsの依存関係インストールからWeb UI起動までの流れが表示されている。
図45: コマンドプロンプトでwebui.batを実行したログ。train-toolsの依存関係インストールからWeb UI起動までの流れが表示されている。

「Train Tools」のタブが追加されていました。

図46: WebUIのタブバーを拡大したところ。「Train Tools」タブが選択されている。
図46: WebUIのタブバーを拡大したところ。「Train Tools」タブが選択されている。

トレーニング開始

プロジェクトの作成

Train Tools を開き、プロジェクトと、(プロジェクトの)バージョンを作成する。
それぞれ、右のボタンを押して入力。
(このプロジェクトとバージョン名がそのままLoRA モデル名になります。)

図47: Train ToolsのUI。プロジェクト名「reona」が選択されていて、「Create Project」と「Create Version」ボタンが番号付きの矢印で示されている。
図47: Train ToolsのUI。プロジェクト名「reona」が選択されていて、「Create Project」と「Create Version」ボタンが番号付きの矢印で示されている。

Outputs フォルダにプロジェクトフォルダと、バージョンのフォルダが作成される。

図48: Windowsのエクスプローラーでoutputs\train_tools\projects\test\versionsフォルダを開いたところ。v1〜v5のバージョンフォルダが並ぶ。
図48: Windowsのエクスプローラーでoutputs\train_tools\projects\test\versionsフォルダを開いたところ。v1〜v5のバージョンフォルダが並ぶ。
ファイルをアップロード

トレーニング用のファイルをアップロードします。

「ここにファイルをドロップまたはクリックしてアップロード」をクリックするか、ファイルをドロップしてアップロードする。

図49: Train ToolsのUI全体。プロジェクト「reona」のv1で、データセットのアップロード欄や画像の前処理オプション(サイズ、キャプション付けなど)が並んでいる。
図49: Train ToolsのUI全体。プロジェクト「reona」のv1で、データセットのアップロード欄や画像の前処理オプション(サイズ、キャプション付けなど)が並んでいる。

パラメータを設定。

図50: アップロードした「ojisan.jpg」の前処理設定。幅・高さや、deepbooruでのキャプション付け、繰り返し回数などがオレンジ枠と番号で説明されている。
図50: アップロードした「ojisan.jpg」の前処理設定。幅・高さや、deepbooruでのキャプション付け、繰り返し回数などがオレンジ枠と番号で説明されている。

  1. トレーニング用の画像は、解像度とサイズをそろえておくといいです。
    (xforms の制限か、画像を正方形にしてそろえておかないとうまくアップロードできなかったです。
    最初、画像を何もせずにアップロードしてうまく動かなかったので、画像サイズはリサイズが要らないサイズにしてます。)
  2. プロンプトの入ったファイルを自動で生成。
  3. トレーニングの回数です。
    (設定しないと凄い回数を設定されて終わらないので、とりあえず10とかにしておく。)

パラメータを設定したら「Update Dateset」のボタンを押して処理を実行。
右側に画像のプレビューと、トレーニング用のフォルダが作成されます。

処理が進んでいるかは、プロンプトを見る。ちゃんとステップ後に進捗が表示されます。

図51: コマンドプロンプトのログ。Train Toolsがデータセットのファイルを1枚ずつ処理している様子が流れている。
図51: コマンドプロンプトのログ。Train Toolsがデータセットのファイルを1枚ずつ処理している様子が流れている。

フォルダを見ると、タグの入ったファイルも一緒に生成されている。(2のチェックを入れている状態)

トレーニングさせたい対象のタグを削除しておくとか、他のLoRA作成の動画で聞いたきがするけど、
とりあえずそのまま使用。

図52: Windowsのエクスプローラーでdataset\processed\10_testフォルダを開いたところ。学習用の画像とキャプションtxtがペアで並んでいる。
図52: Windowsのエクスプローラーでdataset\processed\10_testフォルダを開いたところ。学習用の画像とキャプションtxtがペアで並んでいる。
トレーニング開始。

LoRA学習するときに「xformersがインストールされていないようです」のエラーがでる場合は、
webui-user.bat 内で引数「–xformers」を指定する。

https://yuuyuublog.org/xformers_update/

図53: webui-user.batの中身。COMMANDLINE_ARGSに--xformersを追加し、--no-halfなどはコメントアウトされている。
図53: webui-user.batの中身。COMMANDLINE_ARGSに–xformersを追加し、–no-halfなどはコメントアウトされている。

インストールされた。

図54: コマンドプロンプトでxformersをインストールしているログ。ダウンロードが終わって「Successfully installed xformers-0.0.17」と表示されている。
図54: コマンドプロンプトでxformersをインストールしているログ。ダウンロードが終わって「Successfully installed xformers-0.0.17」と表示されている。

ちゃんと動いているように見えた矢先、エラーがでる。
ただし、これは無視していいやつ。(らしい)

図55: LoRA学習開始時のログ。ネットワーク構築やオプティマイザの設定が表示され、学習ステップが0%から始まっている。
図55: LoRA学習開始時のログ。ネットワーク構築やオプティマイザの設定が表示され、学習ステップが0%から始まっている。

学習が進んでいる感も半端ない。

図56: LoRA学習が進んでいくログ。ステップが10%、20%、30%と進み、lossの値も表示されている。
図56: LoRA学習が進んでいくログ。ステップが10%、20%、30%と進み、lossの値も表示されている。

最後までいけそう。

図57: 学習が10エポック分完了し、「model saved」と表示されたログ。その後Train Toolsがチェックポイントのプレビュー生成を始めている。
図57: 学習が10エポック分完了し、「model saved」と表示されたログ。その後Train Toolsがチェックポイントのプレビュー生成を始めている。

プレビューまち。

ここの値はLoRA モデルの効果を確認するためのレビュー向けのタグとか設定を入れるところ(だった。。。)
値に気を付けないとトレーニングと同じくらい時間がかかる。

図58: Train Toolsのチェックポイントプレビュー設定画面。プロンプトやサイズ、バッチ数、LoRAの重み(0.6〜1)、サンプリングステップ数が番号付きで説明されている。
図58: Train Toolsのチェックポイントプレビュー設定画面。プロンプトやサイズ、バッチ数、LoRAの重み(0.6〜1)、サンプリングステップ数が番号付きで説明されている。
  1. プロンプトと、ネガティブプロンプト
    プロットは、画像からプロンプトを生成する拡張機能から生成するといいと思う。
  2. 生成画像の解像度
  3. 画像を生成する回数とバッチサイズ
  4. LoRA の重み付け。(カンマで区切って複数入れるとその分、生成する枚数が増えます。)
  5. サンプリングステップ数(これもタスク量に影響します。)

LoRA の重み付けのパラメータ(4のフィールド)をカンマ区切りで複数指定すると、
その分プレビューの生成数が増える。

図59: LoRAの重みを0.6〜1まで変えたプレビュー画像のグリッド。まだ読み込み中でぼんやりしている。
図59: LoRAの重みを0.6〜1まで変えたプレビュー画像のグリッド。まだ読み込み中でぼんやりしている。
図60: 学習済みLoRAのプレビュー生成が進んでいるログ。別の重み設定でもう一度X/Y/Zプロットの生成が走っている。
図60: 学習済みLoRAのプレビュー生成が進んでいるログ。別の重み設定でもう一度X/Y/Zプロットの生成が走っている。
ハマり1

解像度を上げると、VRAM の問題が

torch.cuda.OutOfMemoryError: CUDA out of memory. Tried to allocate 146.00 MiB (GPU 0; 8.00 GiB total capacity; 7.23 GiB already allocated; 0 bytes free; 7.32 GiB reserved in total by PyTorch) If reserved memory is >> allocated memory try setting max_split_size_mb to avoid fragmentation. See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF

torch.cuda.OutOfMemoryError: CUDA のメモリが不足しています。 146.00 MiB を割り当てようとしました (GPU 0、合計容量 8.00 GiB、すでに割り当てられている 7.23 GiB、空き 0 バイト、PyTorch によって合計 7.32 GiB が予約されています) 予約メモリ >> 割り当てメモリの場合は、断片化を避けるために max_split_size_mb を設定してみてください。 メモリ管理と PYTORCH_CUDA_ALLOC_CONF のドキュメントを参照してください。

図61: webui-user.batにPYTORCH_CUDA_ALLOC_CONFを追加したところ。garbage_collection_thresholdやmax_split_size_mbを設定してメモリ対策をしている。
図61: webui-user.batにPYTORCH_CUDA_ALLOC_CONFを追加したところ。garbage_collection_thresholdやmax_split_size_mbを設定してメモリ対策をしている。

環境変数らしいので、バッチで追加してみた。
あと、ガベージコレクションのしきい値も。

結局、解像度を下げるという話になっていくので、仕方なく少しずつ下げていったのだけど、実績がある解像度でも失敗。
「–no-half –disable-nan-check」が原因だったらしい。
学習させたLoRA で画像が生成できなかったから追加したオプションなのですが、逆に学習時にメモリエラーの原因になる(?)という、酷いハマりで半日つぶした。

ハマり2

Base on Stable Diffusion V2 にチェックをいれると発生する。

size mismatch for mid_block.attentions.0.transformer_blocks.0.attn2.to_k.weight: copying a param with shape torch.Size([1280, 768]) from checkpoint, the shape in current model is torch.Size([1280, 1024]).
size mismatch for mid_block.attentions.0.transformer_blocks.0.attn2.to_v.weight: copying a param with shape torch.Size([1280, 768]) from checkpoint, the shape in current model is torch.Size([1280, 1024]).

Mid_block.attentions.0.transformer_blocks.0.attn2.to_k.weight のサイズが一致しません: torch.Size([1280, 768]) の形状を持つパラメータをチェックポイントからコピーしています。現在のモデルの形状は torch.Size([1280, 1024])。
Mid_block.attentions.0.transformer_blocks.0.attn2.to_v.weight のサイズが一致しません: torch.Size([1280, 768]) の形状を持つパラメータをチェックポイントからコピーしています。現在のモデルの形状は torch.Size([1280, 1024])。

はずすと解消される。

図62: Train Toolsの学習設定。ベースモデルはnabimix_v2、xformers使用、Clip skip=2、バッチサイズ1、エポック数10、学習率0.0001。
図62: Train Toolsの学習設定。ベースモデルはnabimix_v2、xformers使用、Clip skip=2、バッチサイズ1、エポック数10、学習率0.0001。

LoRA の効果について

LoRA の作り方自体が怪しいのですが、一応 効果を測定。

少ない回数でも、学習の効果が見て取れるレベルで発生します。
回数はたぶん、「汎用性」で影響するのかなと思います。

生成する構図なども影響を受けているように見える。
顔がない画像で学習したモデルは顔がない構図に寄せてくるし、立っている構図の写真で学習するとまず、立たせようとしてくる。
なんでも、学習した画像に近くしようとする感じで、ポーズや、向きなどにバリエーションがなくなる感じ。

例:おっさんの写真1枚(ミラーあり)でトレーニングする。
(注:プライバシー保護のため、目線とモザイク処理を入れております。実際は入っていません。)

図63: 学習用データセットに登録した写真。モザイクをかけた人物の顔写真が2枚並んでいる。
図63: 学習用データセットに登録した写真。モザイクをかけた人物の顔写真が2枚並んでいる。

このおっさんを(繰り返し20回*2)*エポック10回でトレーニングする。
エポック2回ごとにLoRA モデルを作成。

下記のプロンプトをトレーニングに使用したらしいです。(メタデータ確認)

    "ss_tag_frequency": {
        "20_test2": {
            "3d": 4,
            "asian": 4,
            "black hair": 4,
            "clock": 4,
            "closed mouth": 4,
            "looking at viewer": 4,
            "male focus": 2,
            "photo inset": 2,
            "portrait": 2,
            "realistic": 4,
            "solo": 4,
            "lips": 2,
            "roman numeral": 2,
            "wing collar": 2
        }

エポック2回ごとにLoRA モデルを保存し、効果をプレビューで確認。

LoRA モデルの影響度は左から上:0.3、0.4、0.5、0.6、下:0.7、0.8、0.9、1にしています。

エポック2回

重みが0.3程度だとほぼ影響はない。0.8あたりで、構図が学習した写真に似てくる。

図64: LoRAの重みを0.3〜0.6まで変えたプレビュー画像。銀髪でヘッドセットをつけたメカ風の女の子が並ぶ。
図64: LoRAの重みを0.3〜0.6まで変えたプレビュー画像。銀髪でヘッドセットをつけたメカ風の女の子が並ぶ。
図65: 同じくLoRAの重みを0.7〜1まで上げたプレビュー。重みを強くしすぎると最後はキャラが消えて背景だけになってしまっている。
図65: 同じくLoRAの重みを0.7〜1まで上げたプレビュー。重みを強くしすぎると最後はキャラが消えて背景だけになってしまっている。
エポック4回

0.3でも構図が完全に学習した写真の影響を受けている。0.5からは、背景や髪の色も写真に近づいてくる。

図66: 別のLoRAの重み比較。頬杖をつく女性のイラストで、重みを上げるほど髪の色が銀から黒に変わっていく。
図66: 別のLoRAの重み比較。頬杖をつく女性のイラストで、重みを上げるほど髪の色が銀から黒に変わっていく。

0.7以降は写真そのまま。

図67: 重みをさらに強くした結果。学習に使った本人の顔(モザイク済み)がそのまま出てきてしまっている、過学習気味のプレビュー。
図67: 重みをさらに強くした結果。学習に使った本人の顔(モザイク済み)がそのまま出てきてしまっている、過学習気味のプレビュー。
エポック6回

0.6にて、顔がおっさんになっていく。
0.7以降は写真の男性を描画しているだけなので割愛。

図68: 別バリエーションの重み比較。紙を持った黒髪の女の子が並んでいる。
図68: 別バリエーションの重み比較。紙を持った黒髪の女の子が並んでいる。
エポック8回

エポック6回目の効果がさらに強く。0.7以降は割愛。

図69: 重みを0.3〜0.6まで上げていくプレビュー。徐々に学習元の人物の顔立ちに近づいていく様子が分かる。
図69: 重みを0.3〜0.6まで上げていくプレビュー。徐々に学習元の人物の顔立ちに近づいていく様子が分かる。
エポック10回

ほとんどエポック8回目と変わっていない。

図70: 同じ系統の重み比較。黒髪の女の子から学習元の顔に近づいていく変化が続く。
図70: 同じ系統の重み比較。黒髪の女の子から学習元の顔に近づいていく変化が続く。

img2img

ざっくりした落書きでポーズとか指定してイメージを生成。なんちゃらポーズもこれと同じ理屈なのかな。

図71: img2img用に描いたラクガキ風のスケッチ。白髪の棒人間っぽいキャラがピンクの服を着ている。
図71: img2img用に描いたラクガキ風のスケッチ。白髪の棒人間っぽいキャラがピンクの服を着ている。
図72: 上のスケッチをimg2imgで清書した結果。白髪に赤白の花柄トップス、黄色い羽織のしっかりしたイラストに仕上がっている。
図72: 上のスケッチをimg2imgで清書した結果。白髪に赤白の花柄トップス、黄色い羽織のしっかりしたイラストに仕上がっている。

図73: 別バリエーションのスケッチ。ピースサインをした白髪キャラの落書き。
図73: 別バリエーションのスケッチ。ピースサインをした白髪キャラの落書き。
図74: そのスケッチを清書した結果。白髪ツインテールで赤いビキニトップスの女の子になっている。
図74: そのスケッチを清書した結果。白髪ツインテールで赤いビキニトップスの女の子になっている。

図75: 青いショートパンツを描いたスケッチ版。
図75: 青いショートパンツを描いたスケッチ版。
図76: 清書後のイラスト。白髪ツインテールに赤いホルターネックトップスと青いプリーツスカート。
図76: 清書後のイラスト。白髪ツインテールに赤いホルターネックトップスと青いプリーツスカート。
図77: オレンジのビキニトップスと青いショートパンツのスケッチ。
図77: オレンジのビキニトップスと青いショートパンツのスケッチ。
図78: 清書結果。角の生えた白髪の女の子が黄色いホルターネックトップスと青いショートパンツ姿に。
図78: 清書結果。角の生えた白髪の女の子が黄色いホルターネックトップスと青いショートパンツ姿に。
図79: 別の清書結果。白髪ツインテールに赤いビキニトップスと青いショートパンツ、黒いチョーカーの女の子。
図79: 別の清書結果。白髪ツインテールに赤いビキニトップスと青いショートパンツ、黒いチョーカーの女の子。
図80: 腕を上げたポーズの清書結果。同じ白髪ツインテールキャラの赤いビキニと青いスカート姿。
図80: 腕を上げたポーズの清書結果。同じ白髪ツインテールキャラの赤いビキニと青いスカート姿。

図81: 刀を構えたポーズのスケッチ。ピンクのトップスに青いショートパンツ姿。
図81: 刀を構えたポーズのスケッチ。ピンクのトップスに青いショートパンツ姿。
図82: 清書結果。白髪の女の子が大きな刃物を構えていて、赤白のドット柄トップスに青とオレンジのスカートを合わせている。
図82: 清書結果。白髪の女の子が大きな刃物を構えていて、赤白のドット柄トップスに青とオレンジのスカートを合わせている。
図83: 赤い剣を振り上げたポーズのスケッチ。
図83: 赤い剣を振り上げたポーズのスケッチ。
図84: 清書結果。白髪ツインテールの女の子がミントグリーンのホルターネックトップスで赤い剣を構えている。
図84: 清書結果。白髪ツインテールの女の子がミントグリーンのホルターネックトップスで赤い剣を構えている。

図85: 黒いビキニトップスに青いショートパンツ、剣を持ったポーズのスケッチ。
図85: 黒いビキニトップスに青いショートパンツ、剣を持ったポーズのスケッチ。
図86: 清書結果。白と黒のビキニアーマー風トップス、青いミニスカートで赤い刀を構えている。
図86: 清書結果。白と黒のビキニアーマー風トップス、青いミニスカートで赤い刀を構えている。
図87: 灰色の刃物を構えたポーズのスケッチ。
図87: 灰色の刃物を構えたポーズのスケッチ。
図88: 清書結果。白い着物風トップスに水色の帯を巻いて赤い剣を持っている。
図88: 清書結果。白い着物風トップスに水色の帯を巻いて赤い剣を持っている。
図89: 清書結果。白い着物風トップスに水色の帯を巻いて赤い剣を持っている。
図89: 清書結果。白い着物風トップスに水色の帯を巻いて赤い剣を持っている。

図90: 黒いトップスに青いショートパンツで剣を構えたスケッチ。
図90: 黒いトップスに青いショートパンツで剣を構えたスケッチ。
図91: 清書結果。オフショルダーのクリーム色トップスに青いプリーツミニスカート、赤い柄の剣を持っている。
図91: 清書結果。オフショルダーのクリーム色トップスに青いプリーツミニスカート、赤い柄の剣を持っている。

どうも、肌色がくすんでたので、肌だと思ってもらえなかったようだ。

図92: ピンクのトップスに青いショートパンツ、剣を構えたスケッチ。
図92: ピンクのトップスに青いショートパンツ、剣を構えたスケッチ。
図93: 清書結果。クリーム色のホルターネックトップスと青いスカート、ニーソックス姿で赤い剣を構えている。
図93: 清書結果。クリーム色のホルターネックトップスと青いスカート、ニーソックス姿で赤い剣を構えている。

構図があれば、割といい感じ。
変なフォントが発生しているのは、きっとネタ元の影響なんだろうな。

図94: 刀を構えたポーズの横長スケッチ。ピンクのトップスに青いショートパンツ。
図94: 刀を構えたポーズの横長スケッチ。ピンクのトップスに青いショートパンツ。
図95: 清書結果の横長イラスト。白い衣装に青いスカートの女の子が刀を構えているワンピイラスト風の一枚。
図95: 清書結果の横長イラスト。白い衣装に青いスカートの女の子が刀を構えているワンピイラスト風の一枚。

解像度を上げるとすごくきれいなんだけど、基本バグる。

図96: 同じキャラクターの顔アップ。赤い瞳で笑っている表情がよく分かる。
図96: 同じキャラクターの顔アップ。赤い瞳で笑っている表情がよく分かる。

いや、ブッコみはプロンプトのせいかも。
彼女は彼女の腰に侍の刀を携えて。。。みたいに彼女がたくさんでてきたから?

図97: img2imgの画面。左側にスケッチを読み込み、右側に生成結果が表示されている。刀を構えた女の子が2人並んだ構図になっている。
図97: img2imgの画面。左側にスケッチを読み込み、右側に生成結果が表示されている。刀を構えた女の子が2人並んだ構図になっている。

プロンプトだな。

図98: 同じくimg2imgで生成中の画面。進捗6%と表示されている。
図98: 同じくimg2imgで生成中の画面。進捗6%と表示されている。

とはいえ、細かいところでバグる。

図99: img2imgの生成が完了した画面。クリーム色のビキニトップスに青いショートパンツで刀を構えた女の子が1人だけの構図になっている。
図99: img2imgの生成が完了した画面。クリーム色のビキニトップスに青いショートパンツで刀を構えた女の子が1人だけの構図になっている。

路線と構図変えよう。

図100: ヘッドホンをつけたポーズのスケッチ。ピンクのトップスに青いショートパンツ。
図100: ヘッドホンをつけたポーズのスケッチ。ピンクのトップスに青いショートパンツ。

いい感じ。

図101: 清書結果。白髪ツインテールの女の子が赤いロゴ入りの白いタンクトップと青いデニムショートパンツでヘッドホンをつけている。
図101: 清書結果。白髪ツインテールの女の子が赤いロゴ入りの白いタンクトップと青いデニムショートパンツでヘッドホンをつけている。

なんか途中からアキラのテツオみたいになる傾向に。

絵に加筆した時にできる塗りムラが余計なノイズになった?

図102: img2imgの画面。左にヘッドホン姿のスケッチ、右には大量の生成結果がぎっしり並んだサムネイルグリッドが表示されている。
図102: img2imgの画面。左にヘッドホン姿のスケッチ、右には大量の生成結果がぎっしり並んだサムネイルグリッドが表示されている。

いや、このスイッチや。

図103: img2imgの設定を拡大表示。Restore facesとTilingにチェックが入っている。
図103: img2imgの設定を拡大表示。Restore facesとTilingにチェックが入っている。
図104: img2imgの生成結果。白髪ツインテールでヘッドホンをつけた女の子が、赤いリボンと白いクロップトップ、黒いショートパンツ姿になっている。
図104: img2imgの生成結果。白髪ツインテールでヘッドホンをつけた女の子が、赤いリボンと白いクロップトップ、黒いショートパンツ姿になっている。

塗りムラがあると原因不明の水しぶきとか発生するので、基本べた塗。
ムラに敏感なモデルとかありそうです。

かわいいけど、謎。

図105: 別バリエーションの生成結果。赤白のロゴ入りクロップトップに黒いショートパンツ、水しぶきの背景で決めポーズ。
図105: 別バリエーションの生成結果。赤白のロゴ入りクロップトップに黒いショートパンツ、水しぶきの背景で決めポーズ。

ムラなくしたのに。。。一人増えた。
プロンプトの指定がまずいのかも。

図106: 同じスケッチからの生成結果を並べたところ。ヘッドホン姿の女の子が2パターン表示されている。
図106: 同じスケッチからの生成結果を並べたところ。ヘッドホン姿の女の子が2パターン表示されている。

プロンプトに右が左がみたいなこと書いたから、複数だと思ったか?

図107: 別バリエーション。白いトップスに黄緑と黄色のショートパンツを合わせたヘッドホン姿の女の子。
図107: 別バリエーション。白いトップスに黄緑と黄色のショートパンツを合わせたヘッドホン姿の女の子。

たまにこれが出るけど、プロンプトを修正するとだいたい収まる。

modules.devices.NansException: A tensor with all NaNs was produced in VAE. This could be because there’s not enough precision to represent the picture. Try adding –no-half-vae commandline argument to fix this. Use –disable-nan-check commandline argument to disable this check.

modules.devices.NansException: すべて NaN を持つテンソルが VAE で生成されました。 これは、画像を表現するのに十分な精度がないことが原因である可能性があります。 これを修正するには、 –no-half-vae コマンドライン引数を追加してみてください。 このチェックを無効にするには、 –disable-nan-check コマンドライン引数を使用します。

モデルをマージしてみた。

メガテンみたいだ。

図108: チェックポイント選択サムネイルの「nabimix_v2」。黒髪に赤黒の悪魔羽根衣装の女の子がサムネイルになっている。
図108: チェックポイント選択サムネイルの「nabimix_v2」。黒髪に赤黒の悪魔羽根衣装の女の子がサムネイルになっている。

CHECKPOINT:
nabimix_v2.safetensors

図109: チェックポイント選択サムネイルの「CounterfeitV30_v30」。庭で頬に手を当てる白髪の女の子。
図109: チェックポイント選択サムネイルの「CounterfeitV30_v30」。庭で頬に手を当てる白髪の女の子。

CHECKPOINT:
CounterfeitV30_v30.safetensors

図110: チェックポイント選択サムネイルの「breakdomainanime_A0440」。黒髪の女の子が街並みを背景にこちらを見ている。
図110: チェックポイント選択サムネイルの「breakdomainanime_A0440」。黒髪の女の子が街並みを背景にこちらを見ている。

CHECKPOINT:
breakdomainanime_A0440.safetensors

図111: Counterfeit-V2.5のVAEサンプル画像。白髪の女の子が花の咲く庭で頬杖をついている。
図111: Counterfeit-V2.5のVAEサンプル画像。白髪の女の子が花の咲く庭で頬杖をついている。

VAE:
Counterfeit-V2.5.vae.pt

図112: Checkpoint Mergerタブの画面。nabimix_v2、CounterfeitV30、breakdomainanime_A0440の3つを重み0.5で合成し、「uniuni_mix」という名前で保存する設定になっている。
図112: Checkpoint Mergerタブの画面。nabimix_v2、CounterfeitV30、breakdomainanime_A0440の3つを重み0.5で合成し、「uniuni_mix」という名前で保存する設定になっている。
図113: 合成したばかりのチェックポイント「uniuni_mix」のサムネイル。まだプレビュー画像がなく「NO PREVIEW」と表示されている。
図113: 合成したばかりのチェックポイント「uniuni_mix」のサムネイル。まだプレビュー画像がなく「NO PREVIEW」と表示されている。

比較のため、元になったモデルで公開されているタグを使って画像を比較。

図114: Civitaiの投稿詳細画面。NabiMixで生成した赤黒の悪魔羽根の女の子の画像と、プロンプトやサンプラー、CFG、シードなどの生成データが表示されている。
図114: Civitaiの投稿詳細画面。NabiMixで生成した赤黒の悪魔羽根の女の子の画像と、プロンプトやサンプラー、CFG、シードなどの生成データが表示されている。

右下にある、コピーをクリックして詳細を取得。

これを見ると、画像生成のあと、アップスケールもしている模様。

(masterpiece, best quality), 1lady, solo, (white scaly body), halo, wings,fallen angel,
 black hair, loose waves, red eyes, (dragon, art by hermann nitsch, zdzislaw beksinski,
 dariusz zawadzki, giger), big breasts, naked
Negative prompt: 
(worst quality, low quality:1.2), negative_hand-neg, verybadimagenegative, nsfw
ENSD: 31337, 
Size: 512x768, 
Seed: 2493052212, 
Model: NabiMix_V2, 
Steps: 30, 
Version: v1.2.1, 
Sampler: DPM++ 2M Karras, 
CFG scale: 6, Clip skip: 2, 
Model hash: 06dc6ec91d, 
Denoising strength: 0.32, 
SD upscale overlap: 64, 
SD upscale upscaler: R-ESRGAN General WDN 4xV3

Hries fix にチェックをいれて、設定を追加。

図115: WebUIのHires.fix設定。アップスケーラーはR-ESRGAN General 4xV3、512x768から1024x1536にリサイズ、Denoising strength 0.32に設定されている。
図115: WebUIのHires.fix設定。アップスケーラーはR-ESRGAN General 4xV3、512×768から1024×1536にリサイズ、Denoising strength 0.32に設定されている。

こんな感じでしょうか。

R-ESRGAN General WDN 4xV3 はSetting で有効にしないと出てこない。

図116: WebUIの設定画面のUpscalingページ。タイルサイズやオーバーラップのスライダー、使用するReal-ESRGANモデルのチェックボックスが並んでいる。
図116: WebUIの設定画面のUpscalingページ。タイルサイズやオーバーラップのスライダー、使用するReal-ESRGANモデルのチェックボックスが並んでいる。

CLIP step の設定。
処理するレイヤーをどこまでにするかを決める。大きい数ほど無視するレイヤーが多くなる。

図117: WebUIの設定画面、クイック設定リストの候補一覧。CLIP_stop_at_last_layersなどにチェックが入っていて、下に選択済みのタグが並んでいる。
図117: WebUIの設定画面、クイック設定リストの候補一覧。CLIP_stop_at_last_layersなどにチェックが入っていて、下に選択済みのタグが並んでいる。

なんか違うなーっと思ってたら、VAEが指定されていた。
発色がよくなった。

図118: 赤黒の悪魔羽根衣装の女の子のイラスト。輪光を頭上に浮かべたポーズで、さっきと似た構図のバリエーション。
図118: 赤黒の悪魔羽根衣装の女の子のイラスト。輪光を頭上に浮かべたポーズで、さっきと似た構図のバリエーション。
図119: 同じキャラクターの別バリエーション。瞳の色や光の当たり方が少し違う。
図119: 同じキャラクターの別バリエーション。瞳の色や光の当たり方が少し違う。

同じ条件でマージしたモデルを使用して画像を生成してみる。
タッチがすごく違う。

図120: さらに別のバリエーション。後光が差す中で羽根を広げたドラマチックな構図。
図120: さらに別のバリエーション。後光が差す中で羽根を広げたドラマチックな構図。

img2img での比較。

ベースになったCHECPOINT(覚えている範囲)

図121: ヘッドホンをつけた白髪ツインテールの女の子。三日月模様のクロップトップと水色リボンの白いショートパンツ姿。
図121: ヘッドホンをつけた白髪ツインテールの女の子。三日月模様のクロップトップと水色リボンの白いショートパンツ姿。
図122: ヘッドホン姿の女の子の別バリエーション。水色のクロップトップにデニムショートパンツ。
図122: ヘッドホン姿の女の子の別バリエーション。水色のクロップトップにデニムショートパンツ。
checkpointnabimix_v2
VAEBerrysMix
sampling method左:DPM++ 2M SDE Karras、右:Euler a
解像度1920 * 1080
seed 1199008446
図123: 同じキャラクターの黄色いクロップトップバージョン。青いデニムショートパンツに黒いチョーカー。
図123: 同じキャラクターの黄色いクロップトップバージョン。青いデニムショートパンツに黒いチョーカー。
図124: ピンクのクロップトップバージョン。青いデニムショートパンツで腰に手を当てている。
図124: ピンクのクロップトップバージョン。青いデニムショートパンツで腰に手を当てている。
checkpointCounterfeitV30
VAECounterfeit-V2.5
sampling method左:DPM++ 2M SDE Karras、右:Euler a
解像度1920 * 1080
seed1199008446
図125: 髪型が少し変わったバージョン。白いタンクトップに黒いブラがのぞき、水しぶきの中に立っている。
図125: 髪型が少し変わったバージョン。白いタンクトップに黒いブラがのぞき、水しぶきの中に立っている。
図126: 白黒のビキニトップにダークカラーのショートパンツ、水しぶきの背景バージョン。
図126: 白黒のビキニトップにダークカラーのショートパンツ、水しぶきの背景バージョン。
checkpointbreakdomainanime_A440
VAEklF8Anime2VAE_klF8Anime2VAE.ckpt
sampling method左:DPM++ 2M SDE Karras、右:Euler a
解像度1920 * 1080
seed1199008446
図127: カメラのようなペンダントを首から下げたバージョン。白いタンクトップと青いデニムショートパンツで、落ち葉が舞う中に立っている。
図127: カメラのようなペンダントを首から下げたバージョン。白いタンクトップと青いデニムショートパンツで、落ち葉が舞う中に立っている。
図128: 白いタンクトップに黒いショートパンツのバージョン。水しぶきを浴びながらこちらを見ている。
図128: 白いタンクトップに黒いショートパンツのバージョン。水しぶきを浴びながらこちらを見ている。
checkpointtoonyou_beta3
VAEAotomatic
sampling method左:DPM++ 2M SDE Karras、右:Euler a
解像度1920 * 1080
seed1199008446

今回マージしたCHECPOINT

図129: 黄色いクロップトップと青いデニムショートパンツのバージョン。チョーカーをつけている。
図129: 黄色いクロップトップと青いデニムショートパンツのバージョン。チョーカーをつけている。
図130: ピンクのクロップトップと青いデニムショートパンツのバージョン。
図130: ピンクのクロップトップと青いデニムショートパンツのバージョン。
checkpointuniuni_mix(仮)
VAECounterfeit-V2.5
sampling method左:DPM++ 2M SDE Karras、右:Euler a
解像度1920 * 1080
seed1199008446
図131: 白いタンクトップと濃い色のデニムショートパンツのバージョン。
図131: 白いタンクトップと濃い色のデニムショートパンツのバージョン。
図132: ピンクのクロップトップのバージョン、腰に手を当てたポーズ。
図132: ピンクのクロップトップのバージョン、腰に手を当てたポーズ。
checkpointuniuni_mix_V2(仮)
VAECounterfeit-V2.5
sampling method左:DPM++ 2M SDE Karras、右:Euler a
解像度1920 * 1080
seed1199008446
図133: 白いタンクトップに黒いブラがのぞくバージョン、ダークカラーのショートパンツ。
図133: 白いタンクトップに黒いブラがのぞくバージョン、ダークカラーのショートパンツ。
図134: ピンクのクロップトップと黒いショートパンツの組み合わせバージョン。
図134: ピンクのクロップトップと黒いショートパンツの組み合わせバージョン。
checkpointuniuni_mix_V3(仮)
VAECounterfeit-V2.5
sampling method左:DPM++ 2M SDE Karras、右:Euler a
解像度1920 * 1080
seed1199008446

DIMM よくね?

uniuni

図135: 別キャラクターのイラスト。白髪に角の生えた女の子が、グレーのオフショルダートップスと黒いショートパンツ、黒いコウモリ羽根のケープをまとっている。
図135: 別キャラクターのイラスト。白髪に角の生えた女の子が、グレーのオフショルダートップスと黒いショートパンツ、黒いコウモリ羽根のケープをまとっている。

図136: WebUIのチェックポイント/VAE選択欄。「nabimix_v2.safetensors」と「BerrysMix.vae.safetensors」が選ばれている。
図136: WebUIのチェックポイント/VAE選択欄。「nabimix_v2.safetensors」と「BerrysMix.vae.safetensors」が選ばれている。
図137: 同じ角の生えた女の子の別バージョン。舌を出したポーズで、周りに小さなコウモリが飛んでいる。
図137: 同じ角の生えた女の子の別バージョン。舌を出したポーズで、周りに小さなコウモリが飛んでいる。
図138: チェックポイント/VAE選択欄。「cetusMix_v4.safetensors」と「kl-f8-anime2.vae.pt」が選ばれている。
図138: チェックポイント/VAE選択欄。「cetusMix_v4.safetensors」と「kl-f8-anime2.vae.pt」が選ばれている。
図139: 角の生えた女の子のイラスト。グレーのオフショルダートップスに黒いコウモリ羽根のケープを羽織っている。
図139: 角の生えた女の子のイラスト。グレーのオフショルダートップスに黒いコウモリ羽根のケープを羽織っている。
図140: チェックポイント/VAE選択欄。「breakdomainanime_A0440.safetensors」と「kl-f8-anime2.vae.pt」が選ばれている。
図140: チェックポイント/VAE選択欄。「breakdomainanime_A0440.safetensors」と「kl-f8-anime2.vae.pt」が選ばれている。
図141: 同じ角の生えた女の子を2パターン並べた比較画像。左は黒装束に赤い瞳、右は色味が薄いゴースト風のバリエーション。
図141: 同じ角の生えた女の子を2パターン並べた比較画像。左は黒装束に赤い瞳、右は色味が薄いゴースト風のバリエーション。
図142: チェックポイント/VAE選択欄。「uniuni_mix.safetensors」と「Counterfeit-V2.5.vae.pt」が選ばれている。
図142: チェックポイント/VAE選択欄。「uniuni_mix.safetensors」と「Counterfeit-V2.5.vae.pt」が選ばれている。
図143: 角の生えた女の子のイラスト。白髪に黒い衣装、黒いコウモリ羽根のケープで赤い瞳が印象的。
図143: 角の生えた女の子のイラスト。白髪に黒い衣装、黒いコウモリ羽根のケープで赤い瞳が印象的。
図144: チェックポイント/VAE選択欄。「uniuni_mix_V2.safetensors」と「Counterfeit-V2.5.vae.pt」が選ばれている。
図144: チェックポイント/VAE選択欄。「uniuni_mix_V2.safetensors」と「Counterfeit-V2.5.vae.pt」が選ばれている。
図145: 同じキャラクターの別バージョン。頭に赤い角飾りがついた白髪の女の子が黒い衣装とコウモリ羽根のケープをまとっている。
図145: 同じキャラクターの別バージョン。頭に赤い角飾りがついた白髪の女の子が黒い衣装とコウモリ羽根のケープをまとっている。

X/Y/Z plot

こういった比較をするために、XYZ プロットがあることを、後々知る。

図146: X/Y/Zプロットの設定画面。X軸はCheckpoint name、Y軸はSampler、Z軸はVAEで、複数のチェックポイントとサンプラー、VAEを組み合わせて比較する設定になっている。
図146: X/Y/Zプロットの設定画面。X軸はCheckpoint name、Y軸はSampler、Z軸はVAEで、複数のチェックポイントとサンプラー、VAEを組み合わせて比較する設定になっている。

XYZ軸それぞれにパラメータを指定しておくと、値のリストにしたがって順次実行してくれるというもの。
上記の例では、それぞれの値のリストを切り替えながら、総当たりで画像生成してくれる。
(あまり指定しすぎると、メモリエラーでエラーになります。)

図147: X/Y/Zプロットの設定画面。X軸をFace restoreにして値を1〜5で比較する設定になっている。
図147: X/Y/Zプロットの設定画面。X軸をFace restoreにして値を1〜5で比較する設定になっている。

値が数値の場合は、こんな感じでかける。

指定した値を順番に反映「1,2,3,4,5」
指定した値の範囲を指定の増分で反映「1-5(+0.5)」

(Visited 64 times, 1 visits today)
タグ:

「画像生成AI ローカル構築のメモ」への1件のフィードバック

  1. ピンバック: stable-diffusion-webui 引っ越しで、起動エラーになる。 – .zapping

コメントを残す

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