見出し画像

リアルタイムAIお絵描きのススメ

Kritaというペイントツールを使ったリアルタイムAI画像生成のやり方。(と、分かってる人向けな使い方のコツとかも)

何ができるの?

使い方含め、ざっとスクショ貼りながら解説します。

こんな感じでポーズや細部の指定を描きこんでる間、右の生成画面にリアルタイムで結果が表示されます。リアルタイム度合いとしては、うちのグラボがRTX3060なんですが画像サイズ768×768で1~2秒間隔くらい。この辺はモデルの相性というか、LCMの効き具合と設定したステップ数あたりが影響してきます。(最適化の方法は後述)
ここが生成機能の画面なんですが、プロンプト入れる所の下にControlNetへの繋ぎ込み設定が並びます。ざっくり「どのControlNetに」「どのレイヤーを」「どの位の強度で」流し込むかを指定する感じです。今回の例だと、OpenPoseに棒人形、Scribbleに落書き(青線)、Cannyに手の輪郭(赤線)を流し込んでる状態です。レイヤー重ねて見れるから凄く分かりやすい。
ControlNetで具体的に何使えるかというとこんな感じですね。DepthやNormal(法線マップ)を手描きできる変態さんは少ないと思うんだけど……(おそらく3Dから流し込む想定)
左上のボタンでモード切り替えられます。リアルタイムの場合はここを「Live」に設定して隣の再生ボタン押す感じなんですけど、デフォルトの「Generate」モードでポチポチ生成するだけでも十分便利です。生成結果をレイヤーとしてフィードバックできたりします。

環境構築

インストールの仕方や設定について。入れるものとしては、Krita(ペイントツール本体)、krita-ai-diffusion(Krita用のAI生成プラグイン)、ComfyUI(画像生成のバックエンドとして)の3つです。

Krita

ますはKritaですが、これはほぼ説明不要だと思います。
下の公式サイトからダウンロードしてインストールしてください。
https://krita.org/jp/

krita-ai-diffusion

次にkrita-ai-diffusionですが、これはダウンロードしたのを解凍してKritaのアドオン用フォルダに入れてください。Windowsだと「C:\Users\<ユーザー名>\AppData\Roaming\krita\pykrita」とかですね。

で、プラグインを入れてからKritaを起動してください。

メニューから設定画面を開いて……
ここをONにします。もし項目が無ければプラグインがちゃんと入ってないです。

そして、プラグインの画面を開きます。

最初はこんな感じの画面が開く筈。

ComfyUI

で、最後にComfyUIなんですが実はプラグインの方に自動で管理するモードがあるようで……
上記の画面で「Configure」押すと出てくる設定画面でそっちのモード選ぶと勝手に色々やってくれるらしいです。(まだComfyUI入れてない人は、そちらでOKかと)

上の方を選ぶと勝手にComfyUI入れたりしてくれるらしい。でも、自分の場合は既にComfyUIがあるので下の方を選んで「Connect」じゃ!(もちろん予めComfyUIを起動しておく必要がある)

もうComfyUIが入ってる人は

インストール済みのComfyUIを使う人は、入れる必要があるカスタムノードとかモデルがあるので下記を参照されたし。
https://github.com/Acly/krita-ai-diffusion/blob/main/doc/comfy-requirements.md

おすすめの設定とか

以上で使える状態にはなってる筈なんですが、自分が引っかかった点とか改造してる所とかのメモを残しときます。

ComfyUIに「ModelSamplingDiscreteが無いぞ!」って怒られる

ComfyUIが古いです。ModelSamplingDiscreteは、LCM対応時に追加されたネイティブノードです。ComfyUIをアップデートしましょう。

生成結果が微妙い

クオリティプロンプトとかネガティブプロンプトを設定する項目があります。

ここでモデル指定したりできます。自分の場合は、ここでネガティブプロンプト用のembeddingとか指定してます。ComfyUIに渡す形式なので「embedding:~」って書く必要あり。下の方の「Sampler settings」でサンプラーとかステップ数を設定できます。ライブ設定の方、LCM-LoRAの強度とか設定する項目がないので……(対応は後述)

ライブ生成時の画質が調整できない

諦めろ。というのは冗談で、実際LCM-LoRAの強度を設定できないのが不便ではあり。
自分の場合は、生成モデル側に丁度いい強度でLCM-LoRAをマージしてしまいました。で、プラグインがLCM-LoRAを使わないよう改造しちゃいます。

プラグイン内の「workflow.py」ってコードのLCM-LoRA付けてるとこ消しちゃえば、ライブモード時でも勝手にLCM-LoRA乗らないです。たぶんLive時のサンプラー設定をLCM以外に設定する感じでもOK。

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