水を得たさかな

人生たのしく生きよう。

MENU

【StableDiffusion】雑な指示絵からイラストを生成

AIイラストでも線画を用意し、雑なバケツ塗りで色を指示することで、希望どおりの絵に近づけるのが非常に楽にできるということがわかった。

以下のイラストを例にそのやり方をメモしておく。

友達がいないため、「こうできないか?」というのを対話型AIと相談して1人でやっているので、もっと効率の良いツールや方法があると思う。むしろ教えてほしい。

線画の用意

元となる絵を用意する

絵心のある人間は、まず希望の線画を描くところから始めればよいが、絵描きではない自分がいったいどうやって線画を用意するのか。

その辺のイラストをトレスしたら、それは問題になってしまう。

しかし、今はあるだろ。「DALL-E3」とか

DALL-E3では、StableDiffusionのような難しいプロンプトや設定は必要なく、自然言語のみで希望の構図を生成することができる。
GPT4ユーザーであれば、欲しい構図になるように対話形式で少しづつ寄せていくこともできてしまう。

StableDiffusionに染まりきっていた自分は、一瞬「ズルいのではないか」とか馬鹿なことを考えたが、目的は良いイラストを生成することであって、わざわざStableDiffusionだけで完結する必要はない。OpenPoseを使うのも、GPT4&DALL-E3で自然言語で狙った構図を出すのも同じだろう。

DALL-E3はStableDiffusionに比べて動きがある(魂がこもっている)絵を出力しやすく、これを使わない手はない。

線を抽出する

DALL-E3が出力した絵から一体どうやって線画を用意するのか。

一応、「線画」と指示して白黒の絵を用意させているが、ここは別に白黒である必要はない。とりあえず欲しいのは構図だけ。

まずDALL-E3が出力した絵を、ControlNetのLineartにかける。
個人的にPreprocessorは「lineart_realistic」が一番良さそうだと感じている。

黒背景に白線の時点で手直し

今まで色つきのイラストにLamaCleanerをかけたり、画像編集ソフトで編集しまくっていたが、この時点で手直した方が圧倒的に楽。
後でこれがLineartの入力になるので、この「黒背景に白線」の時点で直す。

とりあえずこれは、特別こうしたいとかないのでキレイにしただけ。

ここまでくれば、これをLineartの入力にして、「ControlNet is more important」で生成すれば毎回同じ構図でイラストを生成できる。

ただ、StableDiffusionではプロンプトでどんだけ指示しても色塗りが上手くいかず、「もう自分で色塗りして指示できないのか?」と考えたのがここから先。

色指示絵の用意

白黒を反転させる

色付きの絵を用意するため、まず白黒を反転させる。
invertとかでやってくれ。

二値化する

AIが出してきた白黒は、同じような色の集合体であって、人間には白一色に見える部分も微妙にカラーコードが異なる「限りなく純白っぽい色」が集合しているだけである。

これだとただのペイントみたいなツールでは塗りつぶしが使えなかった。

これを何とかできないのかとAIに相談してみたところ、「二値化」で完全な白と黒にすればよいらしい。

やり方は、自分はAIに相談したらPythonのコードが出てきたのでそれを実行しているだけなのだが、調べていたら同じことができる無料サイトもあった。

塗りつぶしする

後は塗りつぶしツールで希望の色を付けていくだけなのだが、これがまたうまく行かない。
線が途切れ途切れになっているせいで、色が変なところまでぶちまけられてしまう。

これも「という感じで困っているのだが、何とかできないか?”無料ツールで”」とAIに相談したところ、無料でなんとかできるツールを発見した。

このMediBang Paintの「隙間閉じ」機能を使うと、多少の隙間があっても上手いこと塗りつぶしてくれるのだ。
バケツツールを使いこなそう!隙間や漏れが出来ない方法 | MediBang Paint – 無料のイラスト・マンガ制作ツール

イラストの生成

ここまでやったら、色付きの絵をi2iにぶち込んで、黒背景に白の線画を、ControlNetにぶち込む。

lineartのPreprocessorはnone、「ControlNet is more important」にチェックを入れると、構図もほぼ同じものがいくつも生成できる。

後は好きなモデルを選んで、プロンプトは補助的に入れる。塗りに関する指示とか。
さらに線で描いてない口とかは、smileと入れればsmileにしてくれるし、なかなか面白い。

これで何枚か生成したのを適当に持ってくると、こんな感じ。
だいたい同じような雰囲気のイラストが出る。
(looking at viewerとか入れたわけではないのだが、目線が正面を向いてしまった)

というように、AIに遊びを持たせているので若干違いが出るが、大体同じ色合いと同じラインで出る。

後はそれぞれの絵から良い部分だけ持ってきて継ぎはぎしてしまえばいい。

こうして出来上がったものがこちら。

このように力技で元絵に寄せているわけだ。

おまけ

背景をつけたりする

切り抜きツールでマスクを作成してInpaint uploadで背景を別生成しちゃうよ。

アップスケールする

Tiled Diffusion&VAEでアップスケール。

これはDenoising strengthを0.3、Upscalerは大体いつもR-ESRGAN 4x+ Anime6Bとか使ってるよ。

効果をつける

画像編集ソフトで盛っていけ。

おわり

Copyright ©Sakana3g All rights reserved.

プライバシーポリシー