SDXL 1.0 (Stable Diffusion XL 1.0) 派生モデルの safetensorsファイル を Diffusersフォーマット に変換する

実行

CIVITAIなどからモデルをダウンロードするとほとんどの場合「**.safetensors」というファイルです。
そのままDiffusersから使うにはこのようにします。

from diffusers import StableDiffusionXLPipeline
import torch

pipe = StableDiffusionXLPipeline.from_single_file(
    "**.safetensors",
    load_safety_checker=False,
    extract_ema=True,
    torch_dtype=torch.float16 
    ).to("cuda")

詳しくは実際に使用した例を見て下さい。
touch-sp.hatenablog.com


今回はあえてDiffusersフォーマットに変換する方法を書きます。

実行

「diffusers\scripts\convert_original_stable_diffusion_to_diffusers.py」というファイルを使用します。

「CounterfeitXL_beta.safetensors」の例です。

python convert_original_stable_diffusion_to_diffusers.py ^
    --checkpoint_path CounterfeitXL_beta.safetensors ^
    --dump_path CounterfeitXL_beta ^
    --pipeline_class_name StableDiffusionXLPipeline ^
    --from_safetensors ^
    --to_safetensors ^
    --extract_ema

使い方

from diffusers import DiffusionPipeline
import torch

pipe = DiffusionPipeline.from_pretrained(
    "CounterfeitXL_beta",
    torch_dtype=torch.float16,
    variant="fp16",
    ).to("cuda")