stable diffusion ControlNet で深度を使って思い通りの構図で生成しよう
深度『depth』とは
深度「depth]とは元画像から奥行情報を抜きだしてイラストの生成を行う機能です。元画像の奥行きや構図を活かしたいときにおすすめです。
depthの使い方
まず、好きな構図のイラストを用意します。今回は以前生成した空飛ぶ女の子のイラストを使用します。
ControlNetの◀をクリックして開きます。有効化にチェックを入れ、深度をクリックします。画像を挿入したら細かい調整をしていきます。
グラボのメモリが心配な方は低VRAMにチェックをしておきましょう。(僕はRTX3060でチェックなしで問題無く動いてくれます。)
プリプロセッサが4つありますので自分の出力したい構図に合うものを選択します。今回はプリプロセッサの”depth_leres++”を選択して生成してみます。
プリプロセッサの欄の横にある💥を押すとプレビューが出ます。
上のイラストからこのように深度情報が可視化したマップが作成されます。手前ほど白く、後ろに行くほど黒く描写されます。元のイラストの色や細かい造形などの情報はそぎ落とされるので、同じ構図で全く違ったイラストを生成できます。
プレビューの深度マップ画像でよさそうだったらイラストを生成します。(いまいちな時の調整方法は後述します)
イラスト生成
先に完成のイラストです。
元イラストの構図でシーンが宇宙になりました。
深度マップが複雑なのでプロンプトで補強しました。
このイラストを生成する手順を解説していきます。
1.t2iでControlNetを有効化してイラスト生成
高解像度化はまだしません。いいイラストがでるまでガチャします。コントロールネットの設定も解像度上げました。(構図が複雑で足を認識してくれなかったので)なかなかいい構図は難しいです。
設定
Steps: 30
Sampler: DPM++ 2M SDE
CFG scale: 5
Size: 612x344
CN設定
プリプロセッサ: depth_leres++
モデル: control_v11f1p_sd15_depth_fp16 [4b72d323]
Preprocessor Resolution: 1000
あとはデフォルト
2.構図が決まったら、同シード値で高解像度化
さらにCNtileで精密にし、高解像度化もします。
CNの設定画面でTileを選択します。プリプロセッサはなしで大丈夫です。
高解像度補助をONに。
Hires upscale: 2
Hires steps: 15
Hires upscaler: Latent
ノイズ除去強度: 0.4
生成されたイラストがこちら
3.i2iとtilediffusionで高解像度化。
i2iにイラストを送り、さらに解像度を上げます。Tiled Diffusionで大きくするので、i2iの設定では等倍にしておきます。
Steps: 30
Sampler: DPM++ SDE
CFG scale: 3.5
ノイズ除去強度: 0.3
Tiled Diffusion
タイル幅: 96
タイルの高さ: 96
タイルの重なり: 45
バッチサイズ: 4
アップスケーラー: Lanczos
倍率: 2
Tiled Diffusionの設定はほぼデフォルトなので今後いろいろ試していきたいです。
完成
髪色は癖です。
この情報が少しでもみなさんのお役に立てたらうれしいです。