我正在try 在我的Mac M1中使用Pytorch的漫射器来生成图片.我有一个简单的语法,如下所示:
modelid = "CompVis/stable-diffusion-v1-4"
device = "cuda"
pipe = StableDiffusionPipeline.from_pretrained(modelid, revision="fp16", torch_dtype=torch.float16, use_auth_token=auth_token)
pipe.to(device)
当我运行我的脚本时,它抛出一个错误,
(meta_ai) ➜ Difussion_Model /Users/urs/miniforge3/envs/meta_ai/bin/python "/Users/urs/Downloads/Difussion_Model/03_StableD
iffusionApp/app trial1.py"
Fetching 19 files: 100%|██████████████████████████████████████████████████████████████████████████████████|
19/19 [00:00<00:00, 10253.70it/s]
Traceback (most recent call last):
File "/Users/urs/Downloads/Difussion_Model/03_StableDiffusionApp/app trial1.py", line 27, in <module>
pipe = StableDiffusionPipeline.from_pretrained(modelid, revision="fp16", torch_dtype=torch.float16, use_auth_token=auth_token)
File "/Users/urs/miniforge3/envs/meta_ai/lib/python3.9/site-packages/diffusers/pipeline_utils.py", line 239, in from_pretrained
load_method = getattr(class_obj, load_method_name)
TypeError: getattr(): attribute name must be string
在torch_dtype=torch.flat16中,我try 了这里提供的所有不同类型: https://pytorch.org/docs/stable/tensor_attributes.html个,但都不管用.
有谁能帮帮忙吗?
Updates on 6 Dec: 我复制并粘贴了专门用于M1的官方页面上的代码. https://huggingface.co/docs/diffusers/optimization/mps个 代码如下所示,
# make sure you're logged in with `huggingface-cli login`
from diffusers import StableDiffusionPipeline
pipe = StableDiffusionPipeline.from_pretrained("runwayml/stable-diffusion-v1-5")
pipe = pipe.to("mps")
# Recommended if your computer has < 64 GB of RAM
pipe.enable_attention_slicing()
prompt = "a photo of an astronaut riding a horse on mars"
# First-time "warmup" pass (see explanation above)
_ = pipe(prompt, num_inference_steps=1)
# Results match those from the CPU device after the warmup pass.
image = pipe(prompt).images[0]
但我仍然收到相同的错误:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
Cell In[14], line 4
1 # make sure you're logged in with `huggingface-cli login`
2 from diffusers import StableDiffusionPipeline
----> 4 pipe = StableDiffusionPipeline.from_pretrained("runwayml/stable-diffusion-v1-5")
5 pipe = pipe.to("mps")
7 # Recommended if your computer has < 64 GB of RAM
File ~/miniforge3/envs/meta_ai/lib/python3.9/site-packages/diffusers/pipeline_utils.py:239, in DiffusionPipeline.from_pretrained(cls, pretrained_model_name_or_path, **kwargs)
236 if issubclass(class_obj, class_candidate):
237 load_method_name = importable_classes[class_name][1]
--> 239 load_method = getattr(class_obj, load_method_name)
241 loading_kwargs = {}
242 if issubclass(class_obj, torch.nn.Module):
TypeError: getattr(): attribute name must be string