はじめに
自分が描いたラフ画にStable Diffusionで色を塗ってもらいます
変換の対象の絵
フラワーナイトガールというソーシャルゲームに登場する、ツツジ、という女の子を描いてみました
変換対象の絵の特徴
- 女の子はソファーに座っています
- 本を手に持っています
- 書斎にいます
- 衣装は中世ファンタジー世界風に描いています
ソファーも書斎もかなりラフ、AIが苦手としている指も描いています
AIはどこまで綺麗に色を塗ってくれるのでしょうか?
使うツール
導入しているツールその1 StableDiffusion
MacBookAirにStableDiffusionとそのWeb UIを導入しています
ただし、StableDiffusionのimg2imgだとラフ画から元絵の構図をそのままに色を塗ってくれません
というのも
- Strengthを0.6以上にするとカラーにはなるが元絵を無視した絵が出力される
- Strengthを0.4以下にするとある程度維持した絵が出力されるが色を塗ってくれない
- 何より指とか手首が割と崩れる(ひどいときには無視することがある)
導入しているツールその2 ControlNet
上記の問題を解決するためにControlNetを導入します
ControlNetとは元絵から輪郭抽出して物体認識するすごいやつです
導入方法とか使い方は
https://koneko3.com/how-to-use-controlnet/
をみてください
私は白黒の線画に色を付けたいので
- Preprocessorにはinvert(from white bg & black line)
- Modelにはcontrol_v11p_sd15s2_lineart_anime
を指定しています
導入しているツールその3 DeepDl
promptに入れるコマンドを生成するためにDeepDlを使います
今回は元絵が
「書斎で本を手に持ってソファーに座っている茶髪の少女」
という構図なので、それをそのままDeepDLに入れて翻訳してもらいます
翻訳後の
「Brown-haired girl sitting on a sofa in a study with a book in her hand」
をそのままtxt2txtのpromptに入れます
シンプルな呪文でプロンプトを作れるっていうのも、自分で絵を描くメリットです
実行手順
- StableDiffusionのtxt2txtのパネルを開く
- ControlNetのパネルを開いて色を塗りたい線画をドラック&ドロップで読み込ませる
- Createボタンを押す
といたってシンプルです
出力結果
元の線画を保ったまま色を塗ってくれています
指の描写が若干気になるけど、他は思った以上に色を綺麗に塗ってくれていますね
最後に
今回はStableDiffusion+ControlNetを使って線画に色を塗るための基本的な方法を書いてみました
twitterには他にも線画からのAI色塗りしたものをアップしているので、