「Kandinsky 2とは一体何?」
「Stable Diffusion以外のオープンソースの画像生成AIを探している」
このような場合には、この記事の内容が参考になります。
この記事では、Kandinsky 2について解説しています。
本記事の内容
- Kandinsky 2とは?
- Kandinsky 2のシステム要件
- Kandinsky 2のインストール
- Kandinsky 2の動作確認
それでは、上記に沿って解説していきます。
Kandinsky 2とは?
Kandinsky 2とは、ロシア製の画像生成AIモデルです。
Kandinsky 2は、Dall-E 2とLatent Diffusionの良いとこどりをしたモデルと記載されています。
Latent Diffusionは、Stable Diffusionで用いられている技術です。
ベースの技術だけで言えば、Stable DiffusionよりもKandinsky 2の方が勝っているのかもしれません。
Kandinsky 2の特徴として、多言語対応が挙げられます。
日本語のプロンプトで画像生成が可能ということです。
ただし、現状ではまだまだ使えるレベルとは言えません。
詳細は、動作確認のところで説明しています。
やはり、プロンプトは英語でやるべきだと感じます。
英語であれば、世界中の人々とプロンプトを共有できますからね。
Kandinsky 2は、Hugging Faceでデモが公開されています。

このデモは、実際に試すことができます。
でも、かなり待たされますけどね。
今回は、このデモをローカル環境で動かしてみましょう。
プロンプト入力の度にコードを変更するのは、面倒ですからね。
以上、Kandinsky 2について説明しました。
次は、Kandinsky 2のシステム要件を説明します。
Kandinsky 2のシステム要件
Kandinsky 2のシステム要件は、特に明記されていません。
PyTorchが動けばOKというぐらいでしょうかね。
バージョンについては、PyTorch 2.0で動作することが確認できています。
もちろん、GPU版をインストールしないとまともには動かないでしょう。
検証した環境では、768×768サイズの画像を生成するのに15秒ほどかかっています。
なお、検証した環境はGeForce RTX 3090(24GB)を利用しています。
以上、Kandinsky 2のシステム要件を説明しました。
次は、Kandinsky 2のインストールを説明します。
Kandinsky 2のインストール
Kandinsky 2のインストールは、Python仮想環境の利用をオススメします。
Python仮想環境は、次の記事で解説しています。
検証は、次のバージョンのPythonで行います。
> python -V Python 3.10.4
そして、システム要件であるGPU版PyTorchをインストール済という状況です。
このような状況において、次の手順でKandinsky 2のインストールを進めます。
- Kandinsky 2の取得(Hugging Faceから)
- requirements.txtを使った一括インストール
それぞれを下記で説明します。
Kandinsky 2の取得(Hugging Faceから)

上記ページから、ファイルをダウンロードします。

取捨選択するのが面倒なので、huggingface_hubを使ってローカルに全部ダウンロードしましょう。
huggingface_hubを利用すると、自動的にファイルをダウンロードしてくれます。
huggingface_hubをインストールできたら、次のコードを実行します。
from huggingface_hub import snapshot_download snapshot_download( repo_id="ai-forever/Kandinsky2.1", repo_type="space", revision="main", cache_dir="./")
上記コードを実行すると、ダウンロード処理が開始されます。
ダウンロードは、すぐに終わります。

処理が完了すると、ディレクトリ上に「spaces–ai-forever–Kandinsky2.1」を確認できます。
そして、「snapshots」以下にあるファイル・ディレクトリをコピーします。

「4a02f7dbc0a0e674b3f49a175ccbb3295bb0c912」は、リポジトリのバージョンです。
バージョンが更新されれば、この値も変わってきます。
この長たらしいディレクトリより下のモノをコピーしましょう。
requirements.txtを使った一括インストール
コンテンツルートには、コピーしたrequirements.txtが存在しています。
requirements.txt
git+https://github.com/ai-forever/Kandinsky-2.git gradio opencv-python git+https://github.com/openai/CLIP.git
では、このファイルを用いて必要なモノを一気にインストールします。
実行するのは、次のコマンドです。
pip install -r requirements.txt
処理完了までは、少しだけ時間がかかります。
処理が完了したら、Kandinsky 2のインストールは終了です。
以上、Kandinsky 2のインストールを説明しました。
次は、Kandinsky 2の動作確認を説明します。
Kandinsky 2の動作確認
Kandinsky 2の動作確認を行います。
コンテンツルートに配置したapp.pyを実行すれば、Kandinsky 2を起動できます。
起動する前に、app.pyを変更します。
説明文を非表示にしておきます。

155行目~187行目(バージョンによって異なる)をコメントに変更。
では、app.pyを実行してKandinsky 2を起動しましょう。
初回実行時には、必要なファイルがダウンロードされます。

約9GBほどのファイル容量になります。
処理が完了したら、コンソールに以下のように表示されます。
Running on local URL: http://127.0.0.1:7860 To create a public link, set `share=True` in `launch()`.
Chromeなどのブラウザで「http://127.0.0.1:7860」にアクセスします。
そうすると、次のような画面を確認できます。

説明文の箇所をコメントで非表示にしています。
そのため、このようにシンプルな画面になります。
早速ですが、画像を生成していきます。
まずは、簡単なところから。
a dog and a cat

似たような感じの犬と猫ですね。
高画質であることは、確認できます。
多言語対応しているということなので、日本語のプロンプトを試してみましょう。
犬と猫

犬だけですね。
逆にしてみましょう。
猫と犬

一応、猫と犬が出ました。
でも、犬の目が猫の目なんですよね。
とりあえず、現状では日本語のプロンプトは動く程度だという認識の方がよいでしょう。
以上、Kandinsky 2の動作確認を説明しました。