赞
踩
项目地址:
运行的是以下这个Example,在上一次报错后,已经把模型下载到了本地并对应修改了执行脚本中的内容
- (myconda) root@P4Qmo1:/mnt/Diffusers/inpainting# ls
- SD_inpaint_eg.py runwayml--stable-diffusion-inpainting
- (myconda) root@P4Qmo1:/mnt/Diffusers/inpainting# python3 SD_inpaint_eg.py
- Loading pipeline components...: 43%|█████▌ | 3/7 [00:29<00:39, 9.92s/it]
- Traceback (most recent call last):
- File "/root/miniconda3/envs/myconda/lib/python3.8/site-packages/transformers/modeling_utils.py", line 533, in load_state_dict
- return torch.load(
- File "/root/miniconda3/envs/myconda/lib/python3.8/site-packages/torch/serialization.py", line 712, in load
- return _load(opened_zipfile, map_location, pickle_module, **pickle_load_args)
- File "/root/miniconda3/envs/myconda/lib/python3.8/site-packages/torch/serialization.py", line 1044, in _load
- unpickler = UnpicklerWrapper(data_file, **pickle_load_args)
- TypeError: 'weights_only' is an invalid keyword argument for Unpickler()
-
- During handling of the above exception, another exception occurred:
-
- Traceback (most recent call last):
- File "/root/miniconda3/envs/myconda/lib/python3.8/site-packages/transformers/modeling_utils.py", line 542, in load_state_dict
- if f.read(7) == "version":
- File "/root/miniconda3/envs/myconda/lib/python3.8/codecs.py", line 322, in decode
- (result, consumed) = self._buffer_decode(data, self.errors, final)
- UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 64: invalid start byte
- During handling of the above exception, another exception occurred:
- Traceback (most recent call last):
- File "SD_inpaint_eg.py", line 20, in <module>
- pipe = StableDiffusionInpaintPipeline.from_pretrained(
- File "/root/miniconda3/envs/myconda/lib/python3.8/site-packages/huggingface_hub/utils/_validators.py", line 118, in _inner_fn
- return fn(*args, **kwargs)
- File "/root/miniconda3/envs/myconda/lib/python3.8/site-packages/diffusers/pipelines/pipeline_utils.py", line 1271, in from_pretrained
- loaded_sub_model = load_sub_model(
- File "/root/miniconda3/envs/myconda/lib/python3.8/site-packages/diffusers/pipelines/pipeline_utils.py", line 525, in load_sub_model
- loaded_sub_model = load_method(os.path.join(cached_folder, name), **loading_kwargs)
- File "/root/miniconda3/envs/myconda/lib/python3.8/site-packages/transformers/modeling_utils.py", line 3527, in from_pretrained
- state_dict = load_state_dict(resolved_archive_file)
- File "/root/miniconda3/envs/myconda/lib/python3.8/site-packages/transformers/modeling_utils.py", line 554, in load_state_dict
- raise OSError(
- OSError: Unable to load weights from pytorch checkpoint file for '/mnt/Diffusers/inpainting/runwayml--stable-diffusion-inpainting/text_encoder/pytorch_model.bin' at '/mnt/Diffusers/inpainting/runwayml--stable-diffusion-inpainting/text_encoder/pytorch_model.bin'. If you tried to load a PyTorch model from a TF 2.0 checkpoint, please set from_tf=True.

查看第一个报错信息:
- Traceback (most recent call last):
- File "/root/miniconda3/envs/myconda/lib/python3.8/site-packages/transformers/modeling_utils.py", line 533, in load_state_dict
- return torch.load(
- File "/root/miniconda3/envs/myconda/lib/python3.8/site-packages/torch/serialization.py", line 712, in load
- return _load(opened_zipfile, map_location, pickle_module, **pickle_load_args)
- File "/root/miniconda3/envs/myconda/lib/python3.8/site-packages/torch/serialization.py", line 1044, in _load
- unpickler = UnpicklerWrapper(data_file, **pickle_load_args)
- TypeError: 'weights_only' is an invalid keyword argument for Unpickler()
说的是‘weights_only'参数有问题,因为模型和代码都是官网上搞到的,如果有问题早就被别人发现了,所以怀疑是不是版本问题。
第一行:问题出在transformers这个库,感觉上是版本不兼容。
分别查看了torch和tansformers的版本:
- >>> import transformers
- >>> print(transformers.__version__)
- 4.37.0
- >>> import torch
- >>> print(torch.__version__)
- 1.11.0+cu113
torch是租用的云服务器上预装的,版本不算新。
然后觉得可能是自己装的transformers这个库版本太新了。
尝试降版本到4.36,报错解决了。(装好后pip check一下检查有没有冲突)
- (myconda) root@wnyg7e:/mnt/Diffusers/sd-inpainting# pip install transformers==4.36
- (myconda) root@wnyg7e:/mnt/Diffusers/sd-inpainting# pip check
之后可以运行代码:
- (myconda) root@wnyg7e:/mnt/Diffusers/sd-inpainting# python3 SD_inpaint_eg.py
- Loading pipeline components...: 43%|█████████████████▏ | 3/7 [00:08<00:12, 3.10s/it]`text_config_dict` is provided which will be used to initialize `CLIPTextConfig`. The value `text_config["id2label"]` will be overriden.
- `text_config_dict` is provided which will be used to initialize `CLIPTextConfig`. The value `text_config["bos_token_id"]` will be overriden.
- `text_config_dict` is provided which will be used to initialize `CLIPTextConfig`. The value `text_config["eos_token_id"]` will be overriden.
- Loading pipeline components...: 100%|████████████████████████████████████████| 7/7 [00:30<00:00, 4.37s/it]
- 100%|██████████████████████████████████████████████████████████████████████| 50/50 [00:09<00:00, 5.54it/s]
- (myconda) root@wnyg7e:/mnt/Diffusers/sd-inpainting# vim SD_inpaint_eg.py
- (myconda) root@wnyg7e:/mnt/Diffusers/sd-inpainting# ls
- SD_inpaint.png SD_inpaint_eg.py stable-diffusion-inpainting
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。