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