我想使用 python 在本地电脑上运行微调的稳定扩散模型。例如剑圣:https://huggingface.co/RunDiffusion/Juggernaut-XL-v9
这是我的代码(它与 stable-diffusion-xl-base-1.0 一起使用):
import random
from diffusers import DiffusionPipeline, StableDiffusionXLImg2ImgPipeline
import torch
import gc
import time
# for cleaning memory
gc.collect()
torch.cuda.empty_cache()
start_time = time.time()
model = "RunDiffusion/Juggernaut-XL-v9"
pipe = DiffusionPipeline.from_pretrained(
model,
torch_dtype=torch.float16,
)
pipe.to("cuda")
prompt = ("a portrait of male as a knight in middle ages, masculine looking, battle in the background, sharp focus, highly detailed, movie-style lighting, shadows")
seed = random.randint(0, 2**32 - 1)
generator = torch.Generator("cuda").manual_seed(seed)
image = pipe(prompt=prompt, generator=generator, num_inference_steps=1)
image = image.images[0]
image.save(f"output_images/{seed}.png")
end_time = time.time()
total_time = end_time - start_time
minutes = int(total_time // 60)
seconds = int(total_time % 60)
print(f"Took: {minutes} min {seconds} sec")
print(f"Saved to output_images/{seed}.png")
但我得到:
OSError:在目录中找不到名为 pytorch_model.bin、tf_model.h5、model.ckpt.index 或 flax_model.msgpack 的文件时出错
可能是因为python、cuda版本的原因。我正在删除我的库版本:
Python 3.9.0
PyTorch:2.2.0+cu118
CUDA:11.8
扩散器:0.26.3
变形金刚:4.38.1
管道 = DiffusionPipeline.from_pretrained( 模型, torch_dtype=torch.float16, 变体='fp16',use_safetensors=True, )
这对我有用,尽管生成图像需要很长时间。
from diffusers import DiffusionPipeline
import numpy as np
pipeline = DiffusionPipeline.from_pretrained(
"RunDiffusion/Juggernaut-X-v10", cache_dir=cache_dir
)
prompt = "Your Prompt"
# Set num_inference_steps as per your memory or computation
image = pipeline(prompt, num_inference_steps=100, guidance_strength=0.7)
image_data = np.array(image.images[0])
image_pil = Image.fromarray(image_data.astype(np.uint8))
image_pil.save(f"output_images/Example10.png")
image_pil