🚀 Kandinsky 2.2
KandinskyはDall - E 2と潜在拡散のベストプラクティスを継承しながら、いくつかの新しいアイデアを導入しています。このモデルは、画像とテキストの融合、およびテキストによる画像操作において、新たな可能性を開拓し、視覚的なパフォーマンスを向上させています。
Kandinskyモデルは、Arseniy Shakhmatov、Anton Razzhigaev、Aleksandr Nikolich、Igor Pavlov、Andrey Kuznetsov、Denis Dimitrovによって作成されました。
🚀 クイックスタート
Kandinsky 2.2はdiffusersで利用可能です。
pip install diffusers transformers accelerate
✨ 主な機能
KandinskyはDall - E 2と潜在拡散の良い点を取り入れ、新しいアイデアも持ち込んでいます。CLIPモデルをテキストと画像のエンコーダーとして使用し、CLIPモダリティの潜在空間間の拡散画像プライオ(マッピング)を利用することで、モデルの視覚的なパフォーマンスを向上させ、画像とテキストによる画像操作の融合に新たな可能性を開きます。
📦 インストール
Kandinsky 2.2を使用するには、以下のコマンドで必要なライブラリをインストールします。
pip install diffusers transformers accelerate
💻 使用例
基本的な使用法
テキストガイド付きのインペイント生成
from diffusers import AutoPipelineForInpainting
from diffusers.utils import load_image
import torch
import numpy as np
pipe = AutoPipelineForInpainting.from_pretrained("kandinsky-community/kandinsky-2-2-decoder-inpaint", torch_dtype=torch.float16)
pipe.enable_model_cpu_offload()
prompt = "a hat"
init_image = load_image(
"https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main" "/kandinsky/cat.png"
)
mask = np.zeros((768, 768), dtype=np.float32)
mask[:250, 250:-250] = 1
out = pipe(
prompt=prompt,
image=init_image,
mask_image=mask,
height=768,
width=768,
num_inference_steps=150,
)
image = out.images[0]
image.save("cat_with_hat.png")

高度な使用法
Kandinskyマスクインペイントの変更点
Kandinskyのインペイントパイプラインには破壊的な変更が導入されました。以前は黒いピクセルがマスクされる領域を表していましたが、これはdiffusersの他のすべてのパイプラインと不一致でした。現在は白いピクセルを使用するように変更されています。本番環境でKandinsky Inpaintを使用している場合は、マスクを変更する必要があります。
import PIL.ImageOps
mask = PIL.ImageOps.invert(mask)
mask = 1 - mask
📚 ドキュメント
モデルアーキテクチャの概要
Kandinsky 2.1は、unCLIPと潜在拡散に基づくテキスト条件付き拡散モデルで、Transformerベースの画像プライオモデル、Unet拡散モデル、およびデコーダーで構成されています。
モデルアーキテクチャは以下の図に示されています。左のチャートは画像プライオモデルのトレーニングプロセス、中央の図はテキストから画像への生成プロセス、右の図は画像補間を表しています。
具体的には、画像プライオモデルは、事前学習された[mCLIPモデル](https://huggingface.co/M-CLIP/XLM - Roberta - Large - Vit - L - 14)で生成されたCLIPテキストおよび画像埋め込みでトレーニングされました。トレーニングされた画像プライオモデルは、入力テキストプロンプトのmCLIP画像埋め込みを生成するために使用されます。入力テキストプロンプトとそのmCLIP画像埋め込みの両方が拡散プロセスで使用されます。[MoVQGAN](https://openreview.net/forum?id=Qb - AoSw4Jnm)モデルは、潜在表現を実際の画像にデコードするモデルの最終ブロックとして機能します。
詳細
モデルの画像プライオトレーニングは、LAION Improved Aestheticsデータセットで行われ、その後、[LAION HighResデータ](https://huggingface.co/datasets/laion/laion - high - resolution)でファインチューニングが行われました。
主なText2Image拡散モデルは、[LAION HighResデータセット](https://huggingface.co/datasets/laion/laion - high - resolution)の1億7000万のテキスト - 画像ペアを基にトレーニングされました(重要な条件は、少なくとも768x768の解像度の画像が存在することでした)。1億7000万ペアを使用したのは、Kandinsky 2.0のUNet拡散ブロックをそのまま使用したため、最初からトレーニングする必要がなかったからです。さらに、ファインチューニングの段階では、オープンソースから個別に収集された、説明付きの200万枚の非常に高品質な高解像度画像のデータセット(COYO、アニメ、landmarks_russiaなど)が使用されました。
評価
Kandinsky 2.1のパフォーマンスをCOCO_30kデータセットでゼロショットモードで定量的に測定しました。以下の表はFIDを示しています。
COCO_30k上の生成モデルのFIDメトリック値
|
FID (30k) |
eDiff - I (2022) |
6.95 |
Image (2022) |
7.27 |
Kandinsky 2.1 (2023) |
8.21 |
Stable Diffusion 2.1 (2022) |
8.59 |
GigaGAN, 512x512 (2023) |
9.09 |
DALL - E 2 (2022) |
10.39 |
GLIDE (2022) |
12.24 |
Kandinsky 1.0 (2022) |
15.40 |
DALL - E (2021) |
17.89 |
Kandinsky 2.0 (2022) |
20.00 |
GLIGEN (2022) |
21.04 |
詳細な情報については、近日公開予定の技術レポートを参照してください。
📄 ライセンス
このプロジェクトはApache - 2.0ライセンスの下で提供されています。
BibTex
もしこのリポジトリがあなたの研究に役立った場合、以下のように引用してください。
@misc{kandinsky 2.2,
title = {kandinsky 2.2},
author = {Arseniy Shakhmatov, Anton Razzhigaev, Aleksandr Nikolich, Vladimir Arkhipkin, Igor Pavlov, Andrey Kuznetsov, Denis Dimitrov},
year = {2023},
howpublished = {},
}