【SDXL 1.0】Diffusers から CLIP-skip が使えるようになったのでさっそく使ってみました。

結果


左からCLIP-skip None→1→2→3です。

Pythonスクリプト

from diffusers import StableDiffusionXLPipeline, DPMSolverMultistepScheduler
import torch
import os

model_id = "osorubeshimerge_v10.safetensors"
pipe = StableDiffusionXLPipeline.from_single_file(
    f"safetensors/{model_id}",
    extract_ema=True,
    variant="fp16",
    torch_dtype=torch.float16
    )

pipe.scheduler = DPMSolverMultistepScheduler.from_config(
    pipe.scheduler.config,
    algorithm_type="sde-dpmsolver++",
    use_karras_sigmas=True
    )

pipe.to("cuda")

prompt = "anime style, an extremely cute and beautiful girl, fountain background, from side"
negative_prompt = "worst quality, low quality"

save_folder = os.path.splitext(model_id)[0]
os.makedirs(save_folder, exist_ok=True)

seed =10000 
skips = [None, 1, 2, 3]

for clip_skip in skips:
    generator = torch.manual_seed(seed)
    image = pipe(
        prompt=prompt,
        negative_prompt=negative_prompt,
        generator=generator,
        num_inference_steps=30,
        clip_skip=clip_skip
        ).images[0]

    image.save(os.path.join(save_folder, f"seed{seed}_skip{clip_skip}.png"))




このエントリーをはてなブックマークに追加