Closed8

KritaのAI生成プラグイン「Krita AI Diffusion」をカスタムComfyUIサーバで試す

kun432kun432

オープンソースのペイントソフトであるKritaにAIによる画像生成を追加するプラグインみたい。以下の動画がわかりやすい。

https://www.youtube.com/watch?v=Ly6USRwTHe0

Kritaを使ったことはないけども、ペイントソフトに組み込まれているというのは、画像生成専用のサービスで使うよりも、よりワークフローに適しているのではないかと思うし、ペイントソフトに慣れているならそちらのほうが使い勝手も良さそう。

ということで試してみる。

kun432kun432

GitHubレポジトリ

https://github.com/Acly/krita-ai-diffusion

Krita向け生成AI

これは、Krita内で生成AIを活用して画像のペイントや編集のワークフローを支援するためのプラグインです。より視覚的な紹介については、www.interstice.cloudをご覧ください。

このプロジェクトの主な目標は以下です:

  • 精度とコントロール
    テキストから画像全体を生成するプロセスは予測不可能になることがあります。このプラグインでは、選択範囲に生成を限定したり、既存のコンテンツを可変強度で洗練したり、画像の特定領域にテキストを集中させたり、参照画像やスケッチ、線画、深度マップなどを使用して生成を誘導することができます。
  • ワークフロー統合
    多くの画像生成ツールはAIのパラメータに重点を置いていますが、このプロジェクトでは、Kritaの画像編集ワークフローとシームレスに統合する控えめなツールを目指しています。解像度や技術的な詳細を気にせず、描画、ペイント、編集、生成をスムーズに行えます。
  • ローカル、オープン、無料
    私たちはオープンソースモデルを採用しており、プリセットのカスタマイズや独自モデルの持ち込み、すべてをローカル環境で動作させることが可能です。また、クラウド生成オプションも利用でき、大きな投資なしにすぐ始められます。

主な機能

  • インペインティング: 選択範囲を使用して生成的な塗りつぶし、拡張、オブジェクトの追加や削除を行う
  • ライブペインティング: AIがキャンバスをリアルタイムで解釈し、即座にフィードバックを提供。ビデオを見る。
  • アップスケーリング: メモリを消費せずに画像を4kや8k以上に拡大
  • Stable Diffusion: Stable Diffusion 1.5およびXLに対応(SD3の部分対応あり)
  • ControlNet: スクリブル、線画、エッジ検出(Canny)、ポーズ、深度、法線、セグメンテーションなど多数対応
  • IPアダプター: 参照画像、スタイル・構図の転送、フェイススワップ
  • 領域: レイヤーで定義された画像領域ごとに個別のテキスト説明を割り当て
  • ジョブキュー: 作業中に生成ジョブのキューやキャンセルが可能
  • 履歴: 結果のプレビューや過去の生成物、プロンプトをいつでも参照可能
  • 強力なデフォルト設定: 使いやすいUIを提供する多目的なデフォルトスタイルプリセット
  • カスタマイズ: 独自のプリセットを作成可能(カスタムチェックポイント、LoRA、サンプラーなど)

必要要件

  • Windows、Linux、Mac
  • LinuxとMacでは、Pythonとvenvのインストールが必要
    • 推奨バージョン: 3.11 または 3.10
    • 通常、パッケージマネージャ(例: apt install python3-venv)でインストール可能

ハードウェア要件

ローカルで実行する場合、少なくとも6GBのVRAMを備えた強力なグラフィックカード(NVIDIA)が推奨されます。これがない場合、画像生成に非常に時間がかかるか、メモリ不足で失敗する可能性があります。

NVIDIA GPU CUDAを使用してサポート
AMD GPU サポートは限定的、WindowsではDirectML、LinuxではROCm(カスタムインストール)
Apple Silicon コミュニティサポート、macOSではMPSを使用
CPU サポートされますが、非常に遅い
kun432kun432

Krita+プラグインのインストール

インストール手順は以下

https://github.com/Acly/krita-ai-diffusion?tab=readme-ov-file#installation

https://www.interstice.cloud/plugin

ざっと見た感じ

  1. Krita本体をインストール
  2. Krita AI Diffusionプラグインをダウンロードして、Kritaで有効化
  3. Krita AI Diffusionプラグインの設定を行って、ComfyUIサーバを起動

という感じ。まずとりあえず1と2をやる。

Macで試す。Krita本体はHomebrewでインストールできる。

brew install --cask krita

Krita AI Diffusionプラグインをダウンロード。記事執筆時点ではv1.29.0だった。

https://github.com/Acly/krita-ai-diffusion/releases/tag/v1.29.0

Kritaを起動して、「ツール」→「スクリプト」→「Pythonプラグインをファイルからインポート」と進んで、先ほどダウンロードしたプラグインのZIPファイルを指定する。

インストールしたらKritaを再起動して、とりあえずなんでもいいので新規画像を開く。

「設定」→「ドッキングパネル」→「AI Image Generation」をクリック

右のパネルに「AI Image Generation」のパネルが表示される。

「Configure」をクリック。

AI Image Generationの設定画面が開く。

ここでServer Configurationには3つの選択肢がある様子。

  1. Local Managed Server
    Kritaがインストールされているマシン上(つまり今回の場合はMac)にComfyUIサーバをインストールして接続
  2. Custom Server (local or remote)
    ローカルまたはリモートに構築されたComfyUIサーバに接続
  3. Online Service
    interstice.cloudが提供するGPUクラウドサービスに接続

このままMac上でサーバを立てる場合には1を選択してそのまま進めると自動的にセットアップされる様子。

ただ、自分はUbuntuサーバでRTX4090を使っているので、どうせならこれを使いたい。カスタムサーバについてはGitHubのREADMEには以下とある。

オプション: カスタムComfyUIサーバ

このプラグインはComfyUIをバックエンドとして使用します。自動インストールの代替として、手動でインストールするか、既存のインストールを使用することもできます。Kritaを起動する前にローカルでサーバーが既に実行されている場合、プラグインは自動的に接続を試みます。この方法でリモートサーバーを使用することも可能です。

必要な拡張機能とモデルのリストを確認し、インストールが互換性を持つことを確認してください。

で以下のドキュメントが紹介されている

https://github.com/Acly/krita-ai-diffusion/wiki/ComfyUI-Setup

ComfyUIについては過去に以下でも試しているので、これを踏まえてセットアップしてみたいと思う。

https://zenn.dev/kun432/scraps/8e2508d5f94e88

https://zenn.dev/kun432/scraps/75887b6d87f8fe

kun432kun432

カスタムComfyUIサーバの構築

環境

  • Ubuntu22.04
  • RTX4090
  • python-3.11.5
  • CUDA-12.6

レポジトリのクローン

git clone https://github.com/comfyanonymous/ComfyUI krita-ai-diffusion-custom-server
cd krita-ai-diffusion-custom-server

仮想環境を作成

python -m venv .venv
. .venv/bin/activate

パッケージインストール

pip install -r requirements.txt

ComfyUI-Managerをインストール

cd custom_nodes
git clone https://github.com/ltdrdata/ComfyUI-Manager.git
cd ..

ComfyUIを起動

python main.py --listen

ComfyUIの画面が開いたら、右上の「Manager」をクリック、メニューから「Custom Node Manager」をクリック

カスタムノードがリストアップされるので、上で検索して必要なものをインストールすれば良い。

  1. ComfyUI's ControlNet Auxiliary Preprocessors

なお、インストール後は再起動が求められる。まとめてインストールして再起動できるのかよくわかってないので、自分は都度都度再起動した。

  1. ComfyUI IPAdapter plus

  1. ComfyUI Inpaint Nodes

  1. ComfyUI Nodes for External Tooling

インストールが終わったら一旦ComfyUIを落として(落とさなくてもできるかもしれないけど)、今度はモデルのダウンロードを行う。

# Clip-Vision
wget https://huggingface.co/h94/IP-Adapter/resolve/main/models/image_encoder/model.safetensors -O models/clip_vision/clip-vision_vit-h.safetensors

# NMKD Superscale SP_178000_G 
wget https://huggingface.co/gemasai/4x_NMKD-Superscale-SP_178000_G/resolve/main/4x_NMKD-Superscale-SP_178000_G.pth -P models/upscale_models

# OmniSR_X2_DIV2K
wget https://huggingface.co/Acly/Omni-SR/resolve/main/OmniSR_X2_DIV2K.safetensors -P models/upscale_models

# OmniSR_X3_DIV2K
wget https://huggingface.co/Acly/Omni-SR/resolve/main/OmniSR_X3_DIV2K.safetensors -P models/upscale_models

# OmniSR_X4_DIV2K
wget https://huggingface.co/Acly/Omni-SR/resolve/main/OmniSR_X4_DIV2K.safetensors -P models/upscale_models

# MAT_Places512_G_fp16
wget https://huggingface.co/Acly/MAT/resolve/main/MAT_Places512_G_fp16.safetensors -P models/inpaint

SD1.5

# ControlNet inpaint
wget https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_inpaint_fp16.safetensors -P models/controlnet

# ControlNet tile
wget https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_lora_rank128_v11f1e_sd15_tile_fp16.safetensors -P models/controlnet

# IP-Adapter (SD1.5)
wget https://huggingface.co/h94/IP-Adapter/resolve/main/models/ip-adapter_sd15.safetensors -P models/ipadapter

# Hyper-SD-LoRA (SD1.5)
wget https://huggingface.co/ByteDance/Hyper-SD/resolve/main/Hyper-SD15-8steps-CFG-lora.safetensors -P models/loras

SDXL

# IP-Adapter (SDXL)
wget https://huggingface.co/h94/IP-Adapter/resolve/main/sdxl_models/ip-adapter_sdxl_vit-h.safetensors -P models/ipadapter

# Hyper-SD-LoRA (SDXL)
wget https://huggingface.co/ByteDance/Hyper-SD/resolve/main/Hyper-SDXL-8steps-CFG-lora.safetensors -P models/loras

# Fooocus Inpaint (Head)
wget https://huggingface.co/lllyasviel/fooocus_inpaint/resolve/main/fooocus_inpaint_head.pth -P models/inpaint

# Fooocus Inpaint (Patch)
wget https://huggingface.co/lllyasviel/fooocus_inpaint/resolve/main/inpaint_v26.fooocus.patch -P models/inpaint

Checkpoints

# Realistic Vision
wget https://huggingface.co/lllyasviel/fav_models/resolve/main/fav/realisticVisionV51_v51VAE.safetensors -P models/checkpoints

# DreamShaper
wget https://huggingface.co/Lykon/DreamShaper/resolve/main/DreamShaper_8_pruned.safetensors -P models/checkpoints

# Flat2D AniMerge
wget https://huggingface.co/Acly/SD-Checkpoints/resolve/main/flat2DAnimerge_v45Sharp.safetensors -P models/checkpoints

# Juggernaut XL
wget https://huggingface.co/lllyasviel/fav_models/resolve/main/fav/juggernautXL_version6Rundiffusion.safetensors -P models/checkpoints

# ZavyChroma XL
wget https://huggingface.co/misri/zavychromaxl_v80/resolve/main/zavychromaxl_v80.safetensors -P models/checkpoints

ComfyUIを起動

python main.py --listen

これで準備完了。

kun432kun432

Kritaから接続

Kritaに戻って、AI Image GenerationのConfigurationから、

  • Server Configurationで、"Custom Server (local or remote)"を選択
  • カスタムサーバのURL(http://IPアドレス:8188)を入力
  • "Connect"をクリック

で、左に緑の"Connected"が表示されれば、とりあえずはOKだと思う。

とりあえず適当にプロンプトを入れて生成してみた。これが通常の生成。

プロンプト
a race horse standing in the race course

大まかには動いてそう。

なお、キャンバスが広いと生成時間がかかるようなので、とりあえず512x512ぐらいにしておくと良いみたい。

何ができるのか?をこのあと確かめていく。

kun432kun432

すべての機能は使うには、上にあるモデル以外にもインストールが必要っぽい。

kun432kun432

とりあえずLiveだけでも凄いなと感じたが、Kritaの基本的な操作をまず理解した上で、いろいろ試したい。

と思って、公式のチュートリアルを見てみたが、うーん・・・わかりにくいと自分は感じてしまった。

あと、KindleでKrita入門本とかあるのだけど、軒並み古い。基本的な操作であればそれほど困らなさそうではあるのだけども。

このスクラップは2024/12/03にクローズされました