🚀 SD - XL 1.0 - リファイナーモデルカード
このモデルは、テキストプロンプトに基づいて画像を生成および修正するためのモデルです。潜在拡散モデルを利用し、2つの事前学習済みテキストエンコーダを使用しています。

🚀 クイックスタート
モデルについて

SDXL は、潜在拡散のための エキスパートのアンサンブル パイプラインで構成されています。最初のステップでは、ベースモデル(https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0 で入手可能)を使用して(ノイズのある)潜在変数を生成し、それを最終的なノイズ除去ステップに特化したリファインモデルでさらに処理します。なお、ベースモデルは単独でも使用できます。
あるいは、以下のような2段階のパイプラインを使用することもできます。まず、ベースモデルを使用して目的の出力サイズの潜在変数を生成します。2番目のステップでは、特殊な高解像度モデルを使用し、SDEdit(https://arxiv.org/abs/2108.01073、「img2img」としても知られる)と呼ばれる手法を、同じプロンプトを使用して最初のステップで生成された潜在変数に適用します。この手法は、最初の方法よりも少し遅いですが、より多くの関数評価が必要です。
ソースコードは https://github.com/Stability - AI/generative - models で入手できます。
モデルの詳細
モデルのソース
研究目的では、最も人気のある拡散フレームワーク(トレーニングと推論の両方)を実装し、蒸留などの新機能が随時追加される generative - models
のGitHubリポジトリ (https://github.com/Stability-AI/generative-models) をお勧めします。
Clipdrop は、無料のSDXL推論を提供しています。
- リポジトリ: https://github.com/Stability-AI/generative-models
- デモ: https://clipdrop.co/stable-diffusion
📚 ドキュメント
評価

上のグラフは、SDXL(リファイン有りおよび無し)に対するユーザーの好みを、SDXL 0.9 および Stable Diffusion 1.5 と 2.1 と比較して評価しています。SDXLベースモデルは以前のバリアントよりも大幅に優れており、リファインモジュールと組み合わせたモデルは全体的に最良の性能を達成しています。
🧨 Diffusersの使用方法
まず、diffusersを >= 0.18.0 にアップグレードしてください。
pip install diffusers --upgrade
さらに、transformers
、safetensors
、accelerate
および不可視ウォーターマークをインストールしてください。
pip install invisible_watermark transformers accelerate safetensors
その後、リファイナーを使用して画像を改善することができます。
import torch
from diffusers import StableDiffusionXLImg2ImgPipeline
from diffusers.utils import load_image
pipe = StableDiffusionXLImg2ImgPipeline.from_pretrained(
"stabilityai/stable-diffusion-xl-refiner-1.0", torch_dtype=torch.float16, variant="fp16", use_safetensors=True
)
pipe = pipe.to("cuda")
url = "https://huggingface.co/datasets/patrickvonplaten/images/resolve/main/aa_xl/000000009.png"
init_image = load_image(url).convert("RGB")
prompt = "a photo of an astronaut riding a horse on mars"
image = pipe(prompt, image=init_image).images
torch >= 2.0
を使用する場合、torch.compile を使用することで推論速度を20 - 30%向上させることができます。パイプラインを実行する前に、unetをtorch compileでラップしてください。
pipe.unet = torch.compile(pipe.unet, mode="reduce-overhead", fullgraph=True)
GPU VRAMに制限がある場合、.to("cuda")
の代わりに pipe.enable_model_cpu_offload
を呼び出すことで CPUオフロード を有効にすることができます。
- pipe.to("cuda")
+ pipe.enable_model_cpu_offload()
より高度な使用例については、ドキュメント を参照してください。
💻 使用例
基本的な使用法
import torch
from diffusers import StableDiffusionXLImg2ImgPipeline
from diffusers.utils import load_image
pipe = StableDiffusionXLImg2ImgPipeline.from_pretrained(
"stabilityai/stable-diffusion-xl-refiner-1.0", torch_dtype=torch.float16, variant="fp16", use_safetensors=True
)
pipe = pipe.to("cuda")
url = "https://huggingface.co/datasets/patrickvonplaten/images/resolve/main/aa_xl/000000009.png"
init_image = load_image(url).convert("RGB")
prompt = "a photo of an astronaut riding a horse on mars"
image = pipe(prompt, image=init_image).images
高度な使用法
pipe.unet = torch.compile(pipe.unet, mode="reduce-overhead", fullgraph=True)
🔧 技術詳細
用途
直接的な使用
このモデルは研究目的のみを意図しています。可能な研究分野およびタスクには以下が含まれます。
- アートワークの生成およびデザインやその他の芸術的プロセスでの使用。
- 教育または創造的ツールでの応用。
- 生成モデルに関する研究。
- 有害なコンテンツを生成する可能性のあるモデルの安全な展開。
- 生成モデルの制限とバイアスの調査と理解。
以下に除外される使用法を説明します。
想定外の使用
このモデルは、人やイベントの事実的または真実の表現を生成するように訓練されていないため、そのようなコンテンツを生成するためにモデルを使用することは、このモデルの能力範囲外です。
制限とバイアス
制限
- このモデルは完全な写実性を達成しません。
- このモデルは読み取り可能なテキストをレンダリングできません。
- このモデルは、「青い球の上に赤い立方体がある」などの構成性を伴う難しいタスクに苦労します。
- 顔や人物全体が適切に生成されない場合があります。
- モデルの自動符号化部分は損失があります。
バイアス
画像生成モデルの能力は印象的ですが、社会的バイアスを強化または悪化させる可能性もあります。
📄 ライセンス
このモデルは CreativeML Open RAIL++ - M License の下で提供されています。