Unverified Commit 9e2734a7 authored by Patrick von Platen's avatar Patrick von Platen Committed by GitHub
Browse files

Make sure Diffusers works even if Hub is down (#3447)

* Make sure Diffusers works even if Hub is down

* Make sure hub down is well tested
parent d4197bf4
...@@ -30,6 +30,7 @@ import PIL ...@@ -30,6 +30,7 @@ import PIL
import torch import torch
from huggingface_hub import hf_hub_download, model_info, snapshot_download from huggingface_hub import hf_hub_download, model_info, snapshot_download
from packaging import version from packaging import version
from requests.exceptions import HTTPError
from tqdm.auto import tqdm from tqdm.auto import tqdm
import diffusers import diffusers
...@@ -1228,6 +1229,17 @@ class DiffusionPipeline(ConfigMixin): ...@@ -1228,6 +1229,17 @@ class DiffusionPipeline(ConfigMixin):
allow_patterns = None allow_patterns = None
ignore_patterns = None ignore_patterns = None
if not local_files_only:
try:
info = model_info(
pretrained_model_name,
use_auth_token=use_auth_token,
revision=revision,
)
except HTTPError as e:
logger.warn(f"Couldn't connect to the Hub: {e}.\nWill try to load from local cache.")
local_files_only = True
if not local_files_only: if not local_files_only:
config_file = hf_hub_download( config_file = hf_hub_download(
pretrained_model_name, pretrained_model_name,
...@@ -1239,11 +1251,6 @@ class DiffusionPipeline(ConfigMixin): ...@@ -1239,11 +1251,6 @@ class DiffusionPipeline(ConfigMixin):
resume_download=resume_download, resume_download=resume_download,
use_auth_token=use_auth_token, use_auth_token=use_auth_token,
) )
info = model_info(
pretrained_model_name,
use_auth_token=use_auth_token,
revision=revision,
)
config_dict = cls._dict_from_json_file(config_file) config_dict = cls._dict_from_json_file(config_file)
......
...@@ -353,7 +353,7 @@ class DownloadTests(unittest.TestCase): ...@@ -353,7 +353,7 @@ class DownloadTests(unittest.TestCase):
with mock.patch("requests.request", return_value=response_mock): with mock.patch("requests.request", return_value=response_mock):
# Download this model to make sure it's in the cache. # Download this model to make sure it's in the cache.
pipe = StableDiffusionPipeline.from_pretrained( pipe = StableDiffusionPipeline.from_pretrained(
"hf-internal-testing/tiny-stable-diffusion-torch", safety_checker=None, local_files_only=True "hf-internal-testing/tiny-stable-diffusion-torch", safety_checker=None
) )
comps = {k: v for k, v in pipe.components.items() if hasattr(v, "parameters")} comps = {k: v for k, v in pipe.components.items() if hasattr(v, "parameters")}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment