見出し画像

【AI】Krita AI Diffusion:線画に楽々自動ペイントできる?

あらかじめ用意した線画に自動ペイントする方法をメモ。

自動ペイントが実用化されると、アートのプロトタイピングのお試し回数や全体的な作業時短や工数単出が期待できそうな気がする。
アート方針が決まるまでに試行錯誤で手間と時間がかかることもあるよね。
もはや、最適解をさぐるマッチング沼にハマっていくようなもの。

で、今回の検証結果から言うと、これは、使えそうな手ごたえ感あり!
作画時の有能なアシスタントがここに顕現され・・・?

自動ペイントの理想形 ( before,After )

(Krita 5.2.3, Krita AI Diffusion 1.23.0)


■【検証】自動塗分けマスクツール

Kritaの標準機能には、自動塗分けマスクツールがある。
これを利用すれば、楽々自動ペイントが実現できるのか?
・・・ということで早速検証してみる。

ツールバー>自動塗分けマスクツール
ツールオプション

このツールの使い方は、実は簡単で、自動塗分けマスクツールを利用して、塗りたい場所をブラシツールで指定していけばよい。

指定した後は、ツールオプションの更新ボタンをクリックする。塗りのプレビューが表示されるので、これを納得感のある塗りになるまで、作業を繰り返す。

背景を白く透明色にしたい場合は、適当なカラーで塗った後、制御描線>カラーを選択して透過ボタンを押すと透過カラーとして登録される。

透過カラー設定

ちなみに線の隙間が多少空いていても塗りつぶしてくれる。すぐれもの。
この閾値もツールオプションのパラメーターで調整できる。

で、ツールの使用手順だが、自動塗分けマスクツールを選択して、その状態で、線画レイヤーをクリックすれば、そのモードに入る(少しぼやけた画面になるのですぐわかる)。
(なお、このモードを抜けるには、自動選択塗分けツールを削除するか、移動ツールに切り替えてキャンバスをクリックすれば抜けられる)。

塗りつぶしたい部分をカラー指定していく

自分で色指定した箇所に色が塗られているね(※上図)。
塗り部分によっては、解除されたりするので、解除された部分にまた指定色を塗る繰り返す(背景の緑色に指定しているが、これでOK。なぜかというと前述した指定色に透過設定したので)。

・・・で、この塗り状態を確定したいのだが、確定用のボタンがない。

これを確定するには、自動塗分けマスクレイヤーを選択した状態で、マウス右クリックメニューで、変換>ペイントレイヤーに変換 を実行すると通常のペイントレイヤーになる(ベタ塗り)。

ペインとレイヤー二変換

メニューバー:レイヤー>アルファを分離>レイヤーを分割 を実行するとカラー毎にレイヤーが分割される。あとは、このレイヤーのアルファを保護ロックし、塗り分けに使ってもよいかも。

レイヤーを分割した結果

うむ、結構便利じゃないか。これはこれで利用価値はある。
塗分け用マスクを作成するときに使えば、効率化、時短につながるのではないかと思う。

● ● ●

しかし、自分の求めている楽々自動ペイントは、これではないのだ。
このページ上部に張り付けたアイキャッチ画像のようになって欲しいわけ。

・・・というか、茶番はこのくらいにして、以下検証の本題に入ろう。


■【検証】線画に楽々自動自動ペイント

※※ 前提として、Kritaのインストール、および、Krita AI Diffusionの導入と適切な設定は、完了しているものとする。 ※※


まず、着色したい線画ファイルを用意する。
ちなみに線は黒線で、背景は白ベタでOK。

線画

次にKritaのアプリを起動。同時にKrita AI Diffusion自動起動。

そして、Kritaに線画ファイルを読み込ませる。

それから、Krita AI Diffusionの操作パネルで、ControlNet>線画(LineArt) を選択して、線画レイヤー選択して設定する。
なお、線画(LineArt)のStrengthゲージは、強めの最大にしておくと、より線画を反映してくれるので、忘れずに設定しておく。

・補足1:選択メニューのLine_artというのは、レイヤー名。参照先の線画レイヤーを選択する設定のこと。
補足2:「現在の画像からコントロールレイヤーを生成」ボタンは、実行しない。今回は、あらかじめ線画が用意されているので。
もし、実行してしまった場合は、選択メニューがコントロールレイヤーを自動選択してしまうので、元の設定で、再設定する必要あり。

線画(LineArt)の操作パネル(右端にStrengthゲージ)

プロンプトは、自分で記入する(線画イメージから必要な要素を見出して、キーワードやタグを打ち込む。プロンプトは、ある程度適当でも、それなりの画像を生成してくれるので、いろいろ試してみるのもよいかも)。

プロンプト

または、別の方法として、線画を画像分析にかけ、プロンプトを自動生成後、そのプロンプトから、不要部分を削除したり、付け足したりして調整してもよい。
だだし、画像分析機能は、Kritaおよび、Krita AI Diffusionには搭載されていないので、他のアプリの機能を利用してほしい。

とりあえず設定した環境

設定出来たら、生成ボタンを押して実行。画像が生成される。

生成結果

何回か画像生成を繰り返して、自分お好みのイメージで決定する。

数ある画像生成結果から選んだ画像

よく見ると部位(髪の毛など)で、余計な部分も生成されている。

線画のレイヤーでくり抜きたい部分を選択し選択範囲からマスクを作成して、レイヤーに適用する。背面に風景画像を配置する。

マスクは、自動選択ツール範囲選択ツール、マスク作成後、ブラシペイントなどで整える。

透過マスク

適当に用意した背景画像と合成する。
この背景画像は、素材画像としてアイラインを意識しつつ、別途画像生成したもの。

背景と合成

少々輪郭部分が浮いているので、キャラの輪郭部分に少し光のエフェクトがかかったような感じになるよう馴染ませる。

キャラの輪郭部分のマスクで、もっと丁寧なマスキングをするると精度が向上するが、エフェクトの誤魔化しで十分なので今回は行わない。

なお、ペイントの作風は、AI学習Model (Checkpoint) 等による。
配布サイトで、好みのものを利用されるとよさげ。
(※各AI学習Model等の権利関係、利用条件や使用方法等は、よくご確認の上ご利用くださいませ)。

輪郭部分の馴染ませ処理


__________今回は、これにて完成。

■おまけ検証

画像のアスペクトと範囲を変更して、生成拡張も検証してみる。

とりあえず、素材は先ほど作成した画像で行う。
背景とキャラを統合した画像で検証。

検証した、結論としては、背景だけで生成拡張した方が精度が高い。たしかにキャラの背景にちょびっとだけしか背景情報ないし、生成する側も情報少なくて困ってしまったのも。

また、余計な要素が混じっているとプロンプトで制御してもうまくできないことが多かった印象。もう少し選択範囲を狭めて生成してもよいかも。
とはいえ、今回のやり方や条件が難しかっただけかもしれないが。

素材画像(余白部分を生成する)

<プロンプトなし>

生成拡張で、画像生成した結果

<プロンプトあり>

生成拡張で、画像生成した結果
使用プロンプト(内容がいまいち?)

■関連記事

以上。

この記事が気に入ったらサポートをしてみませんか?