この記事のポイント
- この記事では、Hugging FaceのDiffusersライブラリに統合された「Stable Diffusion 3」の特長について解説しています。
- Stable Diffusion 3には、3種類のテキストエンコーダーを採用し、よりリアルな画像生成が可能になりました。
- メモリ最適化機能により、様々なハードウェアでの実行が可能になっています。
- 推論速度の最適化が図られ、画像生成がより迅速になりました。
- ユーザーはDreamboothとLoRAを活用し、特定のタスクに合わせたモデルのファインチューニングが行えます。
監修者プロフィール
坂本 将磨
Microsoft AIパートナー、LinkX Japan代表。東京工業大学大学院で技術経営修士取得、研究領域:自然言語処理、金融工学。NHK放送技術研究所でAI、ブロックチェーン研究に従事。学会発表、国際ジャーナル投稿、経営情報学会全国研究発表大会にて優秀賞受賞。シンガポールでのIT、Web3事業の創業と経営を経て、LinkX Japan株式会社を創業。
最先端のAI技術を駆使した画像生成モデルがますます進化し続けています。
2024年6月12日、Hugging FaceのDiffusersライブラリに「Stable Diffusion 3 (SD3)」が新たに統合されました。
このアップグレードには、3種類のテキストエンコーダーと新しいMultimodal Diffusion Transformer(MMDiT)を含み、よりリアルで詳細な画像生成が可能になりました。
加えて、SD3は幅広いハードウェアでの実行を可能にするメモリ最適化機能も実装。
高速な推論速度と共にファインチューニングのための新スクリプトにも着目し、ユーザーが特定のタスクに合わせたモデル調整を行えるよう支援します。
Stable Diffusion 3の新機能: 多様なテキストエンコーダーとMMDiTモデル
2024年6月12日、Stability AIは「Stable Diffusion 3 (SD3)」を発表しました。この最新バージョンは、AIによる画像生成モデルのファミリーに新たな機能をもたらしています。
SD3には、3種類のテキストエンコーダー(CLIP L/14、OpenCLIP bigG/14、T5-v1.1-XXL)が含まれており、新しいMultimodal Diffusion Transformer(MMDiT)モデルと、Stable Diffusion XLで使われているものに似た16チャンネルのAutoEncoderモデルを採用しています。
これらの機能により、テキスト入力とピクセルの潜在表現をシームレスに組み合わせ、よりリアルな画像生成が可能になりました。
また、MMDiTブロックはテキストと画像の情報を共通の次元に埋め込むための専用重みを使用しており、これによって両方のモダリティが互いを考慮しながらも独自の空間で機能することができます。
SD3のメモリ最適化: 幅広いハードウェアでの実行を実現
SD3は非常に大きなT5-XXLモデルを含む3つのテキストエンコーダーを使用していますが、これにより24GB未満のVRAMを持つGPU上での実行が困難になる可能性があります。
そこで、Diffusersライブラリには、SD3をさまざまなデバイス上で実行できるようにするメモリ最適化機能が組み込まれています。
推論時にモデルのコンポーネントをCPUにオフロードすることや、メモリ要件が高いT5テキストエンコーダーを推論中に除外することで、メモリ使用量を大幅に削減しつつ、パフォーマンスのわずかな低下を許容することができます。
また、bitsandbytesライブラリを使ってT5-XXLモデルを8ビットでロードし、さらにメモリ要件を減らすことも可能です。
SD3のパフォーマンス最適化: 推論の速度向上
SD3の推論速度を向上させるために、「torch.compile()」を使用してvaeおよびtransformerコンポーネントの最適化された計算グラフを取得することができます。
この最適化は、パフォーマンスを高めるだけでなく、推論時間を短縮する効果があります。
実際のベンチマークでは、SD3のモデルのコンパイル版の平均推論時間が0.585秒となり、通常の実行よりも約4倍の速度向上が見られました。
これにより、より迅速な画像生成が可能になります。
SD3のFine-tuning: DreamboothとLoRAを活用したカスタマイズ
SD3には、DreamboothとLearning Rate Annealing(LoRA)を活用したファインチューニング用の新しいスクリプトが含まれています。
これらのスクリプトを使用することで、SD3を特定の画像生成タスクに効率的にファインチューニングすることができます。
例えば、特定の犬の写真を生成するためのデータセットを用いてモデルを調整し、Weights & BiasesインテグレーションをサポートしてHugging Face Hubにモデルをプッシュするオプションも提供されています。
出典:Hugging Face