SDXLでControlNetのScribble/Sketchモデルを使用する手順と生成される画像を紹介します。
SDXLのControlNetが利用できるようになりましたが、当初は利用できるモデルが少ない状況でしたが、
最近になりControlNetのモデルが提供される状況になりました。
この記事では、Scribble/Sketchモデルを使用してラフ画像をもとに画像を生成する手順を紹介しつつ、どの程度ラフがを反映した画像が生成できるかを確認します。
ControlNetをインストールします。手順はこちらの記事を参照してください。
SDXL用のControlNetのモデルをインストールします。
(https://huggingface.co/lllyasviel/sd_control_collection)からダウンロードします。
今回は以下のモデルを利用します。
今回は下図のラフ画像を利用します。右側にキャラクターがいて、画面中央に高い塔があるイメージです。左右のもじゃもじゃは雲のつもりです。
ControlNetの枠を開きます。[ここに画像をドロップ]のエリアに準備したラフ画像をドロップします。
[Preprocessor]と[Model]のドロップダウンボックスを設定します。[Preprecessor]には"scribble_hed"を指定します。[Model]は今回利用する5種類のモデルを変えながら、画像生成をします。
[Preprocessor]のドロップダウンリストボックスの右側の[Run preprocessor]ボタン(火花のアイコンのボタン)をクリックして、プロプロセッサを実行します。
右側にプロプロセッサのプレビューイメージが表示されます。
今回は[Ending Control Step]を"0.8"に設定します。画像生成で80%以降の処理ではControlNetの影響を与えない動作にします。
設定ができたら、[Enable]のチェックボックスをクリックして手チェックをつけ、ControlNetの制御を有効にします。
以下のプロンプトを利用します。
Scribble/Sketchのモデルを変更しながら画像を生成します。
以下の画像が生成できました。
ControlNetが無効の状態のため、ラフの画像は無視して画像生成されています。ControlNetがない場合でもプロンプト通りの画像が生成できていない感じがあります。
おそらくアニメ的な絵の学習量が少ないためと考えられます。
元のラフの線が見えてしまっています。
元のラフの線が見えてしまっています。
ラフの線がそのまま残っています。ややイメージ通りの画像になっている印象です。
色が意図した色とはだいぶ違います。ラフの線もそのままの状態で見える部分があります。
色が意図した色とはだいぶ違います。ラフの線もそのままの状態で見える部分があります。
SDXLの場合は、意図した画像が生成できているケースが少ないです。おそらく、アニメ絵の学習が少ない可能性が考えられます。
以下のプロンプトにすると生成結果が改善されます。
モデルをConterfeit XLに変更して画像生成を実行します。
ControlNetなし状態でもイメージに近い画像が生成されています。ラフ画像の影響はないため、キャラクターが中央に配置されています。
ラフの線が見えてしまっているケースがあります。
ラフの線が見えてしまっているケースがあります。
線で描画されているケースもありますが、なかなか良い出力結果です。
ラフとは違う構図で出力されてしまう場合もありますが、意図したとおりの出力もあります。
こちらも意図に近い画像が生成できています。
ControlNetのScribble/Sketchモデルを使用してラフをもとにした画像生成ができました。
出力した画像を使用して完成まで作業します。
生成された画像の中からこちらの画像を選定しました。(kohya_controllllite_xl_scribble_anime で生成した画像のうちの1枚です)
塔にディティールをもう少し追加したいので、ペイントアプリケーションで書き込みを追加します。
画像を img2imgに設定します。ControlNetのLineArtを適用し画像の構図の変化を縛ります。下図の画像を生成します。
キャラクターの顔の部分をinpaintで修正します。'looking at viewer'で生成し、こちらを向いている状態にします。
Tiled Diffusionで2倍にアップスケールします。塔の中腹にキャラクターが生成されてしまっているので、除去します。
今回はinpaintで除去していますが、ペイントアプリケーションで塗りつぶしてもよいと思います。
もう一回アップスケーラーをかけて2倍のサイズにします。3840x1600のサイズになります。
ペイントアプリで編集して出来上がりです。