疑問
「typeK」とはどういう意味なのでしょうか?結果
左から v1.0 → v1.5 → v1.6 typeK です。Pythonスクリプト
プロンプトはこちらからそのまま使わせてもらいました。from diffusers import StableDiffusionXLPipeline, DPMSolverMultistepScheduler import torch import os import cv2 import numpy as np import time n_samples = 5 model_safetensors = { "v1.0": "hadukiMix_v10.safetensors", "v1.5": "hadukiMix_v15.safetensors", "v1.6_typeK": "hadukiMix_v16Typek.safetensors" } def txt2img(model_name:str) -> None: model_fname = model_safetensors[model_name] pipe = StableDiffusionXLPipeline.from_single_file( f"safetensors/{model_fname}", extract_ema=True, torch_dtype=torch.float16, custom_pipeline = "lpw_stable_diffusion_xl" ) pipe.scheduler = DPMSolverMultistepScheduler.from_config( pipe.scheduler.config, algorithm_type="sde-dpmsolver++", use_karras_sigmas=True ) pipe.to("cuda") prompt = "japanese woman, cute, 27yo, close-up, (natural lighting:2), (gray sweater), (thin curtain, dimly lit room:0.5)" negative_prompt = "(cleavage:2), (illustration), 3d, 2d, painting, cartoons, sketch, watercolor, monotone, (kimono)" os.makedirs(model_name, exist_ok=True) for i in range(n_samples): seed = 100000 * (i + 1) generator = torch.manual_seed(seed) image = pipe( prompt=prompt, negative_prompt=negative_prompt, generator=generator, num_inference_steps = 35, guidance_scale=5.0, width=896, height=1152 ).images[0] image.save(os.path.join(model_name, f"{i}.png")) def stack() -> None: os.makedirs("stack_image", exist_ok=True) print(" -> ".join(model_safetensors.keys())) for i in range(n_samples): images_list = [] for key in model_safetensors.keys(): images_list.append(cv2.imread(os.path.join(key, f"{i}.png"))) stack_image = np.hstack(images_list) cv2.imwrite(os.path.join("stack_image", f"{i}.png"), stack_image) if __name__ == "__main__": start = time.time() for model in model_safetensors: txt2img(model) stack() end = time.time() print(f"処理時間: {end - start:.5f}秒")