モデル概要
モデル特徴
モデル能力
使用事例
🚀 Stable Diffusion x4アップスケーラーモデルカード
このモデルカードは、Stable Diffusionアップスケーラーに関連するモデルに焦点を当てています。このモデルはこちらで入手できます。このモデルは、画像サイズが>2048x2048
のLAIONの10Mサブセットで125万ステップのトレーニングを行っています。モデルは512x512
のクロップ画像でトレーニングされ、テキストガイド付きの潜在空間アップスケーリング拡散モデルです。テキスト入力に加えて、noise_level
を入力パラメータとして受け取り、事前定義された拡散スケジュールに従って低解像度入力にノイズを追加することができます。
stablediffusion
リポジトリで使用する場合:こちらからx4-upscaler-ema.ckpt
をダウンロードしてください。- 🧨
diffusers
で使用する場合
🚀 クイックスタート
このモデルを使用するには、以下の手順に従ってください。
✨ 主な機能
- テキストガイド付きの画像アップスケーリングが可能です。
noise_level
を調整することで、低解像度入力にノイズを追加できます。
📦 インストール
以下のコマンドを使用して必要なライブラリをインストールします。
pip install diffusers transformers accelerate scipy safetensors
💻 使用例
基本的な使用法
import requests
from PIL import Image
from io import BytesIO
from diffusers import StableDiffusionUpscalePipeline
import torch
# モデルとスケジューラーをロード
model_id = "stabilityai/stable-diffusion-x4-upscaler"
pipeline = StableDiffusionUpscalePipeline.from_pretrained(model_id, torch_dtype=torch.float16)
pipeline = pipeline.to("cuda")
# 画像をダウンロード
url = "https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main/sd2-upscale/low_res_cat.png"
response = requests.get(url)
low_res_img = Image.open(BytesIO(response.content)).convert("RGB")
low_res_img = low_res_img.resize((128, 128))
prompt = "a white cat"
upscaled_image = pipeline(prompt=prompt, image=low_res_img).images[0]
upscaled_image.save("upsampled_cat.png")
高度な使用法
# メモリ効率の良いアテンションを使用する場合
import requests
from PIL import Image
from io import BytesIO
from diffusers import StableDiffusionUpscalePipeline
import torch
model_id = "stabilityai/stable-diffusion-x4-upscaler"
pipeline = StableDiffusionUpscalePipeline.from_pretrained(model_id, torch_dtype=torch.float16)
pipeline = pipeline.to("cuda")
pipeline.enable_xformers_memory_efficient_attention() # xformersを使用する場合
url = "https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main/sd2-upscale/low_res_cat.png"
response = requests.get(url)
low_res_img = Image.open(BytesIO(response.content)).convert("RGB")
low_res_img = low_res_img.resize((128, 128))
prompt = "a white cat"
upscaled_image = pipeline(prompt=prompt, image=low_res_img).images[0]
upscaled_image.save("upsampled_cat.png")
⚠️ 重要提示
依存関係ではありませんが、メモリ効率の良いアテンション(パフォーマンス向上)のためにxformersのインストールを強くおすすめします。GPUのRAMが少ない場合は、
cuda
に送信した後にpipe.enable_attention_slicing()
を追加することで、VRAMの使用量を減らすことができます(速度が犠牲になります)。
📚 ドキュメント
モデルの詳細
属性 | 详情 |
---|---|
開発者 | Robin Rombach, Patrick Esser |
モデルタイプ | 拡散ベースのテキストから画像生成モデル |
言語 | 英語 |
ライセンス | CreativeML Open RAIL++-M License |
モデル説明 | このモデルは、テキストプロンプトに基づいて画像を生成および修正するために使用できます。これは潜在拡散モデルであり、固定された事前学習済みのテキストエンコーダー(OpenCLIP-ViT/H)を使用しています。 |
詳細情報のリソース | GitHubリポジトリ |
利用方法
直接利用
このモデルは研究目的のみを想定しています。可能な研究分野やタスクには以下が含まれます。
- 有害なコンテンツを生成する可能性のあるモデルの安全なデプロイ。
- 生成モデルの制限とバイアスの調査と理解。
- アートワークの生成とデザインや他の芸術的プロセスでの使用。
- 教育または創造的ツールでのアプリケーション。
- 生成モデルに関する研究。
以下に除外される利用方法を説明します。
誤用、悪意のある利用、および想定外の利用
注: このセクションは元々DALLE-MINIモデルカードから引用され、Stable Diffusion v1で使用されていましたが、Stable Diffusion v2にも同様に適用されます。
このモデルは、人々に敵意や疎外感を抱かせる環境を生み出す画像を意図的に作成または拡散するために使用してはなりません。これには、人々が不快、苦痛、または不快感を感じると予想される画像の生成、または歴史的または現在のステレオタイプを広めるコンテンツの生成が含まれます。
想定外の利用
このモデルは、人やイベントの事実的または真実の表現を生成するようにトレーニングされていないため、そのようなコンテンツを生成するためにモデルを使用することは、このモデルの能力範囲外です。
誤用と悪意のある利用
このモデルを使用して、個人に残酷なコンテンツを生成することは、このモデルの誤用です。これには、以下が含まれますが、これらに限定されません。
- 人やその環境、文化、宗教などの侮辱的、非人間的、またはその他の有害な表現の生成。
- 差別的なコンテンツまたは有害なステレオタイプの意図的な宣伝または拡散。
- 本人の同意なしでの個人のなりすまし。
- 見る人の同意なしの性的コンテンツ。
- 誤情報とディスインフォメーション。
- 重大な暴力やグロテスクな表現。
- 著作権またはライセンスされた素材の使用条件に違反した共有。
- 著作権またはライセンスされた素材の改変コンテンツの使用条件に違反した共有。
制限とバイアス
制限
- モデルは完全な写真的リアリズムを達成しません。
- モデルは読み取り可能なテキストをレンダリングできません。
- モデルは、「青い球体の上に赤い立方体」に対応する画像のレンダリングなど、構成性を伴う難しいタスクではうまく機能しません。
- 顔や人物全体が適切に生成されない場合があります。
- モデルは主に英語のキャプションでトレーニングされており、他の言語ではうまく機能しません。
- モデルのオートエンコーダー部分は損失があります。
- モデルは大規模データセットLAION-5Bのサブセットでトレーニングされており、成人向け、暴力的、および性的なコンテンツが含まれています。これを部分的に軽減するために、LAIONのNFSW検出器を使用してデータセットをフィルタリングしています(トレーニングセクションを参照)。
バイアス
画像生成モデルの能力は印象的ですが、社会的バイアスを強化または悪化させる可能性もあります。Stable Diffusion v2は主にLAION-2B(en)のサブセットでトレーニングされており、これは英語の説明に限定された画像から構成されています。他の言語を使用するコミュニティや文化のテキストや画像は、十分に考慮されていない可能性があります。これはモデルの全体的な出力に影響を与え、白人や西洋文化がしばしばデフォルトとして設定されます。さらに、モデルが英語以外のプロンプトでコンテンツを生成する能力は、英語のプロンプトと比較して大幅に劣ります。Stable Diffusion v2はバイアスを反映し、悪化させる程度が大きいため、入力やその意図に関係なく、閲覧者の裁量が必要です。
トレーニング
トレーニングデータ
モデル開発者は、以下のデータセットをモデルのトレーニングに使用しました。
- LAION-5Bとそのサブセット(詳細は以下)。トレーニングデータは、LAIONのNSFW検出器を使用してさらにフィルタリングされ、「p_unsafe」スコアが0.1(保守的)です。詳細については、LAION-5BのNeurIPS 2022論文とこのトピックに関するレビューアーの議論を参照してください。
トレーニング手順
Stable Diffusion v2は、オートエンコーダーと拡散モデルを組み合わせた潜在拡散モデルであり、拡散モデルはオートエンコーダーの潜在空間でトレーニングされます。トレーニング中は、以下の手順が行われます。
- 画像はエンコーダーを通じてエンコードされ、画像が潜在表現に変換されます。オートエンコーダーは相対的なダウンサンプリング係数8を使用し、形状がH x W x 3の画像を形状がH/f x W/f x 4の潜在表現にマッピングします。
- テキストプロンプトはOpenCLIP-ViT/Hテキストエンコーダーを通じてエンコードされます。
- テキストエンコーダーの出力は、クロスアテンションを介して潜在拡散モデルのUNetバックボーンに供給されます。
- 損失は、潜在表現に追加されたノイズとUNetによる予測との間の再構成目的です。また、いわゆる_v-objective_も使用しています(https://arxiv.org/abs/2202.00512 を参照)。
現在、以下のチェックポイントを提供しています。
-
512-base-ema.ckpt
:LAION-5Bの明示的なポルノグラフィック素材がフィルタリングされたサブセットで、解像度256x256
で55万ステップのトレーニングを行いました。LAION-NSFW分類器を使用してpunsafe=0.1
、審美スコアが4.5
以上のデータを使用しました。同じデータセットで解像度>= 512x512
で85万ステップのトレーニングを行いました。 -
768-v-ema.ckpt
:512-base-ema.ckpt
から再開し、同じデータセットでv-objectiveを使用して15万ステップのトレーニングを行いました。データセットの768x768
サブセットでさらに14万ステップのトレーニングを行いました。 -
512-depth-ema.ckpt
:512-base-ema.ckpt
から再開し、20万ステップのファインチューニングを行いました。MiDaS (dpt_hybrid
)によって生成された(相対的な)深度予測を処理するための追加入力チャネルを追加しました。これは追加の条件付けとして使用されます。この追加情報を処理するUNetの追加入力チャネルはゼロ初期化されました。 -
512-inpainting-ema.ckpt
:512-base-ema.ckpt
から再開し、さらに20万ステップのトレーニングを行いました。LAMAで提示されたマスク生成戦略に従い、マスクされた画像の潜在VAE表現と組み合わせて、追加の条件付けとして使用されます。この追加情報を処理するUNetの追加入力チャネルはゼロ初期化されました。同じ戦略が1.5-inpaintingチェックポイントのトレーニングにも使用されました。 -
x4-upscaling-ema.ckpt
:画像サイズが>2048x2048
のLAIONの10Mサブセットで125万ステップのトレーニングを行いました。モデルは512x512
のクロップ画像でトレーニングされ、テキストガイド付きの潜在空間アップスケーリング拡散モデルです。テキスト入力に加えて、noise_level
を入力パラメータとして受け取り、事前定義された拡散スケジュールに従って低解像度入力にノイズを追加することができます。 -
ハードウェア:32 x 8 x A100 GPU
-
オプティマイザー:AdamW
-
勾配蓄積:1
-
バッチサイズ:32 x 8 x 2 x 4 = 2048
-
学習率:10,000ステップで0.0001までウォームアップし、その後一定に保ちます。
評価結果
異なる分類器フリーガイダンススケール(1.5、2.0、3.0、4.0、5.0、6.0、7.0、8.0)と50ステップのDDIMサンプリングステップを使用した評価では、チェックポイントの相対的な改善が示されています。
COCO2017検証セットからの10,000個のランダムなプロンプトを使用して、50 DDIMステップで評価し、解像度512x512で評価しました。FIDスコアの最適化は行っていません。
環境への影響
Stable Diffusion v1の推定排出量
この情報に基づいて、Lacoste et al. (2019)で提示されたMachine Learning Impact calculatorを使用して、以下のCO2排出量を推定しています。ハードウェア、実行時間、クラウドプロバイダー、およびコンピューティングリージョンを使用して、炭素影響を推定しました。
- ハードウェアタイプ:A100 PCIe 40GB
- 使用時間:200,000時間
- クラウドプロバイダー:AWS
- コンピューティングリージョン:US-east
- 排出された炭素(電力消費量 x 時間 x 電力網の位置に基づく炭素排出量):15,000 kg CO2 eq.
引用
@InProceedings{Rombach_2022_CVPR,
author = {Rombach, Robin and Blattmann, Andreas and Lorenz, Dominik and Esser, Patrick and Ommer, Bj\"orn},
title = {High-Resolution Image Synthesis With Latent Diffusion Models},
booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
month = {June},
year = {2022},
pages = {10684-10695}
}
このモデルカードは、Robin Rombach、Patrick Esser、およびDavid Haによって作成され、Stable Diffusion v1およびDALL-E Miniモデルカードに基づいています。
📄 ライセンス
このモデルはCreativeML Open RAIL++-M Licenseの下で提供されています。






