はじめに
LCM-RoLAが短い時間で画像が生成できると話題になっていますが、それを上回るかもしれない SDXL-Turbo というのが Stable Diffusion を開発している Stability AI から公開されました。試しに使ってみました。また、LCM-LoRA と比較してみました。Pythonスクリプト
from diffusers import AutoPipelineForText2Image import torch import os import time pipe = AutoPipelineForText2Image.from_pretrained( #"stabilityai/sdxl-turbo", "model/sdxl-turbo-fp16", torch_dtype=torch.float16, variant="fp16" ).to("cuda") prompt = "A cinematic shot of a baby racoon wearing an intricate italian priest robe." os.makedirs("turbo-result", exist_ok=True) start = time.time() for i in range(20): seed = 100000 + 2000 * (i + 1) generator = torch.manual_seed(seed) image = pipe( prompt=prompt, num_inference_steps=1, guidance_scale=1.0, generator=generator, ).images[0] image.save(os.path.join("turbo-result", f"result_{seed}.png")) end = time.time() print(f"time: {end - start:.3f}sec")
結果
20枚の画像を一気に作成しました。かかった時間はなんと11秒。time: 11.270sec
RTX 3080 Laptopを使っています。こちらのPCです。
LCM-LoRAとの比較
SDXL-Truboは名前にSDXLが入っていますがデフォルトで作成される画像のサイズは512x512です。Stable Diffusion 1.5 + LCM-LoRAと作成時間を比較してみました。Pythonスクリプト
from diffusers import AutoPipelineForText2Image, LCMScheduler import torch import os import time pipe = AutoPipelineForText2Image.from_pretrained( "model/stable-diffusion-v1-5", torch_dtype=torch.float16 ) pipe.load_lora_weights("lcm-lora-sdv1-5/pytorch_lora_weights.safetensors") pipe.scheduler = LCMScheduler.from_config(pipe.scheduler.config) pipe.to("cuda") prompt = "A cinematic shot of a baby racoon wearing an intricate italian priest robe." os.makedirs("lora-result", exist_ok=True) start = time.time() for i in range(20): seed = 100000 + 2000 * (i + 1) generator = torch.manual_seed(seed) image = pipe( prompt=prompt, num_inference_steps=4, guidance_scale=1.0, generator=generator, ).images[0] image.save(os.path.join("lora-result", f"result_{seed}.png")) end = time.time() print(f"time: {end - start:.3f}sec")
結果
Stable Diffusion 1.5 + LCM-LoRAでかかった時間は18秒でした。time: 17.923sec
SDXL-Turbo は LCM-LoRAを上回る質と速度でした。
ただし LCM-LoRA にはどのモデルにも適応できるというメリットがありますが SDXL-Turbo は単一のモデルです。
今後 SDXL-Turbo 派生のモデルがどんどん公開されたら面白いことになりそうです。