ラフ画像をクリンナップ / ペン入れする (背景・風景シーン) - Stable Diffusion
Stable Diffusion を利用して、ラフ画像をクリンナップ/ ペン入れする処理を検証します。
概要
Stable DiffusionのSDXLモデルの学習が進んだことや新しいワークフローやシナリオが登場したことで、
今までとは違う利用方法が登場してきています。
今回、SDXLのControlNetの新しいモデルを利用して、ラフ画像のクリンナップ(クリンアップ)を生成処理でできないかを検証します。
この記事では、風景シーンのクリンナップを紹介します。
事前準備
ラフ画像の準備
今回以下のラフ画像を利用します。
景色の画像です。街並みとタクシーと街路樹です。かなり適当な迷い線のあるラフ画像を用意しました。
構図が特殊で、坂を下った後に遠くでは登り坂になり、地平線がかなり高い位置になっています。
画像は出力サイズと同じサイズで作成します。今回は1,024x640ピクセルの画像としています。
手順:Cannyを利用する方法
ControlNetのインストールと、以下のControlNetを準備します。
- control-lora-canny-rank256 [モデルハッシュ:ec2dbbe4]
Stable Diffusion Web UIを表示し、[img2img]のタブをクリックして選択します。
入力画像に準備したラフ画像を設定します。
ControlNetのパネルを開き、設定します。
[Enable]のチェックを有効にします。[Preprocessor]に"canny"を設定し、[Model]に"control-lora-canny-rank256"を設定します。
[Resolution]を1024に設定します。
プロンプト
プロンプトを準備します。ラフ画像は荒いことと、描き手が想像しているイメージが
ラフ画像には反映されていない(描くのが面倒なので描かれていない)ケースもあるため、
ラフ画像に描画されている内容以上の細かい状況をプロンプトに記述します。
プロンプト、Sampling Methodは以下の設定とします。
Prompt and Settigns
Prompt:lineart, realistic, clean clear lines, monochrome, white background, european downtown, uphill road, road, taxi, Roadside tree, apartment building, city in the distance, background scene, hires, detailed
Negative prompt:worst quality, low quality, (rough:1.2), (sketch:1.2), text, mountain, lowres
Size:1,024 x 640
Sampling method: DPM++ 2M, Schedule type: Karras
Denoising strength:0.9
生成結果
モノクロ線画の場合、うまく出力できないモデルがあったり、線の出方がモデルによって大きく異なるため、複数のモデルで生成結果を確認します。
Pony系のモデルでは、白黒写真的な出力になるため、今回はPony系ではないモデルで検証しています。
Animagine XL v3.0
一番良い結果になると想定していましたが、思ったほど意図した出力にはなりませんでした。
カラー画像の出力は得意ですが、キャラクターものではない、モノクロ線画の出力はやや苦手なのかもしれません。
Async's Mix v3.1
意図した構図に完全にマッチする結果は得られませんでしたが、想定イメージにかなり近い画像が生成できています。
AnimaPencil v4.0.0
意図した構図に完全にマッチする結果は得られませんでしたが、かなりイメージに近い画像が生成できています。weight:1.0では、ControlNetの影響が強すぎて線が出にくい印象です。
DreamShaper XL v2.1
想定していた構図の画像は得られませんでしたが、画像のクオリティとしてはかなり良い印象です。
SDXL Yamer's Anime Stage Anima
線画よりもフォトリアリスティック感が若干強いかなという仕上がりです。Weight:1.0では線が出にくい印象があります。狙った構図と完全な一致は無いですが、良好な結果です。
Nova Anime XL v1.0
意図した構図に完全にマッチする結果は得られませんでしたが、イメージに近い画像が生成できています。weight:1.0では、ControlNetの影響が強すぎて線が出にくい印象です。
若干線が細く細かい印象もありますが、良好な結果です。
3x3mix xl type a v1.0
線画というよりも絵画的な出力になる傾向です。意図した構図に近い出力もあり、イメージに近い画像を生成できています。
一方で、もう少し線画感が欲しかったり、モアレ状のノイズが出力されてしまう点が気になります。
BlackMagic XL v1.0
やや振れ幅が少ないためか、意図した構図をなかなか再現してくれない傾向にあります。
weight:1.0では、ControlNetの影響が強すぎて線が出にくい印象です。
Confusion XL v3.0
線画ではなく、グレースケールの木炭画のような画像が生成されます。意図した構図からは若干離れてしまっている印象があります。
Weight:1.0の生成結果では想定しているイメージに近い結果も生成できていますが、線画ではなく、グレー画像として生成されてしまっている点が残念です。
FiaMix XL v2.2
ちょっと遠景の線が薄い印象もありますが、精密な描写の画像が生成できます。
狙った構図に近いイメージも生成できており、結果も良好です。もう少し線画感が欲しいなという印象もあります。
weight:1.0では、ControlNetの影響が強すぎて線が出にくい印象があります。
LizMix v8.0
ControlNetの影響が強いためか、Weight:0.75でも元のラフの影響が強い印象です。
意図した構図に近い画像も生成できています。
Juggernaut XL X
ほかのモデルと異なり、枯れ木を描きたい傾向があるようです。意図した構図通りの生成結果はありませんでしたが、想定に近いイメージは出力できています。
リアル感が強いため、もう少し線画感があったほうが好みですが、このあたりはプロンプトの調整で対応できるかもしれません。
手順:MistoLineを利用する方法
ControlNet の MistoLine モデルを利用する方法です。
ControlNetのインストールと、以下のControlNetを準備します。
モデルの取得については
こちらの記事を参照してください。
- mistoLine_fp16 [モデルハッシュ:2583d73c]
Stable Diffusion Web UIを表示し、[img2img]のタブをクリックして選択します。
先の手順と同様に入力画像に準備したラフ画像を設定します。
ControlNetのパネルを開き、[Enable]のチェックボックスにチェックをつけます。
[Preprocessor]には"lineart_realistic"を選択します。[Model]には"mistoLine_fp16 "を選択します。
mistoLineは影響が強いため、[ControlNet Weight]を0.5に設定し、[Ending Control Step]を0.5に設定します。
プロンプト
次のプロンプトを利用します。
Prompt and Settigns
Prompt:lineart, realistic, clean clear lines, monochrome, white background, european downtown, uphill road, road, taxi, Roadside tree, apartment building, city in the distance, background scene, hires, detailed
Negative prompt:worst quality, low quality, (rough:1.2), (sketch:1.2), text, mountain, lowres
Size:1,024 x 640
Sampling method: DPM++ 2M, Schedule type: Karras
Denoising strength:0.9
生成結果
複数のモデルで生成結果を確認します。
Anima Pencil v4.0.0
意図した構図とは違いますが、良好な生成結果です。
Async's Mix v3.1
当初想定した構図に近いものもあり、イメージに近い生成結果が得られました。
DreamShaper v2.1
意図した構図とは違いますが、良好な生成結果です。
FiaMix XL v2.5
若干線が薄いですが、良い生成結果もあります。
LizMix v8.0
遠景の線が細い結果になりました。
NW-VXP XL
適度にデフォルメされた生成結果になります。
手順:AnyTest V4を利用する方法
ControlNet の MistoLine モデルを利用する方法です。
ControlNetのインストールと、以下のControlNetを準備します。
モデルの取得については
こちらの記事を参照してください。
- CN-anytest_v4-marged [モデルハッシュ:4bb64990]
設定、プロンプト
ControlNetの設定は以下です。
次のプロンプトを利用します。
Prompt and Settigns
Prompt:lineart, realistic, clean clear lines, monochrome, white background, european downtown, uphill road, road, taxi, Roadside tree, apartment building, city in the distance, background scene, hires, detailed
Negative prompt:worst quality, low quality, (rough:1.2), (sketch:1.2), text, mountain, lowres
Size:1,024 x 640
Sampling method: DPM++ 2M, Schedule type: Karras
Denoising strength:0.9
Animagine XL v3.0
Animagine XL v3.0の生成結果です。
Ending Control Step:1 の場合の結果です。Weightを下げると急に形状が変化してしまい、意図したイメージとは異なる結果になりました。
Ending Control Step:0.75 の場合の結果です。
Ending Control Step:0.5 の場合の結果です。
Ending Control Step:0.25 の場合の結果です。
Anima Pencil v4.0.0
Anima Pencil v4.0.0の生成結果です。
Ending Control Step:1 の場合の結果です。Weightを下げると急に形状が変化してしまい、意図したイメージとは異なる結果になりました。
Ending Control Step:0.75 の場合の結果です。
Ending Control Step:0.5 の場合の結果です。
Ending Control Step:0.25 の場合の結果です。
Async's Mix v3.2
Async's Mix v3.2の生成結果です。
Ending Control Step:1 の場合の結果です。Weightを下げると急に形状が変化してしまい、意図したイメージとは異なる結果が多いですが、想定イメージに近い結果もいくつかあります。
Ending Control Step:0.75 の場合の結果です。
Ending Control Step:0.5 の場合の結果です。
Ending Control Step:0.25 の場合の結果です。
DreamShaper v2.1
DreamShaper v2.1の生成結果です。
Ending Control Step:1 の場合の結果です。Weightを下げると形状が変化してしまいますが、想定イメージに近い結果も生成できています。
Ending Control Step:0.75 の場合の結果です。
Ending Control Step:0.5 の場合の結果です。
Ending Control Step:0.25 の場合の結果です。
手順:rough-coatingV1を利用する方法
ControlNet の MistoLine モデルを利用する方法です。
ControlNetのインストールと、以下のControlNetを準備します。
モデルの取得については
こちらの記事を参照してください。
- rough-coatingV1 [モデルハッシュ:63a54fb8]
設定、プロンプト
ControlNetの設定は以下です。
次のプロンプトを利用します。
Prompt and Settigns
Prompt:lineart, realistic, clean clear lines, monochrome, white background, european downtown, uphill road, road, taxi, Roadside tree, apartment building, city in the distance, background scene, hires, detailed
Negative prompt:worst quality, low quality, (rough:1.2), (sketch:1.2), text, mountain, lowres
Size:1,024 x 640
Sampling method: DPM++ 2M, Schedule type: Karras
Denoising strength:0.9
Animagine XL v3.0
Animagine XL v3.0の生成結果です。
Ending Control Step:1 の場合の結果です。元の画像の影響が強いためか、Weightを下げても細部は描画されない印象です。
Anima Pencil v4.0.0
Anima Pencil v4.0.0の生成結果です。
Ending Control Step:1 の場合の結果です。Weightを下げると元の形状が残らない箇所も多くなりますが、想定したイメージに近い結果もあります。
Ending Control Step:0.75 の場合の結果です。
Ending Control Step:0.5 の場合の結果です。
Ending Control Step:0.25 の場合の結果です。
Aync's Mix v3.2
Async's Mix v3.2の生成結果です。
Ending Control Step:1 の場合の結果です。Weightを下げると元の形状が残らない箇所も多く、意図したイメージとは異なる結果が多いです。
Ending Control Step:0.75 の場合の結果です。
Ending Control Step:0.5 の場合の結果です。
Ending Control Step:0.25 の場合の結果です。
DreamShaper v2.1
DreamShaper v2.1の生成結果です。
Ending Control Step:1 の場合の結果です。Weightを下げないと細部が描画されない傾向です。一方でWeightを下げると元の形状が反映されないです。
Ending Control Step:0.75 の場合の結果です。
Ending Control Step:0.5 の場合の結果です。
Ending Control Step:0.25 の場合の結果です。
評価・所感
入力のラフ画像がかなり適当であることや、イメージをラフに落とし込めていない状況で生成した結果としては、まずまずの結果が得られたと考えています。
特にラフ内のタクシーのシルエットの検出はどのモデルでも高精度にできており、SDXLのポテンシャルの高さを感じました。
生成画像の品質を上げるには、もう少し細部まで描画されたラフ画像を入力する必要がありそうです。
著者
iPentecのメインデザイナー
Webページ、Webクリエイティブのデザインを担当。PhotoshopやIllustratorの作業もする。