この記事では,Diffusersについて紹介します.
参考文献
この記事は以下の情報を参考にして執筆しました.
Diffusersとは?
Diffusersは,Hugging Faceが開発した拡散モデルのためのライブラリです.
Diffusersを使うと,拡散モデルで画像を生成することができます.
拡散モデルでの画像生成
拡散モデルとは,ランダムなガウスノイズを段階的に除去するように訓練された機械学習システムです.
拡散モデルの訓練では,各ステップにおいてノイズを除去する方法を予測するように訓練されます.推論では,あるステップ数の後、画像サンプルが得られます(下図参照).
Diffusersを使った画像生成
以下のコードは,Google Colab(GPU: T4)で実行しました.
Diffusersのインストール
!pip install diffusers==0.11.1
DDPMPipeline
DDPMPipeline
をインポートすることで,数行のコードで推論を行うことができます.
from diffusers import DDPMPipeline
from_pretrained()
は,コミュニティによって共有された60,000以上のモデルのリポジトリであるthe Hugging Face Hubからモデルとコンフィギュレーションをダウンロードすることができます.
下記のコードでは,GoogleとU.C.Berkeleyが共同で構築したgoogle/ddpm-celebahq-256
モデルをダウンロードしています.これは,Denoising Diffusion Probabilistic Models (DDPM) に従ったモデルで,有名人の画像のデータセットで学習されています.
image_pipe = DDPMPipeline.from_pretrained("google/ddpm-celebahq-256")
image_pipe.to("cuda")
DDPMPipeline
はランダムな初期ノイズサンプルを生成し,拡散処理を繰り返すことによって画像を生成します.
images = image_pipe().images
生成された画像を表示させてみます.
images[0]
まとめ
この記事では,Diffusersについて紹介しました.
特に,Diffusersを使った拡散モデルでの画像生成についての簡単な使い方を紹介しました.
Diffusersの色々な使い方については,以下を参照してください.