SDXL版はこちら。
はじめに
前回の進化版です。touch-sp.hatenablog.com
手をきれいに描くためにはcanny2imageでのエッジ検出の閾値を低く設定する必要がありました。
そうするとその他の部分も忠実に元画像が再現されてしまうので似たような画像が大量にできていしまいます。
一方scribble2imageを使うとある程度バラエティに富んだ画像ができますが手がきれいに描がけませんでした。
今回はMulti-ControlNetで「いいとこどり」をしてみます。
元画像
元画像はぱくたそから使わせて頂きました。
こちらの画像です。
方法
canny2image用の画像とscribble2image用の画像の作成
canny2image用の画像を作る方法はこちら。scribble2image用の画像を作る方法はこちら。
マスク画像の作成
以下のようなマスク画像を作成します。簡単に作成するためにPythonスクリプトを書きました。
こちらです→「multiple_square_mask.py」
python multiple_square_mask.py --image canny.png
マウスで囲ってスペースキーを押していくだけです。
マスク画像の適応
canny2image用の画像とscribble2image用の画像に対してマスク画像を適用させます。左二つの画像から右の画像を作成しました。
簡単に作成するためにPythonスクリプトを書きました。
こちらです→「apply_mask.py」
python apply_mask.py --mask canny_mask.png --image canny.png --reverse python apply_mask.py --mask canny_mask.png --image scribble.png
Multi-ControlNetの実行
簡単に実行するためにPythonスクリプトを書きました。こちらです→「multi_controlnet.py」
このように実行します。
python multi_controlnet.py ^ --model model\anything-v4.0 ^ --vae vae\anime2_vae ^ --controlnet controlnet\sd-controlnet-canny controlnet\sd-controlnet-scribble ^ --image mask_canny.png mask_scribble.png ^ --prompt prompt.txt ^ --n_samples 10
以下を記入した「prompt.txt」というテキストファイルを用意してスクリプトから読み込んでいます。
a beautiful girl wearing high neck sweater