本レシピでは、Latent Diffusion Modelsの技術概要を解説し、Huggingfaceのdiffusersライブラリを用いて、テキストから画像を生成する方法や、モデルが画像を生成する過程をアニメーションで可視化する方法をご紹介します。
Latent Diffusion Modelsとは、2021年12月に論文発表されたDiffusion Models(拡散モデル)ベースの画像合成モデルです。
Diffusion Modelsはテキストから画像を生成するText to Imageタスクなどで競争力のある精度を発揮しますが、計算量が多くモデルのトレーニングには多くの時間・GPUを要することが知られています。
Latent Diffusion Modelsでは、精度を損なうことなく、計算量を削減することを目的にDiffusion Modelsを改善したモデルとなっています。
まずは、ベースとなるDiffusion Modelsを見ていきます。
Diffusion Modelsは、Denoising Diffusion Probabilistic Modelsをベースとした以下の2つのプロセスによって構成されるモデルです。
出典: Denoising Diffusion Probabilistic Models
モデルの入力はノイズ画像で、モデルはガウスノイズの平均と分散を予測します。
学習時、モデルはForward diffusion processで付与したガウスノイズと、予測したガウスノイズの平均と分散の差分を最小化するように学習します。
予測したガウスノイズを除去し、次のステップでさらに予測・除去といった処理を繰り返すことで最終的に相当の画像を生成します。
このようにDiffusion Modelsはノイズを除去していくプロセスを学習していくことでの状態から画像を生成するようにトレーニングされます。
このDiffusion ModelsをベースにLatent Diffusion Models(以下、LDM)は以下のように構成されます。
出典:High-Resolution Image Synthesis with Latent Diffusion Models
はエンコーダー、はデコーダーを示しています。
また、は、Text to Imageタスクにおける入力テキスト(プロンプト)などをエンコードするドメイン固有のエンコーダーです。
Diffusion Modelsとの違いは、Variational AutoEncoder(以下、VAE)を適用し、
latent representation(潜在表現)を用いてDiffusion Processを実現している点です。
VAEとは、教師なし学習の一つで、画像を表現する特徴を確立分布上で構築するニューラルネットワークです。
画像を、潜在表現に変換するエンコーダーと、潜在表現から元画像を復元するデコーダーで構成されます。
このVAEの適用によって、画像は、高次元なから低次元な潜在表現にエンコードされ、Diffusion Process全体での計算量の削減をもたらします。
さらに、プロンプトなどの条件に応じた、条件付き画像生成の精度を高めるためU-Netベースのクロスアテンションを導入し、高解像度の画像生成を可能にしています。
これらの既存手法を組み合わせ実現されたLDMは、画像修復、クラス条件付き画像合成などのタスクで最先端(state-of-the-art)のパフォーマンスを実現しています。
それでは、実際にLDMを用いてテキストから画像を生成していきます。