生成した画像や手持ちの画像をマンガ風の白黒線画に変える方法を検証してみます。白黒画像生成にはControlNetのCannyと線画LoRAおよび画質調整系のboldlineのLoRAを使用します。また、ピンポイントの黒塗りはCutoffを使うと簡単です。
画像を白黒線画に変える
マンガ風の白黒線画に変える重要な基本ポイントは以下の6点です。
・プロンプトにmonochrome、lineartなどを使用する。
・ネガティブプロンプトはしっかり入れて画質を維持する。
・仕上げについては、seedガチャで好みの塗りになるまで回す。
・ControlNet Cannyを使い、線画にしたい画像を入れる。
・必要に応じて線画LoRA画質調整系のboldlineのLoRAを使用して調整する。
・細かなベタ塗りについては、プロンプト+Cutoff拡張機能でピンポイントな調整をする。
今回のベース画像は以下のStable Diffusionで生成したアニメ絵を使用します。
ControlNet+プロンプトでモノクロ化
ControlNetにCannyをあてて、プロンプトにモノクロ化のプロンプトと、ネガティブプロンプトは画質を向上させる通常のプロンプトを入れます。
monochrome, lineart, black and white Negative prompt: EasyNegative, nsfw, (worst quality, low quality:1.4), (depth of field, blurry, bokeh:1.5)
ControlNetは単純にCannyを当てて、上のベース画像を参照元として入れています。
生成画像は以下にモノクロの画像になります。もし、思うようにならない場合は、シード可変にして、何枚か作ってみてください。とは言え、線画とは程遠い出来です。
線画LoRAをあてる
ここで線画LoRAをあてます。線画LoRAはCivitaiからダウンロードできます。今回はv3.0を使います。LoRAの使用は自己責任でお願いします。
Anime Lineart / Manga-like (线稿/線画/マンガ風/漫画风) Style(Civitai)
ダウンロードしたLoRAモデルは、「\stable-diffusion-webui\models\Lora」のフォルダの中に入れます。フォルダに入れたLoRAは生成ボタンの下の赤いボタンを押すと選択できるようになっているかと思います。
プロンプト内にLoRAを入れて生成してみます。LoRAの強度によって出てくる線画の雰囲気は異なりますが、この強力なLoRAを使うことにより、線画が簡単に生成できます。(うまくいかない場合はseedを変えて試してみてください。。。)
monochrome, lineart, <lora:animeLineartMangaLike_v30MangaLike:1>
Negative prompt: EasyNegative, nsfw, (worst quality, low quality:1.4), (depth of field, blurry, bokeh:1.5)
線画LoRA Weight:1.0
線画LoRA Weight:2.0
線画を微調整する
2vXpSwA7さんがhuggingfaceやCivitaiで公開している微調整LoRAの中にboldlineという線の太さを調整できるLoRAがあります。このLoRAを使って、線画を調整してみます。(参考記事:ウエイトで微調整するLoRAを使ってみる)
このLoRAのウエイトを変えることにより線画の太さを微調整できます。また、マイナスで線を細くすることも可能です。
monochrome, lineart, <lora:animeLineartMangaLike_v30MangaLike:2>, <lora:boldline:2>
Negative prompt: EasyNegative, nsfw, (worst quality, low quality:1.4), (depth of field, blurry, bokeh:1.5)
boldline LoRA: Weight -2
boldline LoRA: Weight 2
髪を黒塗りしてみる
線画にすると髪の毛など黒くベタ塗りしたいところも線画化してしまうことが多いです。そこで、髪の毛だけは黒く調整してみます。そこでプロンプトに「black hair」を追加してみます。
monochrome, lineart, <lora:animeLineartMangaLike_v30MangaLike:2>, <lora:boldline:-2>, black hair
Negative prompt: EasyNegative, nsfw, (worst quality, low quality:1.4), (depth of field, blurry, bokeh:1.5)
確かに髪は黒くなりました。これはこれで良いのですが、木やジーンズや黒くしたくないところまで、黒く塗られてしまいました。
そこで、ピンポイントで髪の毛だけを黒くするために拡張機能のcutoffを使います。cutoff拡張機能はExtensionsから、「https://github.com/hnmr293/sd-webui-cutoff」のURLを入力してインストールします。cutoffはプロンプトを局所的に作用させることができます。ここでは、「black hair」で「hair」に対してだけ、「black」の効果がでるようにします。今回はcutoffをしっかり効かしたいのでウエイトは強めに設定します。
boldline LoRA: Weight -2, Cutoff適用
boldline LoRA: Weight 2, Cutoff適用
目も黒くしたければ、同じくプロンプトで調整します。このあたりの制御は難しいので、seedを変えて何枚か生成する必要があるかもしれません。
monochrome, lineart, <lora:animeLineartMangaLike_v30MangaLike:2>, <lora:boldline:2>, black hair, black eyes
Negative prompt: EasyNegative, nsfw, (worst quality, low quality:1.4), (depth of field, blurry, bokeh:1.5)
boldline LoRA: Weight -2, black eyes
boldline LoRA: Weight 2, black eyes
最後に
今回はいろいろマニアックな設定を駆使しながら、検証を行ってみました。Weight調整で細かく画風を制御可能となります。今回の検証結果をご参考に皆さんもぜひマンガ風の白黒線画に挑戦してみるとはいかがでしょうか。
コメント