見出し画像

【ローカル】Stable Diffusion テクニック10選【無料ソフトウェアのみ】

はじめに

新しいものではありませんが、Stable Diffusion の基本テクニックをまとめてみました。

この記事で利用するソフトウェアは、

  • Stable Diffusion webUI(または forge)

  • IOPaint

  • Ollama Open WebUI(ローカル LLM)

です。

① 同じキャラクターの生成その1

他の生成システムでも同じですが、一度に生成してコンシステンシーを保つやり方です。

ControlNet openpose を利用する

② 同じキャラクターの生成その2

ControlNet の「reference」機能を利用します。IPadapter より簡単です。

ControlNet reference を利用する

③ 光源の指定

光源データを img2img 元として ControlNet を組み合わせ利用するテクニックです。

光源ファイル(ただの白黒グラデーション)を用意します。ControlNet で指定する人物形状を優先するため、denoising strength は 95 程度に指定します。

光源

人物の形状だけを利用するため、ControlNet で Depth マップを利用します。さらに Openpose + Cany も利用すれば、より強力に形状を維持できます。

人物の形状のみを利用

④ アウトペイントで構図を変える

OpenOutpaint

プロンプトだけで構図を指定するのは難しいので、アウトペイントを利用した構図変更を利用します。文字を入れる場所を確保する場合や、画像比率を変えたい場合に便利です。

アウトペイントは、Stable Diffusion webUI 付属のスクリプト、ControlNet を利用するものがありますが、筆者は OpenOutpaint (機能拡張)を好んで利用しています。下記記事に導入方法を記載しています。

⑤ ポスト修正

IOPaint が便利です。これも下記記事に導入方法を記載しています。

AIアーティファクト・ゴミの削除

ゴミの削除(lama モデル)

文字の置換・修正

AnyText モデル

⑥ プロンプトをAIに推測させる

Stable Diffusion が利用する BLIP/CLIP で画像プロンプトを推測させる方法もありますが、ローカル LLM llava モデルで利用する方法もあります。llava はかなり高性能で、かなり詳細に文章で表現してくれます。

Ollama Open WebUI 画像のコピペで貼り付けられます

Ollama コマンドを利用する場合は、

ollama pull llava-llama3

Open WebUI の GUI で導入する場合は、Ollama.com からモデルをプルで可能です。

Ollama Open WebUI

WSL2 が利用可能であれば、下記方法でローカル Ollama + Open WebUI が利用可能です。ただし、Docker Desktop をインストールしている場合や環境依存でローカルアドレス名が変わったりするので、注意が必要です。

⑦ リアル→アニメ、アニメ→リアルの活用

Stable Diffusion では様々な画風に合わせた多くのモデルを利用できるので、それらをベースにして多彩な画像を生成する事ができます。

特に、リアル系モデルでは単調になりがちなので、アニメやアーティスティック風のモデルで動的な構図を作成した後に、img2img でリアル風に変更します。

アニメ→リアル の img2img

⑧ 3Dモデルとの合成修正

Depth マップ等を利用して簡易3D化後に3Dモデルと合成するやり方です。

修正後

面倒この上ない修正方法ですが、リアル系画像の究極の修正方法なので修正できないものはありません

手を修正する方法は他にも幾つかありますが、ガチャ運任せである事と、基本的に単純な形状しか修正できないため、他のオブジェクトと複雑に重なっている場合は、3Dを直接操作して正しい形状を作ってやるしかありません。

⑨ 背景コンテキストの修正

AIで生成した画像は、地平線などの背景のコンテキストがおかしくなります。前景と背景に分けて分離して修正する方法です。

⑩ フォトアップスケーラの利用

Stable Diffusion webUI には、デフォルトでいくつかの Real-ESRGAN や SwinIR などのアップスケーラモデルが入っていますが、これらはどれも低画質→高画質でチューニングしたモデルなので、高画質な画像に適用すると逆にのっぺりしたりぼやけてしまったりします。

そこで、高画質の写真(8K→2K)のセットで学習したアップスケーラモデルを利用すると、Stable Diffusion 単体だけでは出せないリアルさを出せます。

4xNomos8kHAT-L_otf アップスケーラ(左:適用前、右:適用後)

おすすめのモデルです。

  • 4x_NMKD-Superscale-SP_178000_G.pth(ESRGANモデル)

    • 低画質な画像に適用すると、ノイズを増幅してしまいますが、img2img 用のアップスケーラとして利用すると、そのノイズがプラス(詳細部の表現)に作用するようです。「models/ESRGANフォルダ」に保存すると Stable Diffusion webUI で利用可能です。

  • 4xNomos8kSCHAT-L.pth(HATモデル)

    • 筆者が知る限り、もっとも高品質なアップスケーラモデルです。ただし遅いです。また、HAT モデルであるため Stable Diffusion webUI では利用できません。ComfyUI で利用可能です。

  • 4xNomosUniDAT_otf.pth(DATモデル)

    • 上記と同じ画像セットの DAT モデルです。Stable Diffusion webUI で利用可能です。forge では利用できません。

コツはアップスケール前の画像サイズを調整する事です。Stable Diffusion と同じで、学習時と同じスケールになった時に最大のパフォーマンスを出します。

さらに調整する場合は、複数のアップスケーラの結果をコンポジションすると、より良くなります。ComfyUI などでノードを組んでも良いですが、Gimp などの画像エディタで手作業の選択的修正を行った方が品質は良くなります。

この記事が気に入ったらサポートをしてみませんか?