🚀 小型安定拡散モデルカード
小型安定拡散モデルは、画像生成品質を維持しつつ、モデルサイズを大幅に削減したモデルです。また、推論速度も向上しており、CPU上でも高速に画像生成が可能です。
🚀 クイックスタート
【2023年2月7日更新】 最近、我々は 拡散展開リポジトリ を公開しました。これにより、GPU(TensorRTベースで約4倍高速化)とCPU(IntelOpenVINOベースで約12倍高速化)の両方で推論速度を向上させることができます。このリポジトリと統合することで、小型安定拡散モデルは CPU上でわずか5秒 で画像を生成することができます*。
* Intel(R) Xeon(R) Platinum 8369B CPUでのテスト結果。DPMSolverMultistepSchedulerを10ステップ使用。Onnxに変換する際にチャンネル/高さ/幅を固定。
同様の画像生成品質を維持しながら、モデルサイズが約1/2になりました! 以下はサンプル画像です。

✨ 主な機能
- 高速推論:CPU上でも高速に画像生成が可能。
- 小型化:モデルサイズが約1/2になり、省メモリ。
- Gradioサポート:Gradio Web UIで簡単に使用できる。
📦 インストール
このモデルを使用するには、Diffusers
ライブラリが必要です。Diffusers
のバージョンは0.8.0以上が必要で、それ以下のバージョンはサポートされていません。
pip install diffusers>=0.8.0
💻 使用例
基本的な使用法
import torch
from diffusers import StableDiffusionPipeline
model_id = "OFA-Sys/small-stable-diffusion-v0/"
pipe = StableDiffusionPipeline.from_pretrained(model_id, torch_dtype=torch.float16)
pipe = pipe.to("cuda")
prompt = "an apple, 4k"
image = pipe(prompt).images[0]
image.save("apple.png")
📚 ドキュメント
Gradio
我々は Gradio Web UIをサポートしており、小型安定拡散モデルv0を簡単に実行できます。
また、小型安定拡散モデルv0 + 拡散展開
のスペースデモも提供しています。
Hugging FaceのスペースデモではAMD CPUが提供されているため、15ステップで画像を生成するのに約35秒かかります。これは、拡散展開がIntelのOpenVINOに基づいているため、Intel CPU環境よりもはるかに遅いです。
トレーニング
初期化
このモデルは、安定拡散v1-4から初期化されています。モデル構造が安定拡散と異なり、パラメータ数も少ないため、安定拡散のパラメータを直接利用することはできません。そのため、小型安定拡散では layers_per_block=1
を設定し、元の安定拡散の各ブロックの最初の層を選択して小型モデルを初期化しています。
トレーニング手順
初期化後、モデルは8台のA100 GPUで110万ステップのトレーニングを行いました。トレーニングプロセスは3つの段階から構成されています。最初の段階は単純な事前トレーニング手順です。最後の2つの段階では、元の安定拡散を教師モデルとして、小型モデルに知識を蒸留しました。すべての段階で、unetのパラメータのみをトレーニングし、他のパラメータは凍結しました。
-
ハードウェア:8台のA100-80GB GPU
-
オプティマイザ:AdamW
-
段階1 - モデルのunet部分を事前トレーニングする。
- ステップ数:500,000
- バッチサイズ:バッチサイズ=8、GPU=8、勾配累積=2。総バッチサイズ=128
- 学習率:10,000ステップで1e-5までウォームアップし、その後一定に保つ。
-
段階2 - 安定拡散v1-4を教師モデルとしてモデルを蒸留する。教師モデルが生成したソフトラベル (pred_noise
) もトレーニングに使用する。
- ステップ数:400,000
- バッチサイズ:バッチサイズ=8、GPU=8、勾配累積=2。総バッチサイズ=128
- 学習率:5,000ステップで1e-5までウォームアップし、その後一定に保つ。
- ソフトラベルの重み:0.5
- ハードラベルの重み:0.5
-
段階3 - 安定拡散v1-5を教師モデルとしてモデルを蒸留する。Knowledge Distillation of Transformer-based Language Models Revisited
のいくつかの手法を使用し、ソフトラベル以外にも類似度ベースの層マッチングを行う。
- ステップ数:200,000
- バッチサイズ:バッチサイズ=8、GPU=8、勾配累積=2。総バッチサイズ=128
- 学習率:5,000ステップで1e-5までウォームアップし、その後一定に保つ。
- ソフトラベルの重み:0.5
- ハードラベルの重み:0.5
トレーニングデータ
モデル開発者は、以下のデータセットを使用してモデルをトレーニングしました。
- LAION-2B en aesthetic
- LAION-Art
- LAION-HD
引用
@article{Lu2022KnowledgeDO,
title={Knowledge Distillation of Transformer-based Language Models Revisited},
author={Chengqiang Lu and Jianwei Zhang and Yunfei Chu and Zhengyu Chen and Jingren Zhou and Fei Wu and Haiqing Chen and Hongxia Yang},
journal={ArXiv},
year={2022},
volume={abs/2206.14366}
}
使用方法
以下のセクションは Stable Diffusionモデルカード を参考にしています。
直接利用
このモデルは研究目的のみを想定しています。可能な研究分野やタスクには以下のようなものがあります。
- 有害なコンテンツを生成する可能性のあるモデルの安全な展開。
- 生成モデルの制限とバイアスの調査と理解。
- アートワークの生成とデザインやその他のアートプロセスでの使用。
- 教育や創造的なツールでの応用。
- 生成モデルに関する研究。
除外される使用方法については以下で説明します。
誤用、悪意のある使用、および範囲外の使用
このモデルは、人々に敵意や疎外感を抱かせる環境を生み出す画像を意図的に作成または拡散するために使用してはなりません。これには、人々が不快、苦痛、または不快感を感じると予想される画像や、歴史的または現在のステレオタイプを広めるコンテンツの生成が含まれます。
範囲外の使用
このモデルは、人や出来事の事実的または真実の表現を生成するようにトレーニングされていないため、そのようなコンテンツを生成するためにモデルを使用することは、このモデルの能力範囲外です。
誤用と悪意のある使用
このモデルを使用して、個人に残酷なコンテンツを生成することは、このモデルの誤用です。これには、以下のようなものが含まれますが、これらに限定されません。
- 人やその環境、文化、宗教などの侮辱的、非人間的、またはその他の有害な表現の生成。
- 差別的なコンテンツや有害なステレオタイプを意図的に宣伝または拡散すること。
- 本人の同意なしに個人をなりすますこと。
- 見る人の同意なしの性的なコンテンツ。
- 誤情報とディスインフォメーション
- 重大な暴力やゴアの表現
- 著作権またはライセンスされた素材をその使用条件に違反して共有すること。
- 著作権またはライセンスされた素材をその使用条件に違反して改変したコンテンツを共有すること。
制限とバイアス
制限
- モデルは完全な写実性を達成しません。
- モデルは読めるテキストをレンダリングできません。
- モデルは、「青い球体の上に赤い立方体」のような構成性を必要とするより難しいタスクではうまく機能しません。
- 顔や人全体が適切に生成されない場合があります。
- モデルは主に英語のキャプションでトレーニングされており、他の言語ではうまく機能しません。
- モデルのオートエンコーダ部分は損失があります。
- モデルは大規模データセット LAION-5B でトレーニングされており、成人向けの素材が含まれています。追加の安全メカニズムと考慮なしに製品で使用するには適していません。
- データセットの重複排除には追加の対策が取られていません。その結果、トレーニングデータに重複する画像については、ある程度の記憶が見られます。トレーニングデータは https://rom1504.github.io/clip-retrieval/ で検索でき、記憶された画像の検出に役立つ可能性があります。
バイアス
画像生成モデルの能力は印象的ですが、社会的バイアスを強化または悪化させる可能性もあります。Stable Diffusion v1は LAION-2B(en) のサブセットでトレーニングされており、主に英語の説明に限定された画像から構成されています。他の言語を使用するコミュニティや文化のテキストと画像は、十分に考慮されていない可能性があります。これは、モデルの全体的な出力に影響を与え、白人や西洋文化がデフォルトとして設定されることが多いです。さらに、モデルが英語以外のプロンプトでコンテンツを生成する能力は、英語のプロンプトと比較して著しく劣ります。
セーフティモジュール
このモデルの意図された使用方法は、Diffusersの セーフティチェッカー と一緒に使用することです。このチェッカーは、モデルの出力を既知のハードコードされたNSFW概念と照合することで機能します。これらの概念は、このフィルターの逆エンジニアリングの可能性を減らすために意図的に隠されています。具体的には、チェッカーは画像生成後の CLIPModel
の埋め込み空間で有害な概念のクラス確率を比較します。これらの概念は、生成された画像とともにモデルに渡され、各NSFW概念に対する手動で設計された重みと比較されます。
📄 ライセンス
このモデルは、OpenRAILライセンスの下で公開されています。詳細については、ライセンス文書 を参照してください。
このモデルカードはJustin Pinkneyによって作成され、Stable Diffusionモデルカード をベースにしています。