-
Notifications
You must be signed in to change notification settings - Fork 6.5k
Description
Describe the bug
The use of function StableDiffusionPipeline.from_ckpt is not consistent with the document w.r.t. loading .safetensors models. Specifically, calling this function to load a .safetensors model and in the same time setting use_safetensors=True will result in a ValueError saying safetensors is not installed. Despite already having a safetensors installation.
Related PR:
#3333 discussed about safetensors' doc, but didn't mention the bug, nor did it fix the bug.
Suspected Cause:
Line 1243 in src/diffusers/loaders.py gets the parameter:
use_safetensors = kwargs.pop("use_safetensors", None if is_safetensors_available() else False)If we set use_safetensors=True, then after this, use_safetensors will be True regardless of is_safetensors_available().
Then at line 1249 we call:
if from_safetensors and use_safetensors is True:
raise ValueError("Make sure to install `safetensors` with `pip install safetensors`.")Thus if we have a .safetensors file (which means from_safetensors == True) this throws a ValueError.
Reproduction
from diffusers import StableDiffusionPipeline
pipe = StableDiffusionPipeline.from_ckpt("/path/to/model.safetensors", use_safetensors=True)Gives:
...
ValueError: Make sure to install `safetensors` with `pip install safetensors`.
Logs
No response
System Info
Colab, latest diffusers